All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/5] package/pkg-meson: share Meson setup options
@ 2026-10-05 22:38 James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 2/5] package/pkg-meson: share cross-file generation James Hilliard
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: James Hilliard @ 2026-10-05 22:38 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Xukai Wang, Julien Olivain, Gwenhael Goavec-Merou,
	Guillaume William Brs, James Hilliard, Woodrow Douglass,
	Jagan Teki, Thomas Petazzoni, Romain Naour, Fabrice Fontaine

Move the host and target setup options into reusable variables so the
Python infrastructure can use the same defaults for meson-python.

Use -Dbuildtype instead of --buildtype to match the spelling used by
meson-python. Meson rejects both spellings in the same invocation.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 package/pkg-meson.mk | 43 +++++++++++++++++++++++++------------------
 1 file changed, 25 insertions(+), 18 deletions(-)

diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
index f2efbae2eb..5f7eed9edf 100644
--- a/package/pkg-meson.mk
+++ b/package/pkg-meson.mk
@@ -90,6 +90,29 @@ else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
 PKG_MESON_DEFAULT_LIBRARY=both
 endif
 
+# Meson setup options shared with the meson-python backend.
+PKG_MESON_TARGET_OPTS = \
+	--prefix=/usr \
+	--libdir=lib \
+	--default-library=$(PKG_MESON_DEFAULT_LIBRARY) \
+	-Dbuildtype=$(if $(BR2_ENABLE_RUNTIME_DEBUG),debug,release) \
+	--cross-file=$($(PKG)_SRCDIR)/buildroot-build/cross-compilation.conf \
+	-Db_pie=false \
+	-Db_staticpic=$(if $(BR2_m68k_cf),false,true) \
+	-Dstrip=false \
+	-Dbuild.pkg_config_path=$(HOST_DIR)/lib/pkgconfig \
+	-Dbuild.cmake_prefix_path=$(HOST_DIR)/lib/cmake
+
+PKG_MESON_HOST_OPTS = \
+	--prefix=$(HOST_DIR) \
+	--libdir=lib \
+	--sysconfdir=$(HOST_DIR)/etc \
+	--localstatedir=$(HOST_DIR)/var \
+	--default-library=shared \
+	-Dbuildtype=release \
+	--wrap-mode=nodownload \
+	-Dstrip=true
+
 # Generates sed patterns for patching the cross-compilation.conf template,
 # since Flags might contain commas the arguments are passed indirectly by
 # variable name (stripped to deal with whitespaces).
@@ -158,16 +181,7 @@ define $(2)_CONFIGURE_CMDS
 	CXX_FOR_BUILD="$$(HOSTCXX)" \
 	$$($$(PKG)_CONF_ENV) \
 	$$(MESON) setup \
-		--prefix=/usr \
-		--libdir=lib \
-		--default-library=$(PKG_MESON_DEFAULT_LIBRARY) \
-		--buildtype=$(if $(BR2_ENABLE_RUNTIME_DEBUG),debug,release) \
-		--cross-file=$$($$(PKG)_SRCDIR)/buildroot-build/cross-compilation.conf \
-		-Db_pie=false \
-		-Db_staticpic=$(if $(BR2_m68k_cf),false,true) \
-		-Dstrip=false \
-		-Dbuild.pkg_config_path=$$(HOST_DIR)/lib/pkgconfig \
-		-Dbuild.cmake_prefix_path=$$(HOST_DIR)/lib/cmake \
+		$$(PKG_MESON_TARGET_OPTS) \
 		$$($$(PKG)_CONF_OPTS) \
 		$$($$(PKG)_SRCDIR) $$($$(PKG)_SRCDIR)/buildroot-build
 endef
@@ -179,14 +193,7 @@ define $(2)_CONFIGURE_CMDS
 	mkdir -p $$($$(PKG)_SRCDIR)/buildroot-build
 	$$(HOST_CONFIGURE_OPTS) \
 	$$($$(PKG)_CONF_ENV) $$(MESON) setup \
-		--prefix=$$(HOST_DIR) \
-		--libdir=lib \
-		--sysconfdir=$$(HOST_DIR)/etc \
-		--localstatedir=$$(HOST_DIR)/var \
-		--default-library=shared \
-		--buildtype=release \
-		--wrap-mode=nodownload \
-		-Dstrip=true \
+		$$(PKG_MESON_HOST_OPTS) \
 		$$($$(PKG)_CONF_OPTS) \
 		$$($$(PKG)_SRCDIR) $$($$(PKG)_SRCDIR)/buildroot-build
 endef
-- 
2.53.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 2/5] package/pkg-meson: share cross-file generation
  2026-10-05 22:38 [Buildroot] [PATCH 1/5] package/pkg-meson: share Meson setup options James Hilliard
@ 2026-10-05 22:38 ` James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 3/5] package/pkg-python: add meson setup type James Hilliard
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: James Hilliard @ 2026-10-05 22:38 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Xukai Wang, Julien Olivain, Gwenhael Goavec-Merou,
	Guillaume William Brs, James Hilliard, Woodrow Douglass,
	Jagan Teki, Thomas Petazzoni, Romain Naour, Fabrice Fontaine

Extract the cross-file generation and compiler flag defaults for use
by the meson-python backend. Keep package-specific binaries,
properties and flags in the common implementation.

Default Fortran flags to TARGET_FCFLAGS, as for the C and C++ flags.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 docs/manual/adding-packages-meson.adoc |  4 ++++
 package/pkg-meson.mk                   | 25 +++++++++++++++++--------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/docs/manual/adding-packages-meson.adoc b/docs/manual/adding-packages-meson.adoc
index 01891e03cc..c870045441 100644
--- a/docs/manual/adding-packages-meson.adoc
+++ b/docs/manual/adding-packages-meson.adoc
@@ -108,6 +108,10 @@ will therefore only use a few of them.
   +cross-compile.conf+ file +c_link_args+ and +cpp_link_args+ properties. By
   default, the value of +TARGET_LDFLAGS+.
 
+* +FOO_FCFLAGS+, to specify compiler arguments added to the package specific
+  +cross-compile.conf+ file +fortran_args+ property. By default, the value of
+  +TARGET_FCFLAGS+.
+
 * +FOO_MESON_EXTRA_BINARIES+, to specify a space-separated list of programs
   to add to the `[binaries]` section of the meson `cross-compilation.conf`
   configuration file. The format is `program-name='/path/to/program'`, with
diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
index 5f7eed9edf..f1fb69c240 100644
--- a/package/pkg-meson.mk
+++ b/package/pkg-meson.mk
@@ -113,6 +113,13 @@ PKG_MESON_HOST_OPTS = \
 	--wrap-mode=nodownload \
 	-Dstrip=true
 
+define PKG_MESON_SET_TARGET_FLAGS
+$(1)_CFLAGS ?= $$(TARGET_CFLAGS)
+$(1)_LDFLAGS ?= $$(TARGET_LDFLAGS)
+$(1)_CXXFLAGS ?= $$(TARGET_CXXFLAGS)
+$(1)_FCFLAGS ?= $$(TARGET_FCFLAGS)
+endef
+
 # Generates sed patterns for patching the cross-compilation.conf template,
 # since Flags might contain commas the arguments are passed indirectly by
 # variable name (stripped to deal with whitespaces).
@@ -138,6 +145,14 @@ define PKG_MESON_CROSSCONFIG_SED
         $(TOPDIR)/support/misc/cross-compilation.conf.in
 endef
 
+define PKG_MESON_GENERATE_CROSS_FILE
+	mkdir -p $($(PKG)_SRCDIR)/buildroot-build
+	sed -e "/^\[binaries\]$$/s:$$:$(foreach x,$($(PKG)_MESON_EXTRA_BINARIES),\n$(x)):" \
+	    -e "/^\[properties\]$$/s:$$:$(foreach x,$($(PKG)_MESON_EXTRA_PROPERTIES),\n$(x)):" \
+	    $(call PKG_MESON_CROSSCONFIG_SED,$(PKG)_CFLAGS,$(PKG)_CXXFLAGS,$(PKG)_LDFLAGS,$(PKG)_FCFLAGS) \
+	    > $($(PKG)_SRCDIR)/buildroot-build/cross-compilation.conf
+endef
+
 ################################################################################
 # inner-meson-package -- defines how the configuration, compilation and
 # installation of a Meson package should be done, implements a few hooks to
@@ -162,20 +177,14 @@ define inner-meson-package
 ifndef $(2)_CONFIGURE_CMDS
 ifeq ($(4),target)
 
-$(2)_CFLAGS ?= $$(TARGET_CFLAGS)
-$(2)_LDFLAGS ?= $$(TARGET_LDFLAGS)
-$(2)_CXXFLAGS ?= $$(TARGET_CXXFLAGS)
+$(call PKG_MESON_SET_TARGET_FLAGS,$(2))
 
 # Configure package for target
 #
 #
 define $(2)_CONFIGURE_CMDS
 	rm -rf $$($$(PKG)_SRCDIR)/buildroot-build
-	mkdir -p $$($$(PKG)_SRCDIR)/buildroot-build
-	sed -e "/^\[binaries\]$$$$/s:$$$$:$$(foreach x,$$($(2)_MESON_EXTRA_BINARIES),\n$$(x)):" \
-	    -e "/^\[properties\]$$$$/s:$$$$:$$(foreach x,$$($(2)_MESON_EXTRA_PROPERTIES),\n$$(x)):" \
-	    $$(call PKG_MESON_CROSSCONFIG_SED,$(2)_CFLAGS,$(2)_CXXFLAGS,$(2)_LDFLAGS,$(2)_FCFLAGS) \
-	    > $$($$(PKG)_SRCDIR)/buildroot-build/cross-compilation.conf
+	$$(PKG_MESON_GENERATE_CROSS_FILE)
 	PATH=$$(BR_PATH) \
 	CC_FOR_BUILD="$$(HOSTCC)" \
 	CXX_FOR_BUILD="$$(HOSTCXX)" \
-- 
2.53.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 3/5] package/pkg-python: add meson setup type
  2026-10-05 22:38 [Buildroot] [PATCH 1/5] package/pkg-meson: share Meson setup options James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 2/5] package/pkg-meson: share cross-file generation James Hilliard
@ 2026-10-05 22:38 ` James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 4/5] package/python-numpy: bump to version 2.5.3 James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 5/5] package/python-scipy: bump to version 1.18.1 James Hilliard
  3 siblings, 0 replies; 5+ messages in thread
From: James Hilliard @ 2026-10-05 22:38 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Xukai Wang, Julien Olivain, Gwenhael Goavec-Merou,
	Guillaume William Brs, James Hilliard, Woodrow Douglass,
	Jagan Teki, Thomas Petazzoni, Romain Naour, Fabrice Fontaine

Use the Meson infrastructure's setup options, compiler flag defaults
and cross-file generator when building Python wheels with meson-python.
Install the resulting wheels through the existing Python infrastructure.

Pass package CONF_OPTS as individual setup-args settings while
preserving quoted and empty values. Retain the Meson build directory
for incremental builds and diagnostics.

Document the new setup type.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 docs/manual/adding-packages-python.adoc | 31 +++++++++++---
 package/pkg-python.mk                   | 54 ++++++++++++++++++++++++-
 2 files changed, 77 insertions(+), 8 deletions(-)

diff --git a/docs/manual/adding-packages-python.adoc b/docs/manual/adding-packages-python.adoc
index d6bae299a0..2dc773545c 100644
--- a/docs/manual/adding-packages-python.adoc
+++ b/docs/manual/adding-packages-python.adoc
@@ -4,7 +4,7 @@
 === Infrastructure for Python packages
 
 This infrastructure applies to Python packages that use the standard
-Python setuptools, pep517, flit or maturin mechanisms as their build
+Python setuptools, pep517, flit, maturin or meson mechanisms as their build
 system, generally recognizable by the usage of a +setup.py+ script or
 +pyproject.toml+ file.
 
@@ -51,9 +51,9 @@ On line 13, we declare our dependencies, so that they are built
 before the build process of our package starts.
 
 On line 14, we declare the specific Python build system being used. In
-this case the +setuptools+ Python build system is used. The seven
+this case the +setuptools+ Python build system is used. The eight
 supported ones are +flit+, +hatch+, +pep517+, +poetry+, +setuptools+,
-+setuptools-rust+ and +maturin+.
++setuptools-rust+, +maturin+ and +meson+.
 
 Finally, on line 16, we invoke the +python-package+ macro that
 generates all the Makefile rules that actually allow the package to be
@@ -96,14 +96,16 @@ Note that:
 One variable specific to the Python infrastructure is mandatory:
 
 * +PYTHON_FOO_SETUP_TYPE+, to define which Python build system is used
-  by the package. The seven supported values are +flit+, +hatch+,
-  +pep517+, +poetry+, +setuptools+, +setuptools-rust+ and +maturin+.
+  by the package. The eight supported values are +flit+, +hatch+,
+  +pep517+, +poetry+, +setuptools+, +setuptools-rust+, +maturin+
+  and +meson+.
   If you don't know which one is used in your package, look at the
   +setup.py+ or +pyproject.toml+ file in your package source code,
   and see whether it imports things from the +flit+ module or the
   +setuptools+ module. If the package is using a +pyproject.toml+
   file without any build-system requires and with a local in-tree
-  backend-path one should use +pep517+.
+  backend-path one should use +pep517+. Packages using the +mesonpy+
+  build backend should use +meson+.
 
 A few additional variables, specific to the Python infrastructure, can
 optionally be defined, depending on the package's needs. Many of them
@@ -132,6 +134,23 @@ therefore only use a few of them, or none.
   build backend use the +--config-setting=+ (+-C+) flag of the +build+
   module.
 
+* +PYTHON_FOO_CONF_OPTS+, for +meson+ packages, to specify
+  additional options to pass to +meson setup+. These options follow the
+  default options shared with the xref:meson-package-reference[Meson infrastructure].
+  Quote arguments containing spaces as for +FOO_CONF_OPTS+ in that
+  infrastructure. The host variant uses +HOST_PYTHON_FOO_CONF_OPTS+.
+
+* +PYTHON_FOO_CFLAGS+, +PYTHON_FOO_CXXFLAGS+, +PYTHON_FOO_FCFLAGS+ and
+  +PYTHON_FOO_LDFLAGS+, for +meson+ target packages, to override
+  the compiler and linker flags in the generated Meson cross file.
+  They default to +TARGET_CFLAGS+, +TARGET_CXXFLAGS+, +TARGET_FCFLAGS+
+  and +TARGET_LDFLAGS+, respectively.
+
+* +PYTHON_FOO_MESON_EXTRA_BINARIES+ and
+  +PYTHON_FOO_MESON_EXTRA_PROPERTIES+, for +meson+ target
+  packages, to add entries to the Meson cross file. They have the same
+  format as the corresponding variables in the Meson infrastructure.
+
 * +PYTHON_FOO_INSTALL_TARGET_OPTS+, +PYTHON_FOO_INSTALL_STAGING_OPTS+,
   +HOST_PYTHON_FOO_INSTALL_OPTS+ to specify additional options to pass
   to the Python +setup.py+ script (for setuptools packages) or
diff --git a/package/pkg-python.mk b/package/pkg-python.mk
index 32ace4aac1..f040f53bdb 100644
--- a/package/pkg-python.mk
+++ b/package/pkg-python.mk
@@ -285,6 +285,27 @@ HOST_PKG_PYTHON_POETRY_BUILD_CMD = \
 HOST_PKG_PYTHON_POETRY_INSTALL_CMD = \
 	$(HOST_PKG_PYTHON_PEP517_INSTALL_CMD)
 
+# Target meson packages
+PKG_PYTHON_MESON_ENV = \
+	$(PKG_PYTHON_PEP517_ENV)
+
+PKG_PYTHON_MESON_INSTALL_TARGET_CMD = \
+	$(PKG_PYTHON_PEP517_INSTALL_TARGET_CMD)
+
+PKG_PYTHON_MESON_INSTALL_STAGING_CMD = \
+	$(PKG_PYTHON_PEP517_INSTALL_STAGING_CMD)
+
+PKG_PYTHON_MESON_DEPENDENCIES = \
+	$(PKG_PYTHON_PEP517_DEPENDENCIES) \
+	host-python-meson-python
+
+# Host meson packages
+HOST_PKG_PYTHON_MESON_ENV = \
+	$(HOST_PKG_PYTHON_PEP517_ENV)
+
+HOST_PKG_PYTHON_MESON_INSTALL_CMD = \
+	$(HOST_PKG_PYTHON_PEP517_INSTALL_CMD)
+
 ################################################################################
 # inner-python-package -- defines how the configuration, compilation
 # and installation of a Python package should be done, implements a
@@ -311,8 +332,8 @@ endif
 
 $(2)_SETUP_TYPE_UPPER = $$(call UPPERCASE,$$($(2)_SETUP_TYPE))
 
-ifneq ($$(filter-out setuptools setuptools-rust pep517 flit flit-bootstrap hatch maturin poetry,$$($(2)_SETUP_TYPE)),)
-$$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'maturin', 'setuptools', 'setuptools-rust', 'pep517', 'flit', 'hatch' or 'poetry'.")
+ifneq ($$(filter-out setuptools setuptools-rust pep517 flit flit-bootstrap hatch maturin poetry meson,$$($(2)_SETUP_TYPE)),)
+$$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'maturin', 'setuptools', 'setuptools-rust', 'pep517', 'flit', 'hatch', 'poetry' or 'meson'.")
 endif
 ifeq ($(4)-$$($(2)_SETUP_TYPE),target-flit-bootstrap)
 $$(error flit-bootstrap setup type only supported for host packages)
@@ -374,6 +395,35 @@ $(2)_DOWNLOAD_POST_PROCESS = cargo
 $(2)_DOWNLOAD_DEPENDENCIES = host-rustc
 endif # SETUP_TYPE
 
+ifeq ($$($(2)_SETUP_TYPE),meson)
+ifeq ($(4),target)
+$(call PKG_MESON_SET_TARGET_FLAGS,$(2))
+
+ifndef $(2)_CONFIGURE_CMDS
+define $(2)_CONFIGURE_CMDS
+	$$(PKG_MESON_GENERATE_CROSS_FILE)
+endef
+endif
+endif
+
+ifndef $(2)_BUILD_CMDS
+define $(2)_BUILD_CMDS
+	(cd $$($$(PKG)_BUILDDIR)/; \
+		set --; \
+		for arg in $$(PKG_MESON_$(call UPPERCASE,$(4))_OPTS) $$($$(PKG)_CONF_OPTS); do \
+			set -- "$$$$@" "-Csetup-args=$$$$arg"; \
+		done; \
+		$$($(if $(filter host,$(4)),HOST_)PKG_PYTHON_MESON_ENV) \
+		$$($$(PKG)_ENV) \
+		$$(HOST_DIR)/bin/python3 \
+		$$($(if $(filter host,$(4)),HOST_)PKG_PYTHON_PEP517_BUILD_CMD) \
+		-Cbuild-dir=$$($$(PKG)_SRCDIR)/buildroot-build \
+		$$(addprefix -Ccompile-args=,$$(NINJA_OPTS)) \
+		"$$$$@" $$($$(PKG)_BUILD_OPTS))
+endef
+endif
+endif
+
 ifeq ($(4),target)
 #
 # Build step. Only define it if not already defined by the package .mk
-- 
2.53.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 4/5] package/python-numpy: bump to version 2.5.3
  2026-10-05 22:38 [Buildroot] [PATCH 1/5] package/pkg-meson: share Meson setup options James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 2/5] package/pkg-meson: share cross-file generation James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 3/5] package/pkg-python: add meson setup type James Hilliard
@ 2026-10-05 22:38 ` James Hilliard
  2026-10-05 22:38 ` [Buildroot] [PATCH 5/5] package/python-scipy: bump to version 1.18.1 James Hilliard
  3 siblings, 0 replies; 5+ messages in thread
From: James Hilliard @ 2026-10-05 22:38 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Xukai Wang, Julien Olivain, Gwenhael Goavec-Merou,
	Guillaume William Brs, James Hilliard, Woodrow Douglass,
	Jagan Teki, Thomas Petazzoni, Romain Naour, Fabrice Fontaine

Use the meson setup type for both host and target builds. Let
meson-python invoke the vendored Meson and install the generated wheels.
Use the none value to disable BLAS and LAPACK when unavailable.

Raise the GCC requirement to version 10 and propagate the target and
host compiler requirements to dependent packages.

Use the standalone Dragon4 license file and add the bundled 0BSD and
CC0-1.0 licenses to match the upstream licensing metadata:
https://github.com/numpy/numpy/commit/0f39fd27ff149b25f74fc58d589c92b4fd881226

Install numpy.pc in the standard pkg-config directory for host and
staging builds. Keep its prefix relative so dependent packages can find
NumPy through pkg-config after per-package copying or SDK relocation.

Drop the obsolete npymath.ini staging fixup.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 package/gnuradio/Config.in             |  8 +--
 package/kismet/Config.in               |  6 +--
 package/opencv4/Config.in              |  6 +--
 package/piglit/Config.in               | 10 ++--
 package/python-gymnasium/Config.in     |  6 +--
 package/python-matplotlib/Config.in    | 10 ++--
 package/python-ml-dtypes/Config.in     |  8 +--
 package/python-numpy/Config.in         |  6 +--
 package/python-numpy/python-numpy.hash |  8 +--
 package/python-numpy/python-numpy.mk   | 70 ++++++++++++--------------
 package/python-scipy/Config.in         | 10 ++--
 package/python-zlmdb/Config.in         |  6 +--
 package/uhd/Config.in                  | 10 ++--
 13 files changed, 80 insertions(+), 84 deletions(-)

diff --git a/package/gnuradio/Config.in b/package/gnuradio/Config.in
index 0e8dc66dc4..cc0d4bed19 100644
--- a/package/gnuradio/Config.in
+++ b/package/gnuradio/Config.in
@@ -79,8 +79,8 @@ config BR2_PACKAGE_GNURADIO_PYTHON
 	depends on BR2_PACKAGE_PYTHON3
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_HOST_GCC_AT_LEAST_9 # host-python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
+	depends on BR2_HOST_GCC_AT_LEAST_10 # host-python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
 	select BR2_PACKAGE_BOOST_PYTHON
 	select BR2_PACKAGE_PYTHON_NUMPY # runtime
 	select BR2_PACKAGE_PYTHON_PYBIND
@@ -88,10 +88,10 @@ config BR2_PACKAGE_GNURADIO_PYTHON
 	help
 	  Enable python component
 
-comment "python support needs a glibc or musl toolchain w/ gcc >= 9, host gcc >= 9"
+comment "python support needs a glibc or musl toolchain w/ gcc >= 10, host gcc >= 10"
 	depends on BR2_PACKAGE_PYTHON3
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
-	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_9 || !BR2_HOST_GCC_AT_LEAST_9 || \
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_10 || !BR2_HOST_GCC_AT_LEAST_10 || \
 		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
 
 config BR2_PACKAGE_GNURADIO_SOAPY
diff --git a/package/kismet/Config.in b/package/kismet/Config.in
index 65c17baeaf..3f6982cc41 100644
--- a/package/kismet/Config.in
+++ b/package/kismet/Config.in
@@ -35,7 +35,7 @@ config BR2_PACKAGE_KISMET_PYTHON_TOOLS
 	bool "Install python tools"
 	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # protobuf
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
 	depends on BR2_PACKAGE_PYTHON3
 	depends on !BR2_STATIC_LIBS # protobuf
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
@@ -52,12 +52,12 @@ comment "python tools needs python3"
 	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 
-comment "python tools needs a glibc or musl toolchain w/ dynamic library, gcc >= 8"
+comment "python tools needs a glibc or musl toolchain w/ dynamic library, gcc >= 10"
 	depends on BR2_STATIC_LIBS
 	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_8
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10
 
 config BR2_PACKAGE_KISMET_SERVER
 	bool "Install server"
diff --git a/package/opencv4/Config.in b/package/opencv4/Config.in
index 10b2c54b70..3e3f2597c8 100644
--- a/package/opencv4/Config.in
+++ b/package/opencv4/Config.in
@@ -174,16 +174,16 @@ config BR2_PACKAGE_OPENCV4_LIB_PYTHON
 	depends on BR2_PACKAGE_PYTHON3
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
 	select BR2_PACKAGE_PYTHON_NUMPY
 	help
 	  Include opencv_python module into the OpenCV build.  No
 	  python example is installed.
 
-comment "python support needs a glibc or musl toolchain w/ gcc >= 9"
+comment "python support needs a glibc or musl toolchain w/ gcc >= 10"
 	depends on BR2_PACKAGE_PYTHON3
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
-	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_9 ||\
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_10 ||\
 		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
 
 config BR2_PACKAGE_OPENCV4_LIB_SHAPE
diff --git a/package/piglit/Config.in b/package/piglit/Config.in
index 48b7641909..a3dbd49efd 100644
--- a/package/piglit/Config.in
+++ b/package/piglit/Config.in
@@ -8,8 +8,8 @@ config BR2_PACKAGE_PIGLIT
 		BR2_PACKAGE_WAFFLE_SUPPORTS_GBM
 	depends on BR2_INSTALL_LIBSTDCPP # mesa3d-demos, python-numpy
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
-	depends on BR2_HOST_GCC_AT_LEAST_9 # host-python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
+	depends on BR2_HOST_GCC_AT_LEAST_10 # host-python-numpy
 	select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_HAS_LIBGL
 	select BR2_PACKAGE_LIBPNG
 	select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_WAYLAND
@@ -34,8 +34,8 @@ config BR2_PACKAGE_PIGLIT
 
 	  https://piglit.freedesktop.org
 
-comment "piglit needs a glibc or musl toolchain w/ C++, gcc >= 9, host gcc >= 9"
+comment "piglit needs a glibc or musl toolchain w/ C++, gcc >= 10, host gcc >= 10"
 	depends on !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
-		!BR2_HOST_GCC_AT_LEAST_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
+		!BR2_HOST_GCC_AT_LEAST_10 || \
 		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
diff --git a/package/python-gymnasium/Config.in b/package/python-gymnasium/Config.in
index 3fc9df5a1c..155d73c3a5 100644
--- a/package/python-gymnasium/Config.in
+++ b/package/python-gymnasium/Config.in
@@ -3,7 +3,7 @@ config BR2_PACKAGE_PYTHON_GYMNASIUM
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS # python-numpy
 	depends on BR2_INSTALL_LIBSTDCPP # python-numpy
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
 	depends on BR2_HOST_GCC_AT_LEAST_9  # host-python-numpy
 	select BR2_PACKAGE_PYTHON_CLOUDPICKLE # runtime
 	select BR2_PACKAGE_PYTHON_FARAMA_NOTIFICATIONS # runtime
@@ -15,8 +15,8 @@ config BR2_PACKAGE_PYTHON_GYMNASIUM
 
 	  https://gymnasium.farama.org
 
-comment "python-gymnasium needs a glibc or musl toolchain w/ C++, gcc >= 9"
+comment "python-gymnasium needs a glibc or musl toolchain w/ C++, gcc >= 10"
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
 		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
diff --git a/package/python-matplotlib/Config.in b/package/python-matplotlib/Config.in
index 13894004aa..0e9e14ddbe 100644
--- a/package/python-matplotlib/Config.in
+++ b/package/python-matplotlib/Config.in
@@ -3,8 +3,8 @@ config BR2_PACKAGE_PYTHON_MATPLOTLIB
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
-	depends on BR2_HOST_GCC_AT_LEAST_9 # host-python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
+	depends on BR2_HOST_GCC_AT_LEAST_10 # host-python-numpy
 	select BR2_PACKAGE_FREETYPE # runtime
 	select BR2_PACKAGE_LIBPNG # runtime
 	select BR2_PACKAGE_PYTHON_CERTIFI # runtime
@@ -42,7 +42,7 @@ config BR2_PACKAGE_PYTHON_MATPLOTLIB_QT
 
 endif
 
-comment "python-matplotlib needs a glibc or musl toolchain w/ C++, gcc >= 9, host gcc >= 9"
+comment "python-matplotlib needs a glibc or musl toolchain w/ C++, gcc >= 10, host gcc >= 10"
 	depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || \
-		!BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_9 || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9
+		!BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_10 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10
diff --git a/package/python-ml-dtypes/Config.in b/package/python-ml-dtypes/Config.in
index a8b351d2e3..c5bd70fb2c 100644
--- a/package/python-ml-dtypes/Config.in
+++ b/package/python-ml-dtypes/Config.in
@@ -3,8 +3,8 @@ config BR2_PACKAGE_PYTHON_ML_DTYPES
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on BR2_INSTALL_LIBSTDCPP # python-numpy
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
-	depends on BR2_HOST_GCC_AT_LEAST_9 # host-python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
+	depends on BR2_HOST_GCC_AT_LEAST_10 # host-python-numpy
 	select BR2_PACKAGE_PYTHON_NUMPY # runtime
 	help
 	  ml_dtypes is a stand-alone implementation of several NumPy
@@ -12,8 +12,8 @@ config BR2_PACKAGE_PYTHON_ML_DTYPES
 
 	  https://github.com/jax-ml/ml_dtypes
 
-comment "python-ml-dtypes needs a glibc or musl toolchain w/ C++, gcc >= 9"
+comment "python-ml-dtypes needs a glibc or musl toolchain w/ C++, gcc >= 10"
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
 		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
diff --git a/package/python-numpy/Config.in b/package/python-numpy/Config.in
index f8c71274cd..51e22b015d 100644
--- a/package/python-numpy/Config.in
+++ b/package/python-numpy/Config.in
@@ -26,7 +26,7 @@ config BR2_PACKAGE_PYTHON_NUMPY
 	depends on BR2_INSTALL_LIBSTDCPP
 	# python-numpy needs fenv.h which is not provided by uclibc
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10
 	help
 	  NumPy is the fundamental package for scientific computing
 	  with Python.
@@ -36,8 +36,8 @@ config BR2_PACKAGE_PYTHON_NUMPY
 
 	  http://www.numpy.org/
 
-comment "python-numpy needs a glibc or musl toolchain w/ C++, gcc >= 9"
+comment "python-numpy needs a glibc or musl toolchain w/ C++, gcc >= 10"
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
 		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
diff --git a/package/python-numpy/python-numpy.hash b/package/python-numpy/python-numpy.hash
index 6dca37294a..5b60e82ecc 100644
--- a/package/python-numpy/python-numpy.hash
+++ b/package/python-numpy/python-numpy.hash
@@ -1,9 +1,11 @@
 # md5, sha256 from https://pypi.org/pypi/numpy/json
-md5  828b6c6df0b6f89b5cf799314d4ee2b6  numpy-2.4.0.tar.gz
-sha256  6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934  numpy-2.4.0.tar.gz
+md5  76f5b588f47e6d62fb066b69787b7796  numpy-2.5.3.tar.gz
+sha256  df2d5874ff183595a4ba404edd04f6bd9b5505c1d7708573f6a6c17489a67563  numpy-2.5.3.tar.gz
 # License files, locally calculated
 sha256  1be1df33863f97a7bc1c4d67980bd6c69c9a6fef0a5ee76e6ad6cb91e56e8491  LICENSE.txt
 sha256  743b0f4a0087fe3607167113fffab6f2ca069c8da321763697ab5d0d8411634a  numpy/_build_utils/tempita/LICENSE.txt
-sha256  e09cfef237f1c47fec6c11926e23ed2222404d1e4357b5d65e65a2daf9d83949  numpy/_core/src/multiarray/dragon4.c
+sha256  f7b14309e5f54e5022b26448eefd419988ada2aec01d3c1162d84a0ea8f21f2c  numpy/_core/src/multiarray/dragon4_LICENSE.txt
+sha256  3f2c1ffa76383a55ae0aac01c9737cd70050dff63e1f026694fbe9d662573c98  numpy/_core/src/common/pythoncapi-compat/COPYING
 sha256  fbc539f47d0cf83bc61378080fb873d5c14630126cacbfe754035c3926daa5ec  numpy/_core/include/numpy/libdivide/LICENSE.txt
 sha256  a14cc25e10d40a3aa705b7de2fb764a6535d8ee9b2db4e1724900585457dfd55  numpy/linalg/lapack_lite/LICENSE.txt
+sha256  268b0ca06759d31ea3ca68dd35f20e877916e927b1c2a835e4592a3c4354b1f9  numpy/random/src/splitmix64/LICENSE.md
diff --git a/package/python-numpy/python-numpy.mk b/package/python-numpy/python-numpy.mk
index 6b052569fe..ad0d108860 100644
--- a/package/python-numpy/python-numpy.mk
+++ b/package/python-numpy/python-numpy.mk
@@ -4,41 +4,37 @@
 #
 ################################################################################
 
-PYTHON_NUMPY_VERSION = 2.4.0
+PYTHON_NUMPY_VERSION = 2.5.3
 PYTHON_NUMPY_SOURCE = numpy-$(PYTHON_NUMPY_VERSION).tar.gz
-PYTHON_NUMPY_SITE = https://files.pythonhosted.org/packages/a4/7a/6a3d14e205d292b738db449d0de649b373a59edb0d0b4493821d0a3e8718
-PYTHON_NUMPY_LICENSE = BSD-3-Clause, MIT, Zlib
+PYTHON_NUMPY_SITE = https://files.pythonhosted.org/packages/13/01/11703282db468b85f6f7b8c7f22d058de5970d5c7e60a3a8aaa313c3de36
+PYTHON_NUMPY_SETUP_TYPE = meson
+PYTHON_NUMPY_LICENSE = BSD-3-Clause, MIT, Zlib, 0BSD, CC0-1.0
 PYTHON_NUMPY_LICENSE_FILES = \
 	LICENSE.txt \
 	numpy/_build_utils/tempita/LICENSE.txt \
-	numpy/_core/src/multiarray/dragon4.c \
+	numpy/_core/src/multiarray/dragon4_LICENSE.txt \
+	numpy/_core/src/common/pythoncapi-compat/COPYING \
 	numpy/_core/include/numpy/libdivide/LICENSE.txt \
-	numpy/linalg/lapack_lite/LICENSE.txt
+	numpy/linalg/lapack_lite/LICENSE.txt \
+	numpy/random/src/splitmix64/LICENSE.md
 PYTHON_NUMPY_CPE_ID_VENDOR = numpy
 PYTHON_NUMPY_CPE_ID_PRODUCT = numpy
 
-PYTHON_NUMPY_DEPENDENCIES = host-python-cython python3
-HOST_PYTHON_NUMPY_DEPENDENCIES = host-python-cython host-python-meson-python
-
-PYTHON_NUMPY_CONF_ENV += \
-	_PYTHON_SYSCONFIGDATA_NAME=$(PKG_PYTHON_SYSCONFIGDATA_NAME) \
-	PYTHONPATH="$(@D)/vendored-meson/meson:$(PYTHON3_PATH)"
-
-PYTHON_NUMPY_NINJA_ENV += \
-	PYTHONPATH="$(@D)/vendored-meson/meson:$(PYTHON3_PATH)"
+PYTHON_NUMPY_DEPENDENCIES = host-python-cython
+HOST_PYTHON_NUMPY_DEPENDENCIES = host-python-cython
 
 ifeq ($(BR2_PACKAGE_LAPACK),y)
 PYTHON_NUMPY_DEPENDENCIES += lapack
 PYTHON_NUMPY_CONF_OPTS += -Dlapack=lapack
 else
-PYTHON_NUMPY_CONF_OPTS += -Dlapack=""
+PYTHON_NUMPY_CONF_OPTS += -Dlapack=none
 endif
 
 ifeq ($(BR2_PACKAGE_OPENBLAS),y)
 PYTHON_NUMPY_DEPENDENCIES += openblas
 PYTHON_NUMPY_CONF_OPTS += -Dblas=openblas
 else
-PYTHON_NUMPY_CONF_OPTS += -Dblas=""
+PYTHON_NUMPY_CONF_OPTS += -Dblas=none
 endif
 
 # Generated by running this test program under QEMU:
@@ -86,33 +82,31 @@ endif
 PYTHON_NUMPY_MESON_EXTRA_PROPERTIES = \
 	longdouble_format='$(PYTHON_NUMPY_LONGDOUBLE_FORMAT)'
 
-HOST_PYTHON_NUMPY_SETUP_TYPE = setuptools
-
-HOST_PYTHON_NUMPY_CONF_ENV += \
-	PYTHONPATH="$(@D)/vendored-meson/meson:$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)"
-
-HOST_PYTHON_NUMPY_NINJA_ENV += \
-	PYTHONPATH="$(@D)/vendored-meson/meson:$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)"
-
 # Rather than add a host-blas or host-lapack dependencies, just use unoptimized,
 # in-tree code.
-HOST_PYTHON_NUMPY_CONF_OPTS = -Dblas="" -Dlapack=""
-
-# Fixup the npymath.ini prefix path with actual target staging area where
-# numpy core was built. Without this, target builds using numpy distutils
-# extensions like python-scipy, python-numba cannot find -lnpymath since
-# it uses host libraries (like libnpymath.a).
-# So, the numpy distutils extension packages would explicitly link this
-# config path for their package environment.
-define PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
-	$(SED) '/^pkgdir=/d;/^prefix=/i pkgdir=$(PYTHON3_PATH)/site-packages/numpy/core' \
-		$(PYTHON3_PATH)/site-packages/numpy/_core/lib/npy-pkg-config/npymath.ini
-endef
-PYTHON_NUMPY_POST_INSTALL_STAGING_HOOKS += PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
+HOST_PYTHON_NUMPY_CONF_OPTS = -Dblas=none -Dlapack=none
 
 # Some package may include few headers from NumPy, so let's install it
 # in the staging area.
 PYTHON_NUMPY_INSTALL_STAGING = YES
 
-$(eval $(meson-package))
+define PYTHON_NUMPY_INSTALL_PKGCONFIG
+	$(INSTALL) -D -m 0644 \
+		$(1)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/_core/lib/pkgconfig/numpy.pc \
+		$(1)/lib/pkgconfig/numpy.pc
+	$(SED) 's:^prefix=.*:prefix=$${pcfiledir}/../python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/_core:' \
+		$(1)/lib/pkgconfig/numpy.pc
+endef
+
+define PYTHON_NUMPY_INSTALL_STAGING_PKGCONFIG
+	$(call PYTHON_NUMPY_INSTALL_PKGCONFIG,$(STAGING_DIR)/usr)
+endef
+PYTHON_NUMPY_POST_INSTALL_STAGING_HOOKS += PYTHON_NUMPY_INSTALL_STAGING_PKGCONFIG
+
+define HOST_PYTHON_NUMPY_INSTALL_PKGCONFIG
+	$(call PYTHON_NUMPY_INSTALL_PKGCONFIG,$(HOST_DIR))
+endef
+HOST_PYTHON_NUMPY_POST_INSTALL_HOOKS += HOST_PYTHON_NUMPY_INSTALL_PKGCONFIG
+
+$(eval $(python-package))
 $(eval $(host-python-package))
diff --git a/package/python-scipy/Config.in b/package/python-scipy/Config.in
index aa7eefd44d..691a63dc2c 100644
--- a/package/python-scipy/Config.in
+++ b/package/python-scipy/Config.in
@@ -4,8 +4,8 @@ config BR2_PACKAGE_PYTHON_SCIPY
 	depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS # lapack
 	depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS # openblas
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
-	depends on BR2_HOST_GCC_AT_LEAST_9 # host-python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
+	depends on BR2_HOST_GCC_AT_LEAST_10 # host-python-numpy
 	depends on BR2_TOOLCHAIN_HAS_FORTRAN # lapack
 	depends on BR2_INSTALL_LIBSTDCPP
 	select BR2_PACKAGE_LAPACK
@@ -21,11 +21,11 @@ config BR2_PACKAGE_PYTHON_SCIPY
 
 	  https://www.scipy.org/scipylib/
 
-comment "python-scipy needs glibc or musl toolchain w/ fortran, c++, gcc >= 9, host gcc >= 9"
+comment "python-scipy needs glibc or musl toolchain w/ fortran, c++, gcc >= 10, host gcc >= 10"
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
 	depends on !BR2_TOOLCHAIN_HAS_FORTRAN || \
-		!BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_9 || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
+		!BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_10 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
 		(!BR2_TOOLCHAIN_USES_GLIBC && !BR2_TOOLCHAIN_USES_MUSL)
diff --git a/package/python-zlmdb/Config.in b/package/python-zlmdb/Config.in
index 884cfff182..c3e01b825c 100644
--- a/package/python-zlmdb/Config.in
+++ b/package/python-zlmdb/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_PYTHON_ZLMDB
 	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-cbor2
 	depends on BR2_INSTALL_LIBSTDCPP # python-numpy
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
 	select BR2_PACKAGE_PYTHON_CBOR2 # runtime
 	select BR2_PACKAGE_PYTHON_CFFI # runtime
 	select BR2_PACKAGE_PYTHON_CLICK # runtime
@@ -20,9 +20,9 @@ config BR2_PACKAGE_PYTHON_ZLMDB
 
 	  https://github.com/crossbario/zlmdb
 
-comment "python-zlmdb needs a glibc or musl toolchain w/ C++, gcc >= 9"
+comment "python-zlmdb needs a glibc or musl toolchain w/ C++, gcc >= 10"
 	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
 		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
diff --git a/package/uhd/Config.in b/package/uhd/Config.in
index 58bf91c1df..4cee21f413 100644
--- a/package/uhd/Config.in
+++ b/package/uhd/Config.in
@@ -86,11 +86,11 @@ config BR2_PACKAGE_UHD_OCTOCLOCK
 	help
 	  enable OctoClock support
 
-comment "uhd python API needs python3 and a glibc or musl toolchain w/ gcc >= 9, host gcc >= 9"
+comment "uhd python API needs python3 and a glibc or musl toolchain w/ gcc >= 10, host gcc >= 10"
 	depends on !BR2_PACKAGE_PYTHON3
 	depends on !BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
-	depends on !BR2_HOST_GCC_AT_LEAST_9 || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
+	depends on !BR2_HOST_GCC_AT_LEAST_10 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
 		!(BR2_TOOLCHAIN_USES_GLIBC && BR2_TOOLCHAIN_USES_MUSL) # python-numpy
 
 config BR2_PACKAGE_UHD_PYTHON
@@ -98,8 +98,8 @@ config BR2_PACKAGE_UHD_PYTHON
 	depends on BR2_PACKAGE_PYTHON3
 	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
-	depends on BR2_HOST_GCC_AT_LEAST_9 # host-python-numpy
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # python-numpy
+	depends on BR2_HOST_GCC_AT_LEAST_10 # host-python-numpy
 	select BR2_PACKAGE_PYTHON_NUMPY
 	select BR2_PACKAGE_PYTHON_REQUESTS
 	help
-- 
2.53.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 5/5] package/python-scipy: bump to version 1.18.1
  2026-10-05 22:38 [Buildroot] [PATCH 1/5] package/pkg-meson: share Meson setup options James Hilliard
                   ` (2 preceding siblings ...)
  2026-10-05 22:38 ` [Buildroot] [PATCH 4/5] package/python-numpy: bump to version 2.5.3 James Hilliard
@ 2026-10-05 22:38 ` James Hilliard
  3 siblings, 0 replies; 5+ messages in thread
From: James Hilliard @ 2026-10-05 22:38 UTC (permalink / raw)
  To: buildroot
  Cc: Eric Le Bihan, Xukai Wang, Julien Olivain, Gwenhael Goavec-Merou,
	Guillaume William Brs, James Hilliard, Woodrow Douglass,
	Jagan Teki, Thomas Petazzoni, Romain Naour, Fabrice Fontaine

Switch to the meson setup type, retaining the target NumPy include
path in the shared cross-file generation. Skip dependency checks to
allow the newer Cython and meson-python versions in Buildroot.

Update the ARPACK license files after the replacement with Arnaud:
https://github.com/scipy/scipy/commit/8670c1479d77b9634dd790f044a9025259441812

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 package/python-scipy/python-scipy.hash |  7 ++++---
 package/python-scipy/python-scipy.mk   | 16 +++++++---------
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/package/python-scipy/python-scipy.hash b/package/python-scipy/python-scipy.hash
index 27a72904d2..07c40f2d72 100644
--- a/package/python-scipy/python-scipy.hash
+++ b/package/python-scipy/python-scipy.hash
@@ -1,10 +1,11 @@
 # md5, sha256 from https://pypi.org/pypi/scipy/json
-md5  d36aba61d4b01c50551efd38ca03752f  scipy-1.17.1.tar.gz
-sha256  95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0  scipy-1.17.1.tar.gz
+md5  e71b80d5afd37a5abf6e413f287315d3  scipy-1.18.1.tar.gz
+sha256  52c4b7422442aba924d03ad4019852b08a92e64ea187b933135687bfe2747307  scipy-1.18.1.tar.gz
 # Locally computed sha256 checksums
 sha256  221e59f5e910fd7f94e44f0dac77436a11338c285c6346232e4a850a50da0e94  LICENSE.txt
 sha256  606209a000716c5f66e33e180ce08434b96ed17db4975ab9723c6b5fbcc89609  scipy/ndimage/LICENSE.txt
 sha256  3df9207af2fdb861af0ae3b22026f163b9bcfab4e525dc4943afe2ffa3f77624  scipy/optimize/tnc/LICENSE
 sha256  f0cedf52503b2d42b83411a0a16e6fefac346dfad8fddc66f50050150123470c  scipy/sparse/linalg/_dsolve/SuperLU/License.txt
-sha256  0926566f9f406178d1214f8cc796e166b1213dd7c05e0c5b461a8b8ac9e50bbe  scipy/sparse/linalg/_eigen/arpack/ARPACK/COPYING
+sha256  f49da99252dee2c12dbd5c71762b0724063f4531de193fbcece550ad9a3b6354  scipy/sparse/linalg/_eigen/arpack/arnaud/LICENSE
+sha256  53c82c54b92d94ef8c2ffee82e12135c6c3fdf23c3949d7bf6315282b14d6b8b  scipy/sparse/linalg/_eigen/arpack/arnaud/ARPACK_LICENSE.txt
 sha256  106d55c931fd6a84822e5345d900273d059f1c27310d02567ccb313c5d18c55d  scipy/spatial/COPYING_QHULL.txt
diff --git a/package/python-scipy/python-scipy.mk b/package/python-scipy/python-scipy.mk
index 8c536df130..1b7496a2d1 100644
--- a/package/python-scipy/python-scipy.mk
+++ b/package/python-scipy/python-scipy.mk
@@ -4,9 +4,10 @@
 #
 ################################################################################
 
-PYTHON_SCIPY_VERSION = 1.17.1
+PYTHON_SCIPY_VERSION = 1.18.1
 PYTHON_SCIPY_SOURCE = scipy-$(PYTHON_SCIPY_VERSION).tar.gz
-PYTHON_SCIPY_SITE = https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc
+PYTHON_SCIPY_SITE = https://files.pythonhosted.org/packages/7e/74/66de6258867beb2ef08f35f9f2ac017a52cacd5081714d239ff1a442d458
+PYTHON_SCIPY_SETUP_TYPE = meson
 PYTHON_SCIPY_LICENSE = \
 	BSD-3-Clause, \
 	BSD-2-Clause, \
@@ -19,7 +20,8 @@ PYTHON_SCIPY_LICENSE_FILES = \
 	scipy/ndimage/LICENSE.txt \
 	scipy/optimize/tnc/LICENSE \
 	scipy/sparse/linalg/_dsolve/SuperLU/License.txt \
-	scipy/sparse/linalg/_eigen/arpack/ARPACK/COPYING \
+	scipy/sparse/linalg/_eigen/arpack/arnaud/LICENSE \
+	scipy/sparse/linalg/_eigen/arpack/arnaud/ARPACK_LICENSE.txt \
 	scipy/spatial/COPYING_QHULL.txt
 PYTHON_SCIPY_CPE_ID_VENDOR = scipy
 PYTHON_SCIPY_CPE_ID_PRODUCT = scipy
@@ -30,18 +32,14 @@ PYTHON_SCIPY_DEPENDENCIES += \
 	zlib \
 	lapack \
 	openblas \
-	python3 \
 	python-numpy \
 	python-pybind
 PYTHON_SCIPY_INSTALL_STAGING = YES
-
-PYTHON_SCIPY_CONF_ENV += \
-	_PYTHON_SYSCONFIGDATA_NAME=$(PKG_PYTHON_SYSCONFIGDATA_NAME) \
-	PYTHONPATH=$(PYTHON3_PATH)
+PYTHON_SCIPY_BUILD_OPTS = --skip-dependency-check
 
 PYTHON_SCIPY_CONF_OPTS = -Dblas=openblas -Dlapack=lapack
 
 PYTHON_SCIPY_MESON_EXTRA_PROPERTIES = \
 	numpy-include-dir='$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/_core/include'
 
-$(eval $(meson-package))
+$(eval $(python-package))
-- 
2.53.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-10-05 22:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-05 22:38 [Buildroot] [PATCH 1/5] package/pkg-meson: share Meson setup options James Hilliard
2026-10-05 22:38 ` [Buildroot] [PATCH 2/5] package/pkg-meson: share cross-file generation James Hilliard
2026-10-05 22:38 ` [Buildroot] [PATCH 3/5] package/pkg-python: add meson setup type James Hilliard
2026-10-05 22:38 ` [Buildroot] [PATCH 4/5] package/python-numpy: bump to version 2.5.3 James Hilliard
2026-10-05 22:38 ` [Buildroot] [PATCH 5/5] package/python-scipy: bump to version 1.18.1 James Hilliard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.