[Buildroot] [PATCH v4 3/3] package/python3: bump version to 3.12.1

James Hilliard james.hilliard1 at gmail.com
Wed Feb 7 02:32:34 UTC 2024


On Tue, Feb 6, 2024 at 3:33 PM Thomas Petazzoni
<thomas.petazzoni at bootlin.com> wrote:
>
> Hello Adam,
>
> On Mon, 18 Dec 2023 15:04:56 -0700
> Adam Duskett <adam.duskett at amarulasolutions.com> wrote:
>
> > Python 3.12.1 has removed distutils support. As such, we remove the distutils
> > option from pkg-python.mk as well.
> >
> > Tested on Fedora 39, and Debian 11. All 68 package tests pass.
> >
> > Signed-off-by: Adam Duskett <adam.duskett at amarulasolutions.com>
> > ---
> > v3 -> v4:
> >   - Drop distutils in pkg-python.mk
> >   - 3.12.0 -> 3.12.1
>
> I applied, but after doing a number of changes. The most important one
> is that I had to reintroduce some of our --disable options: for
> ncurses, sqlite and expat. Indeed, without these, you ended up with the
> Python code installed, but not the correspond native library (the
> py_cv_module__<something>=n/a only disables building the native
> library).
>
> I split up the pkg-python.mk change into a separate commit, which is
> made before the python 3.12 bump. Indeed, it's semantically separate.
>
> Finally, I updated the Buildroot manual to no longer mention distutils
> support. And I did a separate commit to update the Buildroot manual
> with other _SETUP_TYPE values that we support.

There seems to be a bug somewhere here breaking builds when the host
and target have the same architecture:

/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-I./Modules/_sqlite -fno-strict-overflow -Wsign-compare -DNDEBUG -g
-O3 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64  -Os -g0 -D_FORTIFY_SOURCE=1   -std=c11 -Wextra
-Wno-unused-parameter -Wno-missing-field-initializers
-Wstrict-prototypes -Werror=implicit-function-declaration
-fvisibility=hidden  -I./Include/internal  -I. -I./Include
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-fPIC -fPIC -c ./Modules/_sqlite/util.c -o Modules/_sqlite/util.o
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-shared      Modules/_sqlite/blob.o Modules/_sqlite/connection.o
Modules/_sqlite/cursor.o Modules/_sqlite/microprotocols.o
Modules/_sqlite/module.o Modules/_sqlite/prepare_protocol.o
Modules/_sqlite/row.o Modules/_sqlite/statement.o
Modules/_sqlite/util.o
-L/home/buildroot/buildroot/output/per-package/python3/host/bin/../x86_64-buildroot-linux-gnu/sysroot/usr/lib
-lsqlite3   -o Modules/_sqlite3.cpython-312-x86_64-linux-gnu.so
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-I/home/buildroot/buildroot/output/per-package/python3/host/x86_64-buildroot-linux-gnu/sysroot/usr/include
-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os
-g0 -D_FORTIFY_SOURCE=1   -std=c11 -Wextra -Wno-unused-parameter
-Wno-missing-field-initializers -Wstrict-prototypes
-Werror=implicit-function-declaration -fvisibility=hidden
-I./Include/internal  -I. -I./Include -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -fPIC -fPIC -c
./Modules/_ssl.c -o Modules/_ssl.o
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-shared      Modules/_ssl.o
-L/home/buildroot/buildroot/output/per-package/python3/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib
 -lssl -lcrypto  -o Modules/_ssl.cpython-312-x86_64-linux-gnu.so
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-I/home/buildroot/buildroot/output/per-package/python3/host/x86_64-buildroot-linux-gnu/sysroot/usr/include
-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os
-g0 -D_FORTIFY_SOURCE=1   -std=c11 -Wextra -Wno-unused-parameter
-Wno-missing-field-initializers -Wstrict-prototypes
-Werror=implicit-function-declaration -fvisibility=hidden
-I./Include/internal  -I. -I./Include -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -fPIC -fPIC -c
./Modules/_hashopenssl.c -o Modules/_hashopenssl.o
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-shared      Modules/_hashopenssl.o
-L/home/buildroot/buildroot/output/per-package/python3/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib
  -lcrypto  -o Modules/_hashlib.cpython-312-x86_64-linux-gnu.so
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
 -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os
-g0 -D_FORTIFY_SOURCE=1   -std=c11 -Wextra -Wno-unused-parameter
-Wno-missing-field-initializers -Wstrict-prototypes
-Werror=implicit-function-declaration -fvisibility=hidden
-I./Include/internal  -I. -I./Include -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -fPIC -fPIC -c
./Modules/xxlimited.c -o Modules/xxlimited.o
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-shared      Modules/xxlimited.o   -o
Modules/xxlimited.cpython-312-x86_64-linux-gnu.so
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
 -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os
-g0 -D_FORTIFY_SOURCE=1   -std=c11 -Wextra -Wno-unused-parameter
-Wno-missing-field-initializers -Wstrict-prototypes
-Werror=implicit-function-declaration -fvisibility=hidden
-I./Include/internal  -I. -I./Include -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -fPIC -fPIC -c
./Modules/xxlimited_35.c -o Modules/xxlimited_35.o
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-shared      Modules/xxlimited_35.o   -o
Modules/xxlimited_35.cpython-312-x86_64-linux-gnu.so
/usr/bin/install -c -m 644 ./Tools/gdb/libpython.py python-gdb.py
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
-c -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os
-g0 -D_FORTIFY_SOURCE=1   -std=c11 -Wextra -Wno-unused-parameter
-Wno-missing-field-initializers -Wstrict-prototypes
-Werror=implicit-function-declaration -fvisibility=hidden
-I./Include/internal  -I. -I./Include -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -fPIC -DPy_BUILD_CORE -o
Programs/_testembed.o ./Programs/_testembed.c
/home/buildroot/buildroot/output/per-package/python3/host/bin/x86_64-linux-gcc
    -Xlinker -export-dynamic -o Programs/_testembed
Programs/_testembed.o -L. -lpython3.12 -ldl  -lpthread
       -lm
sed -e "s,/usr/bin/env python3,/usr/bin/python3.12," <
./Tools/scripts/2to3 > build/scripts-3.12/2to3-3.12
sed -e "s,/usr/bin/env python3,/usr/bin/python3.12," <
./Tools/scripts/idle3 > build/scripts-3.12/idle3.12
sed -e "s,/usr/bin/env python3,/usr/bin/python3.12," <
./Tools/scripts/pydoc3 > build/scripts-3.12/pydoc3.12
sed -e "s, at EXENAME@,/usr/bin/python3.12," < ./Misc/python-config.in
>python-config.py
LC_ALL=C sed -e 's,\$(\([A-Za-z0-9_]*\)),\$\{\1\},g' <
Misc/python-config.sh >python-config
Traceback (most recent call last):
  File "/home/buildroot/buildroot/output/build/python3-3.12.1/./Tools/build/check_extension_modules.py",
line 25, in <module>
    import pathlib
  File "/home/buildroot/buildroot/output/build/python3-3.12.1/Lib/pathlib.py",
line 20, in <module>
    from urllib.parse import quote_from_bytes as urlquote_from_bytes
  File "/home/buildroot/buildroot/output/build/python3-3.12.1/Lib/urllib/parse.py",
line 36, in <module>
    import math
ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not
found (required by
/home/buildroot/buildroot/output/build/python3-3.12.1/build/lib.linux-x86_64-3.12/math.cpython-312-x86_64-linux-gnu.so)
make[2]: *** [Makefile:1136: checksharedmods] Error 1
make[1]: *** [package/pkg-generic.mk:283:
/home/buildroot/buildroot/output/build/python3-3.12.1/.stamp_built]
Error 2

>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com



More information about the buildroot mailing list