>Number: 59854
>Category: pkg
>Synopsis: firefox140 from 2025Q4 does not build with python314 on NetBSD-11 amd64
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Dec 23 00:20:00 +0000 2025
>Originator: Hisashi Todd Fujinaka
>Release: NetBSD 11.0_BETA
>Organization:
None
>Environment:
System: NetBSD mail.i8u.org 11.0_BETA NetBSD 11.0_BETA (MARA) #3500: Thu Dec 18 19:45:33 PST 2025 [email protected]:/usr/obj/amd64/sys/arch/amd64/compile/MARA amd64
Architecture: x86_64
Machine: amd64
>Description:
Trying to build firefox-esr (firefox140) from pkgsrc 2025Q4 on NetBSD-11. I get what look like python errors.
/usr/obj/pkg/www/firefox140/work.x86_64/.home/.mozbuild/srcdirs/firefox-140.6.0-8cba140349ad/_virtualenvs/build/bin/python -m mozbuild.action.file_generate /usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/xpcom/idl-parser/xpidl/header.py main xpcom/idl-parser/xpidl/xpidl.stub xpcom/idl-parser/xpidl/.deps/xpidl.stub.pp xpcom/idl-parser/xpidl/.deps/xpidl.stub.stub
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/python/mozbuild/mozbuild/action/file_generate.py", line 153, in <module>
sys.exit(main(sys.argv[1:]))
~~~~^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/python/mozbuild/mozbuild/action/file_generate.py", line 97, in main
ret = module.__dict__[method](
output, *args.additional_arguments, **kwargs
)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/toolkit/components/glean/build_scripts/glean_parser_ext/cache_yaml.py", line 14, in main
parse_result = parse(args, interesting_yamls)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/toolkit/components/glean/build_scripts/glean_parser_ext/run_glean_parser.py", line 117, in parse
return parse_with_options(input_files, options)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/toolkit/components/glean/build_scripts/glean_parser_ext/run_glean_parser.py", line 125, in parse_with_options
if util.report_validation_errors(all_objs):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/util.py", line 484, in report_validation_errors
for error in all_objects:
^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/util.py", line 250, in __iter__
self.value = yield from self.g
^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 480, in parse_objects
content, filetype = yield from _load_file(filepath, config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 98, in _load_file
for error in validate(content, filepath):
~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 160, in validate
schema, validator = _get_schema_for_content(content, filepath)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 150, in _get_schema_for_content
return _get_schema(schema_url, filepath)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 129, in _get_schema
schemas = _load_schemas()
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 117, in _load_schemas
validator_class.check_schema(schema)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 230, in check_schema
for error in validator.iter_errors(schema):
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/_validators.py", line 332, in properties
yield from validator.descend(
...<4 lines>...
)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 305, in descend
for error in self.evolve(schema=schema).iter_errors(instance):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/_validators.py", line 294, in ref
scope, resolved = validator.resolver.resolve(ref)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 894, in resolve
match = self._find_in_subschemas(url)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 878, in _find_in_subschemas
target_uri = self._urljoin_cache(
self.resolution_scope, subschema["$id"],
)
TypeError: unhashable type: 'dict'
/usr/obj/pkg/www/firefox140/work.x86_64/.home/.mozbuild/srcdirs/firefox-140.6.0-8cba140349ad/_virtualenvs/build/bin/python /usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/config/nsinstall.py -t -m 644 'buildid.h' 'dist/include'
gmake[2]: *** [backend.mk:2020: toolkit/components/glean/.deps/pings_yamls.cached.stub] Error 1
gmake[2]: *** Waiting for unfinished jobs....
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/python/mozbuild/mozbuild/action/file_generate.py", line 153, in <module>
sys.exit(main(sys.argv[1:]))
~~~~^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/python/mozbuild/mozbuild/action/file_generate.py", line 97, in main
ret = module.__dict__[method](
output, *args.additional_arguments, **kwargs
)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/toolkit/components/glean/build_scripts/glean_parser_ext/cache_yaml.py", line 14, in main
parse_result = parse(args, interesting_yamls)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/toolkit/components/glean/build_scripts/glean_parser_ext/run_glean_parser.py", line 117, in parse
return parse_with_options(input_files, options)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/toolkit/components/glean/build_scripts/glean_parser_ext/run_glean_parser.py", line 125, in parse_with_options
if util.report_validation_errors(all_objs):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/util.py", line 484, in report_validation_errors
for error in all_objects:
^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/util.py", line 250, in __iter__
self.value = yield from self.g
^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 480, in parse_objects
content, filetype = yield from _load_file(filepath, config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 98, in _load_file
for error in validate(content, filepath):
~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 160, in validate
schema, validator = _get_schema_for_content(content, filepath)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 150, in _get_schema_for_content
return _get_schema(schema_url, filepath)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 129, in _get_schema
schemas = _load_schemas()
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/glean_parser/glean_parser/parser.py", line 117, in _load_schemas
validator_class.check_schema(schema)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 230, in check_schema
for error in validator.iter_errors(schema):
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/_validators.py", line 332, in properties
yield from validator.descend(
...<4 lines>...
)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 305, in descend
for error in self.evolve(schema=schema).iter_errors(instance):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
^^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/_validators.py", line 294, in ref
scope, resolved = validator.resolver.resolve(ref)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 894, in resolve
match = self._find_in_subschemas(url)
File "/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/third_party/python/jsonschema/jsonschema/validators.py", line 878, in _find_in_subschemas
target_uri = self._urljoin_cache(
self.resolution_scope, subschema["$id"],
)
TypeError: unhashable type: 'dict'
gmake[2]: *** [backend.mk:2012: toolkit/components/glean/.deps/metrics_yamls.cached.stub] Error 1
gmake[2]: Leaving directory '/usr/obj/pkg/www/firefox140/work.x86_64/build'
gmake[1]: *** [/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/config/recurse.mk:34: export] Error 2
gmake[1]: Leaving directory '/usr/obj/pkg/www/firefox140/work.x86_64/build'
gmake: *** [/usr/obj/pkg/www/firefox140/work.x86_64/firefox-140.6.0/config/rules.mk:359: all] Error 2
*** Error code 2
Stop.
make[2]: stopped making "reinstall" in /home/netbsd-cvs/pkgsrc-2025Q4/pkgsrc/www/firefox140
*** Error code 1
Stop.
make[1]: stopped making "reinstall" in /home/netbsd-cvs/pkgsrc-2025Q4/pkgsrc/www/firefox140
*** Error code 1
Stop.
make: stopped making "install" in /home/netbsd-cvs/pkgsrc-2025Q4/pkgsrc/www/firefox-esr
[
>How-To-Repeat:
I just did a "make install" in /usr/pkgsrc/www/firefox-esr
>Fix:
Yes please
>Unformatted:
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.