mesonbuild / meson

The Meson Build System
http://mesonbuild.com
Apache License 2.0
5.47k stars 1.59k forks source link

Windows: crash when configuring harfbuzz subproject #13428

Open CoffeeFlux opened 1 month ago

CoffeeFlux commented 1 month ago

Describe the bug Attempting to configure a harfbuzz subproject for Aegisub on Windows is now triggering subprojects\harfbuzz\meson.build:382:9: ERROR: Unhandled python exception, though without a corresponding error line.

To Reproduce A sample run can be found here: https://github.com/TypesettingTools/Aegisub/actions/runs/9930994529/job/27430361031 Harfbuzz is being brought in via the libass subproject.

Expected behavior Successful build.

system parameters

thesamesam commented 1 month ago

It's buried further above:


Traceback (most recent call last):
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\mesonmain.py", line 188, in run
    return options.run_func(options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\msetup.py", line 364, in run
    app.generate()
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\msetup.py", line 187, in generate
    return self._generate(env, capture, vslite_ctx)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\msetup.py", line 226, in _generate
    intr.run()
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 3032, in run
    super().run()
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 169, in run
    self.evaluate_codeblock(self.ast, start=1)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 203, in evaluate_statement
    self.evaluate_plusassign(cur)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 488, in evaluate_plusassign
    addition = self.evaluate_statement(node.value)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 201, in evaluate_statement
    return self.function_call(cur)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 528, in function_call
    res = func(node, func_args, kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  [Previous line repeated 4 more times]
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 98, in wrapped
    ret = f(*wrapped_args, **wrapped_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 116, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 250, in wrapper
    return f(*nargs, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 569, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 1809, in func_dependency
    d = df.lookup(kwargs)
        ^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\dependencyfallbacks.py", line 354, in lookup
    dep = func(kwargs, func_args, func_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\dependencyfallbacks.py", line 130, in _do_subproject
    self.interpreter.do_subproject(subp_name, func_kwargs)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 948, in do_subproject
    raise e
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 936, in do_subproject
    return methods_map[method](subp_name, subdir, default_options, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 987, in _do_subproject_meson
    subi.run()
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 3032, in run
    super().run()
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 169, in run
    self.evaluate_codeblock(self.ast, start=1)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 203, in evaluate_statement
    self.evaluate_plusassign(cur)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 488, in evaluate_plusassign
    addition = self.evaluate_statement(node.value)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 201, in evaluate_statement
    return self.function_call(cur)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 528, in function_call
    res = func(node, func_args, kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  [Previous line repeated 4 more times]
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 98, in wrapped
    ret = f(*wrapped_args, **wrapped_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 116, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 250, in wrapper
    return f(*nargs, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 569, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 1809, in func_dependency
    d = df.lookup(kwargs)
        ^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\dependencyfallbacks.py", line 354, in lookup
    dep = func(kwargs, func_args, func_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\dependencyfallbacks.py", line 130, in _do_subproject
    self.interpreter.do_subproject(subp_name, func_kwargs)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 948, in do_subproject
    raise e
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 936, in do_subproject
    return methods_map[method](subp_name, subdir, default_options, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 987, in _do_subproject_meson
    subi.run()
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\interpreter.py", line 3032, in run
    super().run()
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 169, in run
    self.evaluate_codeblock(self.ast, start=1)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 241, in evaluate_statement
    self.evaluate_foreach(cur)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 479, in evaluate_foreach
    self.evaluate_codeblock(node.block)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 195, in evaluate_codeblock
    raise e
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 187, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 219, in evaluate_statement
    return self.evaluate_if(cur)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 294, in evaluate_if
    result = self.evaluate_statement(i.condition)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 207, in evaluate_statement
    return self.method_call(cur)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\interpreterbase.py", line 557, in method_call
    res = obj.method_call(method_name, args, kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\baseobjects.py", line 81, in method_call
    return method(args, kwargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 250, in wrapper
    return f(*nargs, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreterbase\decorators.py", line 569, in wrapper
    return f(*wrapped_args, **wrapped_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\compiler.py", line 653, in has_header_method
    return self._has_header_impl(args[0], kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\compiler.py", line 638, in _has_header_impl
    haz, cached = self.compiler.has_header(hname, kwargs['prefix'], self.environment,
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\compilers\mixins\clike.py", line 351, in has_header
    return self.compiles(code, env, extra_args=extra_args,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\compilers\compilers.py", line 1310, in compiles
    with self._build_wrapper(code, env, extra_args, dependencies, mode, disable_cache=disable_cache) as p:
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\compilers\compilers.py", line 1291, in _build_wrapper
    args = self.build_wrapper_args(env, extra_args, dependencies, mode)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\compilers\mixins\clike.py", line 420, in build_wrapper_args
    extra_args = mesonlib.listify([e(mode.value) if callable(e) else e for e in extra_args])
                                   ^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\interpreter\compiler.py", line 274, in _determine_args
    args += self.compiler.get_option_compile_args(opts)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\compilers\cpp.py", line 857, in get_option_compile_args
    args = super().get_option_compile_args(options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\compilers\cpp.py", line 816, in get_option_compile_args
    options.set_value(key,  'c++14')
  File "C:\hostedtoolcache\windows\Python\3.12.4\x64\Lib\site-packages\mesonbuild\coredata.py", line 940, in set_value
    self.overrides[key] = value
    ~~~~~~~~~~~~~~^^^^^
TypeError: 'NoneType' object does not support item assignment
thesamesam commented 1 month ago

I think it's a dupe of https://github.com/mesonbuild/meson/issues/13401.

CoffeeFlux commented 1 month ago

Ah, thanks! Could be a dupe, though this isn't using icc.

eli-schwartz commented 1 month ago

They both look like they are related to the option refactor, but this one appears to actually be a dupe of #13402 instead.

bugaevc commented 3 weeks ago

This was similarly broken for me on 1.5.0, and is now working on 1.5.1.