diff --git a/math/py-osqp/Makefile b/math/py-osqp/Makefile index 38a608b35806..c8564da956e7 100644 --- a/math/py-osqp/Makefile +++ b/math/py-osqp/Makefile @@ -1,26 +1,36 @@ PORTNAME= osqp -PORTVERSION= 0.6.2.post5 -PORTREVISION= 4 +DISTVERSION= 1.1.1 PORTEPOCH= 1 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= yuri@FreeBSD.org COMMENT= Python binding for Operator Splitting QP Solver WWW= https://osqp.org LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -PY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}qdldl>0:math/py-qdldl@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}scipy>=0.13.2:science/py-scipy@${PY_FLAVOR} -BUILD_DEPENDS= ${PY_DEPENDS} \ +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scikit-build-core>0:devel/py-scikit-build-core@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pybind11>=2.11:devel/py-pybind11@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR} \ cmake:devel/cmake-core -RUN_DEPENDS= ${PY_DEPENDS} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.11.3:devel/py-Jinja2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}joblib>0:devel/py-joblib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}numpy>=1.7:math/py-numpy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}scipy>=0.13.2:science/py-scipy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} USES= python -USE_PYTHON= distutils autoplist +USE_PYTHON= pep517 autoplist +USE_GITHUB= nodefault +GH_TUPLE= osqp:osqp:v1.0.0:osqp \ + osqp:qdldl:v0.1.8:qdldl + +pre-configure: + @${LN} -sf ${WRKSRC_osqp} ${WRKSRC}/osqp-source + @${LN} -sf ${WRKSRC_qdldl} ${WRKSRC}/qdldl-source .include diff --git a/math/py-osqp/distinfo b/math/py-osqp/distinfo index f7a50f625309..4b8d55e204bb 100644 --- a/math/py-osqp/distinfo +++ b/math/py-osqp/distinfo @@ -1,3 +1,7 @@ -TIMESTAMP = 1643127030 -SHA256 (osqp-0.6.2.post5.tar.gz) = b2fa17aae42a7ed498ec261b33f262bb4b3605e7e8464062159d9fae817f0d61 -SIZE (osqp-0.6.2.post5.tar.gz) = 226598 +TIMESTAMP = 1779200347 +SHA256 (osqp-1.1.1.tar.gz) = 1719e6a88f2ec2bd5dab06131331d1433152fb222372832727d9eb5604d7acf4 +SIZE (osqp-1.1.1.tar.gz) = 57059 +SHA256 (osqp-osqp-v1.0.0_GH0.tar.gz) = dd6a1c2e7e921485697d5e7cdeeb043c712526c395b3700601f51d472a7d8e48 +SIZE (osqp-osqp-v1.0.0_GH0.tar.gz) = 3265246 +SHA256 (osqp-qdldl-v0.1.8_GH0.tar.gz) = ecf113fd6ad8714f16289eb4d5f4d8b27842b6775b978c39def5913f983f6daa +SIZE (osqp-qdldl-v0.1.8_GH0.tar.gz) = 21149 diff --git a/math/py-osqp/files/patch-CMakeLists.txt b/math/py-osqp/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..64ed5641828a --- /dev/null +++ b/math/py-osqp/files/patch-CMakeLists.txt @@ -0,0 +1,28 @@ +-- Use locally provided OSQP/QDLDL source trees in ports/poudriere builds. +-- Upstream fetches these from GitHub at build time, but network access is +-- unavailable in poudriere. Keep GitHub fetch as fallback for non-ports use. +--- CMakeLists.txt.orig 2026-04-30 20:53:13 UTC ++++ CMakeLists.txt +@@ -26,10 +26,17 @@ set(PYTHON_INCLUDE_DIRS ${Python_INCLUDE + + message(STATUS "Fetching/configuring OSQP") + list(APPEND CMAKE_MESSAGE_INDENT " ") +-FetchContent_Declare( +- osqp +- GIT_REPOSITORY https://github.com/osqp/osqp.git +- GIT_TAG v1.0.0 +-) ++if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/osqp-source/CMakeLists.txt") ++ FetchContent_Declare(osqp SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/osqp-source") ++else() ++ FetchContent_Declare( ++ osqp ++ GIT_REPOSITORY https://github.com/osqp/osqp.git ++ GIT_TAG v1.0.0 ++ ) ++endif() ++if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/qdldl-source/CMakeLists.txt") ++ set(FETCHCONTENT_SOURCE_DIR_QDLDL "${CMAKE_CURRENT_SOURCE_DIR}/qdldl-source") ++endif() + list(POP_BACK CMAKE_MESSAGE_INDENT) + FetchContent_MakeAvailable(osqp)