Commit Graph

73304 Commits

Author SHA1 Message Date
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
Thomas Petazzoni
245dab795e package/qt5/qt5webengine-chromium: fix another Python 3.12 issue
Further down into the build, another issue pops up:

/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/host-bin/python ../../3rdparty/chromium/tools/grit/grit.py update_resource_ids -o gen/tools/gritsettings/default_resource_ids --add-header --depfile gen/tools/gritsettings/default_resource_ids.d ../../3rdparty/chromium/tools/gritsettings/resource_ids.spec
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 14, in <module>
    import grit.grit_runner
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/grit_runner.py", line 19, in <module>
    from grit import util
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/util.py", line 21, in <module>
    from six.moves import html_entities as entities
ModuleNotFoundError: No module named 'six.moves'

Let's fix it with the partial backport of a much bigger upstream
commit.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:47 +02:00
Thomas Petazzoni
98dc9a933e package/qt5/qt5webengine-chromium-catapult: bump version to fix build issue
We have the qt5webengine-chromium-catapult package to override the
catapult code from qtwebengine-chromium with a newer version. It was
initially introduced because the catapult code in qtwebengine-chromium
was not Python 3.x compatible.

Turns out that the catapult version we're using exhibits new build
issues related to Python 3.12 (and perhaps others), so let's update it
again to fix:

FAILED: gen/content/browser/tracing/about_tracing.js gen/content/browser/tracing/about_tracing.html
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/host-bin/python ../../3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents --outdir gen/content/browser/tracing
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py:21: SyntaxWarning: invalid escape sequence '\('
  if re.search('url\(.+\)', contents):
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py:63: SyntaxWarning: invalid escape sequence '\('
  return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py:75: SyntaxWarning: invalid escape sequence '\('
  'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py:7: SyntaxWarning: invalid escape sequence '\/'
  return js.replace('</script>', '<\/script>')
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py:302: SyntaxWarning: invalid escape sequence '\/'
  raise Exception('Escape script tags with <\/script>')
Traceback (most recent call last):
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_module.py", line 28, in Parse
    parser_results = parse_html_deps.HTMLModuleParser().Parse(self.contents)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py", line 304, in Parse
    return HTMLModuleParserResults(html)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py", line 170, in __init__
    self._soup = bs4.BeautifulSoup(html, 'html5lib')
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/third_party/beautifulsoup4-4.9.3/py3k/bs4/__init__.py", line 243, in __init__
    raise FeatureNotFound(
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: html5lib. Do you need to install a parser library?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents", line 14, in <module>
    sys.exit(generate_about_tracing_contents.Main(sys.argv[1:]))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/tracing/tracing_build/generate_about_tracing_contents.py", line 32, in Main
    load_sequence = vulcanizer.CalcLoadSequenceForModuleNames(names)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/project.py", line 146, in CalcLoadSequenceForModuleNames
    modules = [self.loader.LoadModule(module_name=name,
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/resource_loader.py", line 149, in LoadModule
    m.Parse(excluded_scripts)
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_module.py", line 30, in Parse
    raise Exception('While parsing %s: %s' % (self.name, str(ex)))
Exception: While parsing tracing.ui.extras.about_tracing.about_tracing: Couldn't find a tree builder with the features you requested: html5lib. Do you need to install a parser library?

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:46 +02:00
Thomas Petazzoni
b5cdce85e8 package/qt5/qt5webengine-chromium: fix another Python 3.x issue
Backport an upstream Chromium patch that fixes:

FAILED: gen/services/metrics/public/cpp/ukm_builders.cc gen/services/metrics/public/cpp/ukm_builders.h gen/services/metrics/public/cpp/ukm_decode.cc gen/services/metrics/public/cpp/ukm_decode.h
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/host-bin/python ../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py --input ../../3rdparty/chromium/tools/metrics/ukm/ukm.xml --output gen/services/metrics/public/cpp
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py:247: SyntaxWarning: invalid escape sequence '\w'
  """A complex node type that has attributes or other nodes as children.
Traceback (most recent call last):
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py", line 59, in <module>
    sys.exit(main(sys.argv))
             ^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py", line 27, in main
    data = ReadFilteredData(args.input)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/metrics/ukm/gen_builders.py", line 48, in ReadFilteredData
    data = ukm_model.UKM_XML_TYPE.Parse(ukm_file.read())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 439, in Parse
    return self._ParseMinidom(input_file)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 418, in _ParseMinidom
    return self.root_type.Unmarshall(root)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 324, in Unmarshall
    child.node_type.Unmarshall(n) for n in nodes]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/metrics/ukm/../common/models.py", line 302, in Unmarshall
    if not re.match(attr_re, attr_val):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/__init__.py", line 167, in match
    return _compile(pattern, flags).match(string)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/__init__.py", line 307, in _compile
    p = _compiler.compile(pattern, flags)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_compiler.py", line 745, in compile
    p = _parser.parse(p, flags)
        ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_parser.py", line 979, in parse
    p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_parser.py", line 460, in _parse_sub
    itemsappend(_parse(source, state, verbose, nested + 1,
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/host/lib/python3.12/re/_parser.py", line 840, in _parse
    raise source.error('global flags not at the start '
re.error: global flags not at the start of the expression at position 1

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:44 +02:00
Thomas Petazzoni
34857f644b package/qt5/qt5webengine-chromium: backport upstream patch to fix Python 3.12 issue
Two Python scripts from the upstream Chromium code base uselessly
imported the "imp" module, causing the build to fail with Python
3.12. This commit backports an upstream patch that fixes this issue.

Traceback (most recent call last):
File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/mojo/public/tools/mojom/mojom_parser.py", line 23, in <module>
  from mojom.generate import translate
File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/translate.py", line 17, in <module>
  from mojom.generate import generator
File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py", line 12, in <module>
  from mojom import fileutil
File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py", line 6, in <module>
  import imp
ModuleNotFoundError: No module named 'imp'

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:43 +02:00
Aleksandr Makarov
8dc7445056 package/libest: Add support for openssl v3
libest uses functions that are no longer available in OpenSSL 3.0. Add a
wrapper that calls the proper replacements depending on the version.

Fixes:
  http://autobuild.buildroot.net/results/89024d6c1f10959282470b120d332fb32922b3b6

Signed-off-by: Aleksandr Makarov <aleksandr.o.makarov@gmail.com>
[Arnout: add Upstream: tag to patches]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 11:38:49 +02:00
Roy Kollen Svendsen
246763308b package/qt6/qt6base: fix missing plugins and qml2 imports
When using the default value "." for of ArchData, qt6-applications that require QML2 imports or
plugins, will not run:

In my case the wayland-egl platform plugin is not found:

  qt.qpa.plugin: Could not find the Qt platform plugin "wayland-egl" in ""

And I also get a lot of qml related warnings:

  qrc:/qml/main.qml:3:1: module "QtQuick.Layouts" is not installed

Prior to this fix, we had to set the QML2_IMPORT_PATH and QT_PLUGIN_PATH or make sure qt.conf is
available.

After this fix, ArchData starts with "lib", which is necessary (according to my own experiments)
for qt6-applications to find plugins and qml2 imports. The root cause is still unknown, but I
think the current solution is sufficient.

Setting ArchData to "lib/qt6" is also a good first step towards a better qt6 filesystem layout.
I will continue improving the qt6 filesystem layout in a later patch.

Signed-off-by: Roy Kollen Svendsen <roykollensvendsen@gmail.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 11:28:03 +02:00
Julien Olivain
009f9106d9 support/testing: fs: new btrfs runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 11:22:10 +02:00
Julien Olivain
9d0bb0e67b support/testing: new dmidecode runtime test
Note: this test was not working in Buildroot test infrastructure
before commit [1] was merged, because dmidecode has the string "# "
in its output.

[1] 0cad947b96

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 11:22:09 +02:00
Steffen Persvold
3847a145c2 package/dhrystone: fix build with GCC 14.x
GCC14 will give errors for missing function declarations and
missing return types :

dhry_1.c:75:1: error: return type defaults to ‘int’ [-Wimplicit-int]
   75 | main(int argc, char *argv[])
      | ^~~~
dhry_1.c: In function ‘main’:
dhry_1.c:159:5: error: implicit declaration of function ‘Proc_5’ [-Wimplicit-function-declaration]
  159 |     Proc_5();
      |     ^~~~~~

Fixes:

  http://autobuild.buildroot.net/results/8e65ba30efd5a6bca197f24ced2db1f8226b2c51/

Signed-off-by: Steffen Persvold <spersvold@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 11:20:09 +02:00
Thomas Petazzoni
95013777cf package/dhrystone: cleanup patch stack
dhrystone is basically a dead project, so there is no Git repo
available anywhere, no new release, nothing.

Despite that, let's reformat the patches with "git format-patch", keep
the original authorship but add my SoB since I'm reintroducing the
patches, and indicate the Upstream: status.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 11:20:08 +02:00
Yegor Yefremov
a14c862c08 Create a .gitignore file in the CANONICAL_O directory
This .gitignore file ignores all files in an output directory and
hence doesn't change the git status.

Remove "/output" entry from the main .gitignore file as it is already
handled by this general approach.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 10:26:06 +02:00
Yann E. MORIN
9a66711be1 package/tar: fix linking with libiconv
Backport two patches from upstream to fix linking with libiconv, e.g.
with this defconfig:

    BR2_TOOLCHAIN_BUILDROOT_UCLIBC=y
    BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
    BR2_SYSTEM_ENABLE_NLS=y
    BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
    BR2_PACKAGE_LIBICONV=y
    BR2_PACKAGE_TAR=y

It is interesting to note that the first patch we backport is the first
commit in the tar repository after the 1.35 tag, and was comitted the
same day the release was cut...

Fixes:

 https://gitlab.com/buildroot.org/buildroot/-/issues/4
 http://autobuild.buildroot.net/results/c074c2e22a7f764400ecc7dd1a6cd6022fa87fb9/

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 10:22:49 +02:00
Jan Čermák
455637e801 package/dbus: set runstatedir to /run
DBus 1.14.x now has the Containers1 interface which uses path in
runstatedir (by default set to /var/run) for creating sockets. With the
default, Systemd complains about it being a legacy directory:

systemd-tmpfiles[102]: /usr/lib/tmpfiles.d/dbus.conf:13: Line references
path below legacy directory /var/run/, updating /var/run/dbus/containers
→ /run/dbus/containers; please update the tmpfiles.d/ drop-in file
accordingly.

Set the configure option runstatedir to /run to use the preferred path
to avoid the warning and use the /run directory consistently. Setting
the value only affects the path of these sockets and to the PID file,
which is already explicitly set by another option.

We already tried to set the --runstatedir option globally, but that
confuses older autotools, so in the end it got reverted in
c8af4eef49.

Signed-off-by: Jan Čermák <sairon@sairon.cz>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 10:16:54 +02:00
Fiona Klute
8841eb005d package/busybox: add ifplugd init script
The init script will be installed only if no other package provides
ifplugd (currently that could be package/ifplugd). Users can configure
the interface(s) which ifplugd should watch either using
/etc/default/ifplugd (for one interface) or using per-interface
symlinks to the script in /etc/init.d (for any number of
interfaces). The action script that ifplugd runs when a link change is
detected must be supplied separately.

Signed-off-by: Fiona Klute <fiona.klute+wiwa@gmx.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 10:13:06 +02:00
Fiona Klute
b341023981 package/busybox: add crond init script
The init script will be installed only if no other package provides
cron (currently that could be package/dcron).

Our current default location for crontabs was the Busybox default of
/var/spool/cron/, but /var/spool is stored on tmpfs. This isn't
convenient as crontabs should normally be persistent, so we change
this default to /etc/cron, which is much more sensible. We also create
it to make sure to create this directory.

Signed-off-by: Fiona Klute <fiona.klute+wiwa@gmx.de>
[Thomas:
- Change default location of crontab
- Rework init script according to the latest coding style rules]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 09:43:18 +02:00
Thomas Devoogdt
f041540ef5 package/cairo: bump to 1.18.0
News:
 - https://www.cairographics.org/news/cairo-1.17.8/
 - https://www.cairographics.org/news/cairo-1.18.0/

Some options are renamed/dropped so fix that along.
 - GL and GLES drawing has been dropped in 1.17.8.
 - The XML surface has been removed in 1.18.0.
 - xlib-xcb was added [1]

Patches:
 - drop 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch, upstream: [2]
 - drop 0002-Fix-mask-usage-in-image-compositor.patch, upstream: [3]
 - drop 0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch, upstream: [4]

[1]: 3468c67fe9
[2]: ab2c5ee21e
[3]: 03a820b173
[4]: 1bec56ea8a

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
[Arnout: fix patch so it has fuzz 0]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 00:12:58 +02:00
Thomas Devoogdt
1fa58814c0 package/cairo: move to the meson build system
- Moved BR2_PACKAGE_CAIRO_{SCRIPT,PS,PDF,XML} to Config.in.legacy
  since they are not selectable anymore in the meson-build options.
  BR2_PACKAGE_CAIRO_ZLIB serves for all of them now.

- Moved BR2_PACKAGE_CAIRO_SVG to Config.in.legacy since the PNG
  option already selects that one. This is now in sync with the
  meson build options.

- Note that the dependencies for the various options are slightly changed,
  but there is not much mentioned about that, the meson introduction is done
  in one big commit: [1].

- Added xlib_libXrender dependency, which was optional when using
  autotools (--enable-xlib-xrender), but became mandatory when using
  meson [2].

- Added two patches to fix cross compiling, upstream: [3]

[1]: 596a82f2d1
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/blame/1.17.4/meson.build#L277
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
[Arnout: edit patch 0005 so it applies with fuzz 0]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 00:12:55 +02:00
Marcus Hoffmann
d429d5d399 support/testing: add python-msgpack runtime test
Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 00:12:51 +02:00
Julien Olivain
2da40a2fd7 support/testing: add attr runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 00:12:47 +02:00
Bryan Brattlof
c85e291d40 configs/ti_am62ax_sk_defconfig: add support for Ti's am62ax-sk
Add a board config to support the am62ax-sk reference board for TI's
AM62Ax SoC family.

Signed-off-by: Bryan Brattlof <bb@ti.com>
Tested-by: Paresh Bhagat <p-bhagat@ti.com>
[Romain:
  - add Upstream: tag in the kernel patch
  - use BR2_TARGET_OPTEE_OS_PLATFORM="k3-am62ax"
]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-07-15 00:11:58 +02:00
Neal Frager
5513ded8ff configs/versal_vpk180_defconfig: new defconfig
This patch adds support for Xilinx Versal VPK180 Evaluation Kit.

VPK180 features can be found here:
https://www.xilinx.com/products/boards-and-kits/vpk180.html

Signed-off-by: Neal Frager <neal.frager@amd.com>
Reviewed-by: Brandon Maier <brandon.maier@collins.com>
Tested-by: Brandon Maier <brandon.maier@collins.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-07-14 23:34:15 +02:00
Yegor Yefremov
fa241685e7 package/attr: add missing libgen.h header
Resolves the following error when building against MUSL:

tools/attr.c: In function 'main':
tools/attr.c:69:20: error: implicit declaration of function 'basename'
[-Wimplicit-function-declaration]
   69 |         progname = basename(argv[0]);
      |                    ^~~~~~~~
tools/attr.c:69:18: error: assignment to 'char *' from 'int' makes
pointer from integer without a cast [-Wint-conversion]
   69 |         progname = basename(argv[0]);
      |                  ^

Upstream: https://git.savannah.nongnu.org/cgit/attr.git/commit/?id=8a80d895dfd779373363c3a4b62ecce5a549efb2

Fixes: http://autobuild.buildroot.net/results/c61206968eda9913e37e95a61dc3e10399503fcd/

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
[Romain: use upstream patch]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-07-14 23:08:48 +02:00
Fabrice Fontaine
8fc504e384 package/chicken: add CHICKEN_CPE_ID_VENDOR
cpe:2.3:a:call-cc:chicken is a valid CPE identifier for this package:

  https://nvd.nist.gov/products/cpe/detail/6F55B09D-8D4B-4F1C-889C-9B65048AB632

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:59:05 +02:00
Michael Nosthoff
16abf80368 package/boost: cleanup boost-context/fiber/math
boost-context
- requires C++11 (gcc 4.8) since 1.61 see [0]
- dropped the dependency on (boost) thread in 1.77 see [1]
boost-fiber
- needed C++11 since it's creation in 1.61 [2]
boost-math
- add comment for gcc version

[0] https://www.boost.org/doc/libs/1_82_0/libs/context/doc/html/context/requirements.html
[1] 8425e830ea
[2] https://www.boost.org/doc/libs/1_62_0/libs/fiber/doc/html/fiber/overview.html

Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:58:12 +02:00
Michael Nosthoff
5c20804afa package/boost: cleanup HOST_BOOST_FLAGS
- fix alphabetical ordering
- put one module per line
- add comment explaining why options are enabled

Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:58:08 +02:00
Yann E. MORIN
ac2e6b3927 support/download/check-hash: accept hash files without terminating \n
Lots of people are using broken text editors that 1. do not naturally
terminate text files with a final \n as is customary in UNIX text files,
and 2. do not respect our .editorconfig settings, which explicitly
require adding that final newline. See this nice summary of what a text
file is (with references to applicable standards):

    https://stackoverflow.com/questions/12916352/shell-script-read-missing-last-line/12916758#12916758

So, it is not surprising that read does not read the last "line" of a
file, when said "line" does not end with a newline, because it is thus
not really a line.

Even though we do mandate actual text files, let's be a little bit lax
in this respect, because people may write packages, and their hash
files, in a br2-external tree, and they may not have our .editorconfig
in the directory heierarchy (e.g. if buildroot is a submodule of their
br2-external tree, or whatever).

mapfile does not suffer from this limitation, though, and correctly
reads all lines from a file, even the final line-that-is-not-a-line.

mapfile was introduced in bash 4.0, released on 2009-01-20, more than
15 years ago. Debian squeeze, released in 2011 already had bash 4.1.
Those are really ancient. So, it means we can indeed expect bash
version 4.0 or later; which means mapfile is available.

"It should be fine!"

Fixes: #15976

Reported-by: masonwardle@gmail.com
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:58:04 +02:00
Yann E. MORIN
5d8445138b support/scripts/mkusers: accept user tables without terminating \n
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:58:00 +02:00
Dario Binacchi
6a2b4679ac configs/ti_am62x_sk: bump Linux to 6.8.12 and U-Boot to 2024.07
The patch bumps the Linux kernel to version 6.8.12 and U-Boot to version
2024.07.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-07-14 22:57:33 +02:00
Matt Staveley-Taylor
7d0707cae4 package: add support for extracting zstd archives
Teach the generic package handling code how to extract zstd (.tar.zst)
archives. When zstd is not installed on the host, host-zstd gets built
automatically.

Signed-off-by: Matt Staveley-Taylor <matt.stav.taylor@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-14 22:47:15 +02:00
Thomas Petazzoni
2ca698051c package/ncftp: use correct SPDX license code
According to https://spdx.org/licenses/, the correct license code for
the "Clarified Artistic License" is ClArtistic.

The only other package in Buildroot containing code under this license
is google-breakpad, and it is already using the ClArtistic SPDX code.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:36:21 +02:00
Brandon Maier
322213e131 .b4-config: configure b4 for Buildroot
`b4` is a commandline tool to make patch-based development easier[1]. It
is primarily used for Linux kernel development, but can be configured to
support any project that has a public-inbox endpoint. Buildroot has a
public-inbox mirror at "https://lore.kernel.org/buildroot/".

We configure some basic settings that tell `b4` where to send patches
and how to use get-developers.

[1] https://b4.docs.kernel.org/en/latest/

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:35:10 +02:00
Romain Naour
14192d722c configs/orangepi_lite: uboot needs openssl
The defconfig fails in uboot build, with output:

    In file included from tools/imagetool.c:10:
    include/image.h:1178:12: fatal error: openssl/evp.h: No such file or directory
     1178 | #  include <openssl/evp.h>
          |            ^~~~~~~~~~~~~~~

This commit fixes the issue by adding
BR2_TARGET_UBOOT_NEEDS_OPENSSL=y to the defconfig.

Fixes: 0e1b6ab700

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-07-14 22:24:43 +02:00
J. Neuschäfer
17deaf60f6 tipidee: new package
Also needs a host version to be able to generate the binary config file.
The host version is user-selectable so the user has the option of
running the compiler in a post-build script some other way.

We don't install the config file compiler tipidee-config on target.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
[Arnout:
 - Remove BR2_PACKAGE_TIPIDEE_CONFIGURATION, use empty value of
   BR2_PACKAGE_TIPIDEE_CONFIG_FILE to flag false.
 - Rename BR2_PACKAGE_TIPIDEE_CONFIGURATION_FILE to
   BR2_PACKAGE_TIPIDEE_CONFIG_FILE.
 - Default BR2_PACKAGE_TIPIDEE_CONFIG_FILE to empty.
 - Fix spelling of BR2_PACKAGE_HOST_TIPIDEE.
 - Add J. to DEVELOPERS.
 - Install in /usr instead of /.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 22:16:52 +02:00
J. Neuschäfer
1282ebc830 s6-dns: bump to version 2.3.7.2
The COPYING hash changed because the copyright year was updated.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:47:19 +02:00
J. Neuschäfer
31e6a80198 mdevd: bump to version 0.1.6.4
The COPYING hash changed because the copyright year was updated.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:46:41 +02:00
J. Neuschäfer
f7756e2e24 s6-rc: bump to version 0.5.4.3
The COPYING hash changed because the copyright year was updated.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:46:24 +02:00
J. Neuschäfer
07039e8174 s6-networking: bump to version 2.7.0.3
Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:46:08 +02:00
J. Neuschäfer
9dff6c7f48 execline: bump to version 2.9.6.0
Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:38:56 +02:00
J. Neuschäfer
e9e0670f3c s6: bump to version 2.13.0.1
Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:38:34 +02:00
J. Neuschäfer
d68d8c4d34 skalibs: bump to version 2.14.2.0
Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:38:18 +02:00
ʎɐH ǝʌǝʇS
ca6c896bdd support/scripts/graph-depends allow for forward and reverse depends on same graph
The current implementation of buildroot depe dependency graphing
either does forward- or reverse-dependency traversal.

This patch enables buildroot to graph forward and reverse dependencies
on the graph for the same package: (Diagram Credit: Yann E. MORIN)

    $ make pkg-d-graph-both-depends

    pkg A -.            .-> pkg E
            \          /
    pkg B ----> pkg D ----> pkg F
            /          \
    pkg C -'            '-> pkg G

In the above example a single graph shows pkg {A,B,C} are needed
by pkg D, and pkg D is a dependency of pkg {E,F,G}.

Makefile help and manual are also updated.

Signed-off-by: Steve Hay <me@stevenhay.com>
[Arnout:
 - remove DEPTH and RDEPTH, their functionality is already covered by
   BR2_GRAPH_DEPS_OPTS;
 - remove --rdepth, it was felt to not add sufficient added value;
 - add the new target to the manual;
 - fix flake8 errors.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:31:03 +02:00
ʎɐH ǝʌǝʇS
0c2e6050cc support/scripts/graph-depends: remove global done_deps variable
Instead of having done_deps as a global variable, pass it as an argument
to the print_pkg_deps function. This will allow the recursive search to
be started multiple times.

Signed-off-by: Steve Hay <me@stevenhay.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:31:00 +02:00
Jan Kraval
0e1b6ab700 configs/orangepi_lite: bump kernel and u-boot versions
Bump Linux to 6.6 and U-Boot to 2024.01.

Signed-off-by: Jan Kraval <jan.kraval@gmail.com>
[Romain:
      - enable BR2_DOWNLOAD_FORCE_CHECK_HASHES and add hashes files
]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-07-14 20:00:52 +02:00
Jan Kraval
99e536d9c7 board/orangepi/orangepi-lite: switch to extlinux
Switch to extlinux instead of U-Boot boot script. Drop custom
boot script and genimage config. Instead use common orangepi
files from board/orangepi/common.

Signed-off-by: Jan Kraval <jan.kraval@gmail.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-07-14 19:46:44 +02:00