Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 May 2024 07:29:29 -0700
From:      David Wolfskill <david@catwhisker.org>
To:        freebsd-ports@freebsd.org
Subject:   www/firefox: Python(?) issues building under poudriere (stable/14)
Message-ID:  <Zj-AyWjjtP8MhaQx@albert.catwhisker.org>

next in thread | raw e-mail | index | archive | help

--cb6Cp+iUe9Xfj+jB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

TL;DR: As the Subject says; log & info at
https://www.catwhisker.org/~david/FreeBSD/ports/firefox/

Additional detail:
I have 2 broad categories of FreeBSD machines here at home (all amd64):
* Development machines (a build machine & some laptops)
* Production machines (a multi-homed "traffic cop"/gateway & a main
  machine)

The development machines get updated daily, tracking stable/14 & head
(on dfferent slices); installed ports are updated daily on stable/14
using portmaster (except for www/chromium).  The laptops have a
slightly-customized kernel; the build machine runs GENERIC.

The production machines get updated weekly (Sunday mornings), with the
just-built snapshot of stable/14 (courtesy of the build machine).  The
build machine also runs poudriere-devel to build packages for the
production machines (and for the laptops, in the case of chromium).

Package-building is done on a weekly cycle (augmented by as-needed
chromium-specific runs); in order to try to save a bit of time on
"update day" (Sunday), I make an initial package-building run on
Saturday (which, not so coincidentally, is today).

Usually, this process is ... well, boring.  (Which is a Very Good Thing,
as I remind my colleagues at work -- especially when I'm shepherding a
new release.)  It also goes a fairly long way toward ensuring that the
machines I use have "consistent" environments: there is no "piecemeal
updating" going on here.

Last week, poudriere failed to build firefox (on both Saturday and
Sunday, IIRC).  While that was moderately annoying, it didn't seem
fatal: the previously-built firefox had already been installed on the
one production machine that has it.  And the laptops (that build firefox
using portmaster) didn't seem to have a problem building & using it.

But the port has since been updated (to 126.0_1,2.  And poudriere
has complained again.  So this time, I have copied the poudriere
log of the failed build to
https://www.catwhisker.org/~david/FreeBSD/ports/firefox/ (and also
made a compressed copy; my Internet connectivity leaves a fair bit
to be desired).

Specific information for this failure:
The build machine was (and is) running:

FreeBSD freebeast.catwhisker.org 14.1-STABLE FreeBSD 14.1-STABLE #135 stabl=
e/14-n267652-91df7d335dd4: Sat May 11 10:47:37 UTC 2024     root@freebeast.=
catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/GENERIC amd64 1401500=
 1401500

The ports tree is at: main-n662668-8e136401b5b9

poudriere is poudriere-git-3.4.99.20240424

The fatal error in the log appears to be a Python ImportError about
	Undefined symbol "sqlite3_enable_load_extension"

=2E..
/wrkdirs/usr/ports/www/firefox/work/.mozbuild/srcdirs/firefox-126.0-1017168=
9b53e/_virtualenvs/build/bin/python -m mozbuild.action.file_generate /wrkdi=
rs/usr/ports/www/firefox/work/firefox-126.0/toolkit/components/telemetry/bu=
ild_scripts/gen_scalar_enum.py main toolkit/components/telemetry/TelemetryS=
calarEnums.h toolkit/components/telemetry/.deps/TelemetryScalarEnums.h.pp t=
oolkit/components/telemetry/.deps/TelemetryScalarEnums.h.stub /wrkdirs/usr/=
ports/www/firefox/work/firefox-126.0/toolkit/components/telemetry/Scalars.y=
aml
=2E/TelemetryEventData.h.stub
/wrkdirs/usr/ports/www/firefox/work/.mozbuild/srcdirs/firefox-126.0-1017168=
9b53e/_virtualenvs/build/bin/python -m mozbuild.action.file_generate /wrkdi=
rs/usr/ports/www/firefox/work/firefox-126.0/toolkit/components/telemetry/bu=
ild_scripts/gen_event_data.py main toolkit/components/telemetry/TelemetryEv=
entData.h toolkit/components/telemetry/.deps/TelemetryEventData.h.pp toolki=
t/components/telemetry/.deps/TelemetryEventData.h.stub /wrkdirs/usr/ports/w=
ww/firefox/work/firefox-126.0/toolkit/components/telemetry/Events.yaml
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/python/mozbuild/m=
ozbuild/action/file_generate.py", line 154, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/python/mozbuild/m=
ozbuild/action/file_generate.py", line 85, in main
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_remo=
ved
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/toolkit/component=
s/glean/build_scripts/glean_parser_ext/run_glean_parser.py", line 11, in <m=
odule>
    import cpp
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/toolkit/component=
s/glean/build_scripts/glean_parser_ext/cpp.py", line 14, in <module>
    from glean_parser import metrics, util
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/third_party/pytho=
n/glean_parser/glean_parser/metrics.py", line 15, in <module>
    from . import pings
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/third_party/pytho=
n/glean_parser/glean_parser/pings.py", line 14, in <module>
    from . import util
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/third_party/pytho=
n/glean_parser/glean_parser/util.py", line 17, in <module>
    import diskcache  # type: ignore
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/third_party/pytho=
n/diskcache/diskcache/__init__.py", line 9, in <module>
    from .core import Cache, Disk, EmptyDirWarning, JSONDisk, UnknownFileWa=
rning, Timeout
  File "/wrkdirs/usr/ports/www/firefox/work/firefox-126.0/third_party/pytho=
n/diskcache/diskcache/core.py", line 14, in <module>
    import sqlite3
  File "/usr/local/lib/python3.9/sqlite3/__init__.py", line 57, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.9/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: /usr/local/lib/python3.9/lib-dynload/_sqlite3.cpython-39.so: U=
ndefined symbol "sqlite3_enable_load_extension"
gmake[2]: *** [backend.mk:684: toolkit/components/glean/.deps/HistogramGIFF=
TMap.h.stub] Error 1
gmake[2]: *** Waiting for unfinished jobs....
=2E...

The only difference in port options I find between the laptops &
poudriere is that the laptops have:

     SNDIO=3Doff: Sndio audio support

while poudriere shows:

OPTIONS_FILE_SET+=3DSNDIO


Finally (for this post), I admit that I've never really picked up Python
(and that SQL-related things are things I tend to muddle through, then
write scripts to handle so I don't need to try to think about them any
more).

So: Do I need to fix my process?  Is this actually symptomatic of
something that warrants a bug report?

Thanks!

Peace,
david
--=20
David H. Wolfskill                              david@catwhisker.org
Please do not mistake "authoritarian" for "conservative" -- or vice versa.

See https://www.catwhisker.org/~david/publickey.gpg for my public key.

--cb6Cp+iUe9Xfj+jB
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iNUEARYKAH0WIQSTLzOSbomIK53fjFliipiWhXYx5QUCZj+AyV8UgAAAAAAuAChp
c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0OTMy
RjMzOTI2RTg5ODgyQjlEREY4QzU5NjI4QTk4OTY4NTc2MzFFNQAKCRBiipiWhXYx
5UVcAP9ODbQ8F+GegYxRng2fX6S2w+zACLNQ8gD3kAVrMj1uUQEAq8C7ZxvagCQo
8uHNxBuJuUPusSiYHuSa6SRtqMAGCQY=
=KIsP
-----END PGP SIGNATURE-----

--cb6Cp+iUe9Xfj+jB--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Zj-AyWjjtP8MhaQx>