mirror of https://github.com/openwrt/packages.git
numpy: bump to version 2.2.1
Dropped: 003-without-vendored-meson.patch 004-workaround-for-multiple-top-level-packages-discovered.patch This time, we really need to use meson to build numpy. And to make things more complicated, the 'vendored' meson package (that comes with numpy) must be used. This is because they have some special logic in there that's specific to numpy. With this change, we also need to keep a special/internal 'openwrt-cross.txt.in' file, because cross-compiling numpy also requires that a 'longdouble_format' property be added. More details about this: https://github.com/numpy/numpy/issues/23972 https://github.com/numpy/numpy/blob/maintenance/2.2.x/doc/source/building/cross_compilation.rst Removing quirk fix for x86_64 with detecting 'avx512f'. This should work with the new meson stuff. And finally, added a test.sh script. This should make sure that this package works fine during upgrades. Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>pull/25629/head
parent
dc273bfa44
commit
7b4ee2dabf
|
@ -6,11 +6,11 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=numpy
|
||||
PKG_VERSION:=2.1.3
|
||||
PKG_VERSION:=2.2.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=$(PKG_NAME)
|
||||
PKG_HASH:=aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761
|
||||
PKG_HASH:=45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918
|
||||
|
||||
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
|
||||
|
||||
|
@ -27,9 +27,43 @@ PKG_BUILD_DEPENDS:=python-cython/host pyproject-metadata/host
|
|||
PYTHON3_PKG_BUILD_VARS:= \
|
||||
$(if $(CONFIG_NUMPY_OPENBLAS_SUPPORT),,NPY_BLAS_ORDER= NPY_LAPACK_ORDER= )
|
||||
|
||||
MESON_USE_STAGING_PYTHON:=1
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
include $(INCLUDE_DIR)/meson.mk
|
||||
|
||||
MESON_ARGS+= \
|
||||
-Ddisable-optimization=true \
|
||||
-Dcpu-baseline=min
|
||||
|
||||
# Override 'Meson', to use numpy's vendored meson
|
||||
define Meson
|
||||
$(call Python3/Run,,$(PKG_BUILD_DIR)/vendored-meson/meson/meson.py $(1),$(2))
|
||||
endef
|
||||
|
||||
define Meson/CreateCrossFile
|
||||
$(STAGING_DIR_HOST)/bin/sed \
|
||||
-e "s|@CC@|$(foreach BIN,$(TARGET_CC),'$(BIN)',)|" \
|
||||
-e "s|@CXX@|$(foreach BIN,$(TARGET_CXX),'$(BIN)',)|" \
|
||||
-e "s|@LD@|$(foreach FLAG,$(TARGET_LINKER),'$(FLAG)',)|" \
|
||||
-e "s|@AR@|$(TARGET_AR)|" \
|
||||
-e "s|@STRIP@|$(TARGET_CROSS)strip|" \
|
||||
-e "s|@NM@|$(TARGET_NM)|" \
|
||||
-e "s|@PKGCONFIG@|$(PKG_CONFIG)|" \
|
||||
-e "s|@CMAKE@|$(STAGING_DIR_HOST)/bin/cmake|" \
|
||||
-e "s|@PYTHON@|$(PYTHON_BIN)|" \
|
||||
-e "s|@CFLAGS@|$(foreach FLAG,$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@CXXFLAGS@|$(foreach FLAG,$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@LDFLAGS@|$(foreach FLAG,$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@ARCH@|$(MESON_ARCH)|" \
|
||||
-e "s|@CPU@|$(MESON_CPU)|" \
|
||||
-e "s|@ENDIAN@|$(if $(CONFIG_BIG_ENDIAN),big,little)|" \
|
||||
< files/openwrt-cross.txt.in \
|
||||
> $(1)
|
||||
echo "longdouble_format = '$(if $(CONFIG_BIG_ENDIAN),IEEE_DOUBLE_BE,IEEE_DOUBLE_LE)'" >> $(1)
|
||||
endef
|
||||
|
||||
define Package/python3-numpy
|
||||
SUBMENU:=Python
|
||||
|
@ -54,12 +88,6 @@ config NUMPY_OPENBLAS_SUPPORT
|
|||
endmenu
|
||||
endef
|
||||
|
||||
ifeq ($(ARCH),x86_64)
|
||||
# FIXME: temporary fix for x86_64 with GCC 13 + musl;
|
||||
# numpy does not detect this compiler extension, so we just enable it
|
||||
TARGET_CFLAGS += -mavx512f
|
||||
endif
|
||||
|
||||
define Build/Prepare/numpy-sitecfg
|
||||
echo "[DEFAULT]" > $(PKG_BUILD_DIR)/site.cfg
|
||||
echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(PKG_BUILD_DIR)/site.cfg
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
[binaries]
|
||||
c = [@CC@]
|
||||
c_ld = [@LD@]
|
||||
cpp = [@CXX@]
|
||||
cpp_ld = [@LD@]
|
||||
ar = '@AR@'
|
||||
strip = '@STRIP@'
|
||||
nm = '@NM@'
|
||||
pkg-config = '@PKGCONFIG@'
|
||||
cmake = '@CMAKE@'
|
||||
python = '@PYTHON@'
|
||||
|
||||
[built-in options]
|
||||
c_args = [@CFLAGS@]
|
||||
c_link_args = [@LDFLAGS@]
|
||||
cpp_args = [@CXXFLAGS@]
|
||||
cpp_link_args = [@LDFLAGS@]
|
||||
prefix = '/usr'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = '@ARCH@'
|
||||
cpu = '@CPU@'
|
||||
endian = '@ENDIAN@'
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = true
|
|
@ -1,6 +1,6 @@
|
|||
--- a/numpy/distutils/system_info.py
|
||||
+++ b/numpy/distutils/system_info.py
|
||||
@@ -404,7 +404,7 @@ def get_standard_file(fname):
|
||||
@@ -403,7 +403,7 @@ def get_standard_file(fname):
|
||||
pass
|
||||
else:
|
||||
user_file = os.path.join(f, fname)
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -1,7 +1,7 @@
|
||||
[build-system]
|
||||
-build-backend = "mesonpy"
|
||||
+#build-backend = "mesonpy"
|
||||
requires = [
|
||||
- "meson-python>=0.15.0",
|
||||
+# "meson-python>=0.15.0",
|
||||
"Cython>=3.0.6", # keep in sync with version check in meson.build
|
||||
]
|
||||
|
||||
@@ -181,8 +181,8 @@ select = "*-win32"
|
||||
config-settings = "setup-args=--vsenv setup-args=-Dallow-noblas=true build-dir=build"
|
||||
repair-wheel-command = ""
|
||||
|
||||
-[tool.meson-python]
|
||||
-meson = 'vendored-meson/meson/meson.py'
|
||||
+#[tool.meson-python]
|
||||
+#meson = 'vendored-meson/meson/meson.py'
|
||||
|
||||
[tool.meson-python.args]
|
||||
install = ['--tags=runtime,python-runtime,tests,devel']
|
||||
@@ -190,8 +190,8 @@ install = ['--tags=runtime,python-runtim
|
||||
[tool.spin]
|
||||
package = 'numpy'
|
||||
|
||||
-[tool.spin.meson]
|
||||
-cli = 'vendored-meson/meson/meson.py'
|
||||
+#[tool.spin.meson]
|
||||
+#cli = 'vendored-meson/meson/meson.py'
|
||||
|
||||
[tool.spin.commands]
|
||||
"Build" = [
|
|
@ -1,12 +0,0 @@
|
|||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -59,6 +59,9 @@ download = "https://pypi.org/project/num
|
||||
tracker = "https://github.com/numpy/numpy/issues"
|
||||
"release notes" = "https://numpy.org/doc/stable/release"
|
||||
|
||||
+[tool.setuptools]
|
||||
+py-modules = []
|
||||
+
|
||||
[tool.towncrier]
|
||||
single_file = false
|
||||
filename = "doc/source/release/notes-towncrier.rst"
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
EXP_VER="$2"
|
||||
|
||||
python3 - << EOF
|
||||
import sys
|
||||
import numpy as np
|
||||
|
||||
if (np.__version__ != "$EXP_VER"):
|
||||
print("Got incorrect version: " + np.__version__)
|
||||
sys.exit(1)
|
||||
|
||||
arr = np.array([1, 2, 3, 4, 5])
|
||||
|
||||
print(arr)
|
||||
|
||||
EOF
|
||||
|
Loading…
Reference in New Issue