From patchwork Tue Feb 22 12:57:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guillaume Bres X-Patchwork-Id: 1595982 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=Ov9Ayyx5; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4K2zjx2jzBz9sFN for ; Tue, 22 Feb 2022 23:58:13 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 33D07400C5; Tue, 22 Feb 2022 12:58:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mSuLW9leK7yt; Tue, 22 Feb 2022 12:58:10 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 46A41402D8; Tue, 22 Feb 2022 12:58:09 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 6980F1BF97F for ; Tue, 22 Feb 2022 12:57:35 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 66158813B5 for ; Tue, 22 Feb 2022 12:57:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp1.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9cLVLQS2KRzZ for ; Tue, 22 Feb 2022 12:57:34 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by smtp1.osuosl.org (Postfix) with ESMTPS id 2A75181A9C for ; Tue, 22 Feb 2022 12:57:34 +0000 (UTC) Received: by mail-wr1-x42b.google.com with SMTP id d27so33101259wrb.5 for ; Tue, 22 Feb 2022 04:57:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=83WKBZ3Pc4t8rpK1eDiNTalQt3YsDvCVIhaPRnDh+FI=; b=Ov9Ayyx5z9kQA93YCF2wCfksLwyCF6HrZOlwcLTdHYsVdKSvVlvIQFktYgeLw+QLCt 1q990pcbPae2iipRaYkfEAqOp/xkavWhlfSxXiLjI+kPvEi2UjOJA7dytOtjJo5zy2bu RF/ndb1/bq5U+i5OisVEDlXyonc0Hv5xg0fcKidn8YqAmaIngd8o1QeMl09PS8nsNGVu ov+1BkcbQOSpeijq3RSAX9fLxfuKU02Yvd8ebU8dBQfw2dtR6nz8Nf8hxSj3YmsPrSRN dF7LG20EWyvyM/cVoRM9kLnNa69xLv62DKnLWKNy5TIFWsLLNEbJ67DbBgsNQUP3Evcn GNTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=83WKBZ3Pc4t8rpK1eDiNTalQt3YsDvCVIhaPRnDh+FI=; b=idDCsbAUFDsCU+AvtahQ7AOMxd8/MBbOOvn93hbWBUTeOqXsUNYCkg0FSEXr7uMns8 FM+EiBNbxljVyNR4smaPI5z3i9JQ/QWDkvY7auKf0w8YJwOFLHhB8eXOD7SX6XLigSMb vr/Obs+gn6Vsl2tguRWJ62X63IKZTQN7b4EPQJHA1rc/jm321dDXBITok58xFN83LCZ+ k+y6zBBXNmmGnf5gciAOGn0VtiQpD+axAJnIQ3ZBNspxpkBQ+dCylR9e3J5O418Ivg9V CJQWUuym94u+mP13BPIfrK0h57hfdfH8GvSN74FSGHM+slGgwhXdB6OQgdI4UEOc97k8 2M3Q== X-Gm-Message-State: AOAM530LPS17fF9DwqLCxDupccmzZbR1NVKUC4aWuHR8RcFEsedYjypW qe77wmM/jcnc8QCHLg7DQ2Oy9/ZkQiRxDA== X-Google-Smtp-Source: ABdhPJyVA+uyowRXVoG8oGmM1sphne2ulp1l5H71HWAv9oM5WgVwi1iO8j5p7qjPGrQz7vm52yj+gQ== X-Received: by 2002:a5d:6790:0:b0:1e3:3ece:3e07 with SMTP id v16-20020a5d6790000000b001e33ece3e07mr19487927wru.182.1645534652203; Tue, 22 Feb 2022 04:57:32 -0800 (PST) Received: from pc-140.home ([2a01:cb15:81e5:ad00:7afb:407b:e9ac:7e79]) by smtp.gmail.com with ESMTPSA id ay12sm36702281wrb.73.2022.02.22.04.57.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Feb 2022 04:57:31 -0800 (PST) From: "Guillaume W. Bres" To: buildroot@busybox.net Date: Tue, 22 Feb 2022 13:57:24 +0100 Message-Id: <20220222125724.11079-4-guillaume.bressaix@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220222125724.11079-1-guillaume.bressaix@gmail.com> References: <20220222125724.11079-1-guillaume.bressaix@gmail.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH v4 4/4] package/python-scipy: new package X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Guillaume W . Bres" , gwen@trabucayre.com, Jagan Teki Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" From: Jagan Teki Signed-off-by: Jagan Teki [Arnout: - Indent hash file with two spaces. - Bump to 1.7.3 to fix build failure with recent GCC. - Get from github instead of PyPI. - Add host-meson and host-python-pythran dependencies. - Properly propagate Config.in dependencies. - Correct usage of BR2_INSTALL_LIBSTDCPP symbol. - Remove F77, no longer used. ] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) [Guillaume: - -lnpymath: npymath.ini localization problem - -lnpyrandom resolution problem - fix legal-info for latest version LICENSE.txt - zlib is a scipy::io module runtime requirement ] Signed-off-by: Guillaume W. Bres --- v2: -lnpymath not able to localize npymath.ini -lnpyrandom points to /host/usr instead of /staging/usr v3: - fix legal-info (LICENSE.txt was outdated) - zlib is a scipy::io module runtime requirement v4: - zlib runtime selection missing in Config.in - fixed previous commit format Signed-off-by: Guillaume W. Bres --- DEVELOPERS | 3 ++ package/Config.in | 1 + package/python-scipy/Config.in | 30 ++++++++++++ package/python-scipy/python-scipy.hash | 9 ++++ package/python-scipy/python-scipy.mk | 63 ++++++++++++++++++++++++++ 5 files changed, 106 insertions(+) create mode 100644 package/python-scipy/Config.in create mode 100644 package/python-scipy/python-scipy.hash create mode 100644 package/python-scipy/python-scipy.mk diff --git a/DEVELOPERS b/DEVELOPERS index ac702d8d0f..c8766c872e 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1149,6 +1149,7 @@ F: package/libxcrypt/ F: package/liquid-dsp/ F: package/pixiewps/ F: package/python-pybind/ +F: package/python-scipy/ F: package/reaver/ F: support/testing/tests/package/br2-external/python-pybind F: support/testing/tests/package/sample_python_pybind.py @@ -1280,6 +1281,8 @@ F: configs/orangepi_win_defconfig F: configs/orangepi_zero_plus2_defconfig F: configs/pine64_defconfig F: configs/pine64_sopine_defconfig +F: package/python-pybind/ +F: package/python-scipy/ N: James Hilliard F: package/apcupsd/ diff --git a/package/Config.in b/package/Config.in index 10209d84d7..0edde1c919 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1209,6 +1209,7 @@ menu "External python modules" source "package/python-scandir/Config.in" source "package/python-scapy/Config.in" source "package/python-schedule/Config.in" + source "package/python-scipy/Config.in" source "package/python-sdnotify/Config.in" source "package/python-secretstorage/Config.in" source "package/python-see/Config.in" diff --git a/package/python-scipy/Config.in b/package/python-scipy/Config.in new file mode 100644 index 0000000000..a016d411af --- /dev/null +++ b/package/python-scipy/Config.in @@ -0,0 +1,30 @@ +config BR2_PACKAGE_PYTHON_SCIPY + bool "python-scipy" + depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS # openblas + depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS # python-numpy + depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS # lapack + depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy + depends on BR2_TOOLCHAIN_HAS_FORTRAN # lapack + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_PYTHON3 + select BR2_PACKAGE_LAPACK + select BR2_PACKAGE_OPENBLAS + select BR2_PACKAGE_ZLIB # runtime scipy::io + select BR2_PACKAGE_PYTHON_NUMPY # runtime + select BR2_PACKAGE_PYTHON_PYBIND + help + The SciPy library is one of the core packages that make up the + SciPy stack. It provides many user-friendly and efficient + numerical routines such as routines for numerical integration, + interpolation, optimization, linear algebra and statistics. + + https://www.scipy.org/scipylib/ + +comment "python-scipy needs toolchain w/ fortran and c++ and glibc or musl" + depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS + depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS + depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS + depends on BR2_PACKAGE_PYTHON3 + depends on !BR2_TOOLCHAIN_HAS_FORTRAN || \ + !BR2_INSTALL_LIBSTDCPP || \ + (!BR2_TOOLCHAIN_USES_GLIBC && !BR2_TOOLCHAIN_USES_MUSL) diff --git a/package/python-scipy/python-scipy.hash b/package/python-scipy/python-scipy.hash new file mode 100644 index 0000000000..6f9011516c --- /dev/null +++ b/package/python-scipy/python-scipy.hash @@ -0,0 +1,9 @@ +# Locally generated +sha256 4042211bed8e6c658b9e2a4ca829806f0b33437faa7878c8dc6d6f72845b1694 scipy-1.7.3.tar.xz +sha256 32b2f41fb8c1193a066c1686bb3237e79f918685bf545cb6dfcb68753ac35152 LICENSE.txt +sha256 37e64a498894ac7c3b070023e3689e954a8ecf8a23b90968d09a455f1b4f7b35 scipy/linalg/src/lapack_deprecations/LICENSE +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 34db0c0c4f931861d720555c9cd7a2e228d1290ba29af0f2ee80c41bb2038afb scipy/spatial/qhull_src/COPYING.txt diff --git a/package/python-scipy/python-scipy.mk b/package/python-scipy/python-scipy.mk new file mode 100644 index 0000000000..0491a73753 --- /dev/null +++ b/package/python-scipy/python-scipy.mk @@ -0,0 +1,63 @@ +################################################################################ +# +# python-scipy +# +################################################################################ + +PYTHON_SCIPY_VERSION = 1.7.3 +PYTHON_SCIPY_SOURCE = scipy-$(PYTHON_SCIPY_VERSION).tar.xz +PYTHON_SCIPY_SITE = https://github.com/scipy/scipy/releases/download/v$(PYTHON_SCIPY_VERSION) +PYTHON_SCIPY_LICENSE = \ + BSD-3-Clause, \ + BSD-2-Clause, \ + BSD, \ + BSD-Style, \ + Apache-2.0, \ + MIT +PYTHON_SCIPY_LICENSE_FILES = \ + LICENSE.txt \ + scipy/linalg/src/lapack_deprecations/LICENSE \ + scipy/ndimage/LICENSE.txt \ + scipy/optimize/tnc/LICENSE \ + scipy/sparse/linalg/dsolve/SuperLU/License.txt \ + scipy/sparse/linalg/eigen/arpack/ARPACK/COPYING \ + scipy/spatial/qhull_src/COPYING.txt +PYTHON_SCIPY_DEPENDENCIES += \ + host-meson \ + host-python-numpy \ + host-python-pythran \ + zlib \ + lapack \ + openblas \ + python-numpy \ + python-pybind +PYTHON_SCIPY_INSTALL_STAGING = YES + +PYTHON_SCIPY_SETUP_TYPE = setuptools +PYTHON_SCIPY_BUILD_OPTS = config_fc --fcompiler=gnu95 + +# -lnpymath npymath.ini localization +PYTHON_SCIPY_NPY_PKG_CONFIG_PATH = \ + $(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/lib/npy-pkg-config + +PYTHON_SCIPY_LDFLAGS = $(TARGET_LDFLAGS) -shared \ + -L$(PYTHON3_PATH)/site-packages/numpy/core/lib +# -lnpyrandom localization +PYTHON_SCIPY_LDFLAGS += \ + -L$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/random/lib + +PYTHON_SCIPY_ENV = \ + F90=$(TARGET_FC) \ + NPY_PKG_CONFIG_PATH=$(PYTHON_SCIPY_NPY_PKG_CONFIG_PATH) \ + LDFLAGS="$(PYTHON_SCIPY_LDFLAGS)" + +# Provide system configuration options to numpy distutils extenions, telling +# to find all include files and libraries in staging directory. +define PYTHON_SCIPY_CONFIGURE_CMDS + -rm -f $(@D)/site.cfg + echo "[DEFAULT]" >> $(@D)/site.cfg + echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(@D)/site.cfg + echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(@D)/site.cfg +endef + +$(eval $(python-package))