diff --git a/misc/ezc3d/Makefile b/misc/ezc3d/Makefile index 6695c8134d69..0693bcf21436 100644 --- a/misc/ezc3d/Makefile +++ b/misc/ezc3d/Makefile @@ -1,29 +1,28 @@ PORTNAME= ezc3d DISTVERSIONPREFIX= Release_ -DISTVERSION= 1.6.3 +DISTVERSION= 1.7.2 CATEGORIES= misc MAINTAINER= yuri@FreeBSD.org COMMENT= C3D (biomechanics data format) reader/writer for C++ WWW= https://github.com/pyomeca/ezc3d LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE USES= cmake:testing compiler:c++11-lang python:test USE_GITHUB= yes GH_ACCOUNT= pyomeca GH_TUPLE= google:googletest:c9461a9:googletest/external/gtest # https://github.com/pyomeca/ezc3d/issues/256 CMAKE_TESTING_ON= BUILD_TESTS CMAKE_TESTING_TARGET= gtest post-test: @cd ${TEST_WRKSRC}/test && ./ezc3d_test -# tests as of 1.6.3: [ PASSED ] 56 tests. - +# tests as of 1.7.2: [ PASSED ] 58 tests. .include diff --git a/misc/ezc3d/distinfo b/misc/ezc3d/distinfo index e1b4d4fbbee3..e03a2f2c9f7a 100644 --- a/misc/ezc3d/distinfo +++ b/misc/ezc3d/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1764447169 -SHA256 (pyomeca-ezc3d-Release_1.6.3_GH0.tar.gz) = 49f297b1046214771b5a4b2037621642c7bb8a454ca3976a7f5cacb222670af3 -SIZE (pyomeca-ezc3d-Release_1.6.3_GH0.tar.gz) = 943755 +TIMESTAMP = 1789395255 +SHA256 (pyomeca-ezc3d-Release_1.7.2_GH0.tar.gz) = 7c57a7a86a0883c1c59bc20f467f4bc89a94d1e7bd356d35b3e966c82dd6d61a +SIZE (pyomeca-ezc3d-Release_1.7.2_GH0.tar.gz) = 952963 SHA256 (google-googletest-c9461a9_GH0.tar.gz) = 565ec9eec2bdc9f3e4c35d02c0baafa87806b5a47136ff94d646d02027c660cc SIZE (google-googletest-c9461a9_GH0.tar.gz) = 834933 diff --git a/misc/py-ezc3d/Makefile b/misc/py-ezc3d/Makefile index 73c813c7ce42..ca911dfbf6ec 100644 --- a/misc/py-ezc3d/Makefile +++ b/misc/py-ezc3d/Makefile @@ -1,57 +1,60 @@ PORTNAME= ezc3d DISTVERSIONPREFIX= Release_ -DISTVERSION= 1.6.3 -PORTREVISION= 2 +DISTVERSION= 1.7.2 CATEGORIES= misc python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= C3D (biomechanics data format) reader/writer WWW= https://github.com/pyomeca/ezc3d LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scikit-build>0:devel/py-scikit-build@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ cmake:devel/cmake-core \ + ninja:devel/ninja \ swig:devel/swig RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} USES= python USE_PYTHON= pep517 autoplist pytest # autoplist is broken due to https://github.com/pyomeca/ezc3d/issues/258 ; 3 tests fail, see https://github.com/pyomeca/ezc3d/issues/291 USE_GITHUB= yes GH_ACCOUNT= pyomeca GH_TUPLE= google:googletest:3880b13:googletest/external/gtest # https://github.com/pyomeca/ezc3d/issues/256 -TEST_ARGS= ${WRKSRC}/test/python3 +MAKE_ENV+= SKBUILD_CONFIGURE_OPTIONS=-DEZC3D_INSTALL_HEADERS=OFF + +TEST_ARGS= --disable-plugin-autoload ${WRKSRC}/test/python3 TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} post-install: # strip binaries @cd ${STAGEDIR}/${PYTHON_SITELIBDIR} && \ ${STRIP_CMD} \ ezc3d/_ezc3d.so \ ezc3d/libezc3d.so pre-test: # download test c3d files # download archives @${MKDIR} ${WRKSRC}/test/c3dFiles @cd ${WRKDIR} && ${FETCH_CMD} -q https://github.com/pyomeca/ezc3d-testFiles/archive/master.zip -o ${WRKSRC}/test/c3dFiles/ezc3d-testFiles-master.zip .for f in Sample01.zip Sample02.zip @cd ${WRKDIR} && ${FETCH_CMD} -q https://www.c3d.org/data/${f} -o ${WRKSRC}/test/c3dFiles/${f} .endfor # extract archives .for n in ezc3d-testFiles-master Sample01 Sample02 @cd ${WRKSRC}/test/c3dFiles && ${MKDIR} ${n} && cd ${n} && ${TAR} -xf ../${n}.zip .endfor # move *.c3d files into a flat folder + @${RM} -rf ${WRKSRC}/test/c3dTestFiles @${MKDIR} ${WRKSRC}/test/c3dTestFiles - @${CP} `${FIND} ${WRKSRC} -name "*.c3d"` ${WRKSRC}/test/c3dTestFiles + @${CP} `${FIND} ${WRKSRC} -name "*.c3d" -not -path "${WRKSRC}/test/c3dTestFiles/*"` ${WRKSRC}/test/c3dTestFiles -# tests as of : 2 failed, 25 passed, 1 error in 4.17s, see https://github.com/pyomeca/ezc3d/issues/368 +# tests as of 1.7.2: 30 passed in 8.44s .include diff --git a/misc/py-ezc3d/distinfo b/misc/py-ezc3d/distinfo index 4d2bd441934f..6d4288290c86 100644 --- a/misc/py-ezc3d/distinfo +++ b/misc/py-ezc3d/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1764447621 -SHA256 (pyomeca-ezc3d-Release_1.6.3_GH0.tar.gz) = 49f297b1046214771b5a4b2037621642c7bb8a454ca3976a7f5cacb222670af3 -SIZE (pyomeca-ezc3d-Release_1.6.3_GH0.tar.gz) = 943755 +TIMESTAMP = 1789395255 +SHA256 (pyomeca-ezc3d-Release_1.7.2_GH0.tar.gz) = 7c57a7a86a0883c1c59bc20f467f4bc89a94d1e7bd356d35b3e966c82dd6d61a +SIZE (pyomeca-ezc3d-Release_1.7.2_GH0.tar.gz) = 952963 SHA256 (google-googletest-3880b13_GH0.tar.gz) = ea3d403a3de3ab084841ec97efa440fb45d5f2fbe4eb09a22ccb9643a6af11ba SIZE (google-googletest-3880b13_GH0.tar.gz) = 962793 diff --git a/misc/py-ezc3d/files/patch-CMakeLists.txt b/misc/py-ezc3d/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..72e479b4278d --- /dev/null +++ b/misc/py-ezc3d/files/patch-CMakeLists.txt @@ -0,0 +1,32 @@ +-- Allow the Python wrapper to disable installation of C++ headers, because +-- misc/ezc3d already provides them and the duplicate files conflict. + +--- CMakeLists.txt.orig 2020-02-01 16:00:00 UTC ++++ CMakeLists.txt +@@ -96,6 +96,7 @@ + + # Install target + include(GNUInstallDirs) ++option(EZC3D_INSTALL_HEADERS "Install C++ headers" ON) + install(TARGETS ${PROJECT_NAME} EXPORT ezc3dTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +@@ -103,10 +104,12 @@ + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ${CMAKE_INSTALL_INCLUDEDIR}/ezc3d + ) +-install(DIRECTORY include/ezc3d DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +- # Exclude ezc3dConfig.h.in. +- PATTERN "*.h.in" EXCLUDE +-) +-install(FILES "${EZC3D_BINARY_DIR}/include/ezc3d/ezc3dConfig.h" +- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ezc3d +-) ++if(EZC3D_INSTALL_HEADERS) ++ install(DIRECTORY include/ezc3d DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ++ # Exclude ezc3dConfig.h.in. ++ PATTERN "*.h.in" EXCLUDE ++ ) ++ install(FILES "${EZC3D_BINARY_DIR}/include/ezc3d/ezc3dConfig.h" ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ezc3d ++ ) ++endif() diff --git a/misc/py-ezc3d/files/patch-pyproject.toml b/misc/py-ezc3d/files/patch-pyproject.toml index f9ae9fdf9b0e..84670b5a970d 100644 --- a/misc/py-ezc3d/files/patch-pyproject.toml +++ b/misc/py-ezc3d/files/patch-pyproject.toml @@ -1,34 +1,40 @@ ---- pyproject.toml.orig 2025-11-29 13:01:05.743721000 -0800 -+++ pyproject.toml 2025-11-29 13:01:10.079226000 -0800 +-- Simplify the build-system requirements so the port uses the cmake, ninja, +-- swig, and setuptools versions provided by the FreeBSD ports tree instead of +-- the versions declared by upstream. +-- Drop the [project] metadata section to avoid dynamic-version conflicts with +-- the setuptools_scm-less build environment used here. + +--- pyproject.toml.orig 2020-02-01 16:00:00 UTC ++++ pyproject.toml @@ -1,30 +1,11 @@ [build-system] requires = [ - "setuptools>=61.0", + "setuptools", "wheel", "scikit-build", - "cmake", - "ninja", - "swig", "numpy", ] build-backend = "setuptools.build_meta" - + -[project] -name = "ezc3d" -dynamic = ["version"] -dependencies = [ - "numpy", -] -description = "Easy to use C3D reader/writer for C++, Python, and Matlab" -readme = "README.md" # This links to your README file -authors = [ - {name = "Michaud, Benjamin"}, - {name = "Begon, Mickaƫl"} -] -license-files = ["LICENSE"] -urls = { "Homepage" = "https://github.com/pyomeca/ezc3d" } -requires-python = ">=3.10" - [tool.cibuildwheel] build-frontend = "build"