diff --git a/misc/onnx/Makefile b/misc/onnx/Makefile index 7788b1d24ef9..3087145e8f7d 100644 --- a/misc/onnx/Makefile +++ b/misc/onnx/Makefile @@ -1,39 +1,40 @@ PORTNAME= onnx DISTVERSIONPREFIX= v DISTVERSION= 1.19.1 +PORTREVISION= 1 CATEGORIES= misc # machine-learning MAINTAINER= yuri@FreeBSD.org COMMENT= Open Neural Network eXchange WWW= https://onnx.ai \ https://github.com/onnx/onnx LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE #BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS= libabsl_base.so:devel/abseil \ libprotobuf.so:devel/protobuf USES= cmake:testing compiler:c++17-lang python:build USE_GITHUB= yes CMAKE_ON= BUILD_SHARED_LIBS CMAKE_OFF= ONNX_BUILD_PYTHON CMAKE_TESTING_ON= ONNX_BUILD_TESTS CMAKE_TESTING_TARGET= CXXFLAGS+= -Dstat64=stat post-install: @${FIND} ${STAGEDIR}${PREFIX}/include -type d -empty -delete post-test: cd ${BUILD_WRKSRC} && ./onnx_gtests # tests as of 1.19.1: (NOTE: tests require static build, so the CMAKE_ON=BUILD_SHARED_LIBS needs to be commented out) # [==========] 95 tests from 13 test suites ran. (18 ms total) # [ PASSED ] 95 tests. .include diff --git a/misc/onnx/files/patch-CMakeLists.txt b/misc/onnx/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..f1e4a2c51f35 --- /dev/null +++ b/misc/onnx/files/patch-CMakeLists.txt @@ -0,0 +1,28 @@ +-- remove visibility settings to fix run-time of PyTorch with ONNX +-- 'import torch' fails otherwise with undefined symbols from ONNX +-- https://github.com/pytorch/pytorch/issues/167525 + +--- CMakeLists.txt.orig 2025-11-11 00:00:00 UTC ++++ CMakeLists.txt +@@ -419,8 +419,8 @@ foreach(_proto_src ${ONNX_PROTO_SRCS}) + endforeach() + + # Hide all symbols we don't need +-set_target_properties(onnx_proto PROPERTIES CXX_VISIBILITY_PRESET hidden) +-set_target_properties(onnx_proto PROPERTIES VISIBILITY_INLINES_HIDDEN 1) ++#set_target_properties(onnx_proto PROPERTIES CXX_VISIBILITY_PRESET hidden) ++#set_target_properties(onnx_proto PROPERTIES VISIBILITY_INLINES_HIDDEN 1) + + set(LINKED_PROTOBUF_TARGET protobuf::libprotobuf) + if(ONNX_USE_LITE_PROTO) +@@ -459,8 +459,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "AIX") + else() + add_library(onnx ${ONNX_SRCS}) + endif() +-set_target_properties(onnx PROPERTIES CXX_VISIBILITY_PRESET hidden) +-set_target_properties(onnx PROPERTIES VISIBILITY_INLINES_HIDDEN ON) ++#set_target_properties(onnx PROPERTIES CXX_VISIBILITY_PRESET hidden) ++#set_target_properties(onnx PROPERTIES VISIBILITY_INLINES_HIDDEN ON) + + target_link_libraries(onnx PUBLIC onnx_proto) + add_onnx_global_defines(onnx) diff --git a/misc/py-pytorch/Makefile b/misc/py-pytorch/Makefile index 9831c6a8a593..9e4d09be2c50 100644 --- a/misc/py-pytorch/Makefile +++ b/misc/py-pytorch/Makefile @@ -1,109 +1,108 @@ PORTNAME= pytorch DISTVERSIONPREFIX= v DISTVERSION= 2.8.0 PORTREVISION= 4 CATEGORIES= misc # machine-learning MASTER_SITES= https://github.com/pytorch/pytorch/releases/download/v${DISTVERSION}/ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTFILES= ${PORTNAME}-${DISTVERSIONFULL}${EXTRACT_SUFX} # the main tarball disappears when GH_xx tags are added w/out this line DIST_SUBDIR= ${PORTNAME} MAINTAINER= yuri@FreeBSD.org COMMENT= PyTorch: Tensors and dynamic neural networks in Python WWW= https://pytorch.org/ \ https://github.com/pytorch/pytorch LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -IGNORE= fails in the run-time after the latest onnx update, see https://github.com/pytorch/pytorch/issues/167525 BROKEN_aarch64= build fails: CMake Error at third_party/QNNPACK/CMakeLists.txt:47 (MESSAGE): Unrecognized CMAKE_SYSTEM_NAME = FreeBSD, see https://github.com/pytorch/pytorch/issues/144608 BROKEN_armv7= build fails: CMake Error at third_party/QNNPACK/CMakeLists.txt:47 (MESSAGE): Unrecognized CMAKE_SYSTEM_NAME = FreeBSD, see https://github.com/pytorch/pytorch/issues/144608 BROKEN_i386= build fails: DispatchStub.cpp:162:29: [0m[0;1;31merror: [0m[1muse of undeclared identifier 'AVX2'[0m BUILD_DEPENDS= cmake:devel/cmake-core \ gmake:devel/gmake \ pybind11>0:devel/pybind11 \ ${PYNUMPY} \ ${LOCALBASE}/include/fxdiv.h:devel/fxdiv \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} LIB_DEPENDS= libabsl_base.so:devel/abseil \ libblis.so:math/blis \ libmpi_cxx.so:net/openmpi4 \ libonnx.so:misc/onnx \ libopenblas.so:math/openblas \ libpthreadpool.so:devel/pthreadpool \ libprotobuf.so:devel/protobuf \ libsleef.so:math/sleef RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}filelock>0:sysutils/py-filelock@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}fsspec>0:filesystems/py-fsspec@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}networkx>0:math/py-networkx@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}sympy>=1.13.1:math/py-sympy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.10.0:devel/py-typing-extensions@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>0:devel/py-pyyaml@${PY_FLAVOR} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}astunparse>0:devel/py-astunparse@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dill>0:devel/py-dill@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}networkx>0:math/py-networkx@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}protobuf>0:devel/py-protobuf@${PY_FLAVOR} # optional dependencies USES= compiler:c++17-lang localbase:ldflags python USE_PYTHON= distutils autoplist USE_LDCONFIG= ${PYTHON_SITELIBDIR}/torch/lib USE_GITHUB= nodefault GH_TUPLE= pytorch:cpuinfo:1e83a2f:cpuinfo/cpuinfo-with-freebsd-support # https://github.com/pytorch/cpuinfo/pull/230/commits MAKE_ENV= USE_NINJA=no # ninja breaks for some reason MAKE_ENV+= BUILD_TEST=0 # ninja breaks for some reason MAKE_ENV+= USE_MKLDNN=0 # disable MKLDNN that doesn't exist, see https://github.com/pytorch/pytorch/issues/100957 MAKE_ENV+= USE_CUDNN=0 MAKE_ENV+= USE_LAPACK=1 # needed on FreeBSD to run w/out GPU MAKE_ENV+= USE_QNNPACK=0 MAKE_ENV+= USE_DISTRIBUTED=1 LDFLAGS+= -lexecinfo LDFLAGS_powerpc64le= -pthread BINARY_ALIAS= make=${GMAKE} POST_PLIST= fix-plist TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/test OPTIONS_DEFINE= VULKAN OPTIONS_DEFAULT= VULKAN # VULKAN is experimental in PyTorch and only simple computations work VULKAN_MAKE_ENV= USE_VULKAN=1 USE_VULKAN_SHADERC_RUNTIME=1 USE_VULKAN_WRAPPER=0 # see https://docs.pytorch.org/tutorials/unstable/vulkan_workflow.html VULKAN_BUILD_DEPENDS= glslc:graphics/shaderc \ vulkan-headers>0:graphics/vulkan-headers VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader .include .if ${OPSYS} == FreeBSD USES+= llvm:max=15 .endif post-patch: @cd ${WRKSRC} && \ ${RM} -r third_party/cpuinfo third_party/fbgemm/external/cpuinfo && \ ${CP} -r cpuinfo-with-freebsd-support third_party/cpuinfo && \ ${CP} -r cpuinfo-with-freebsd-support third_party/fbgemm/external/cpuinfo post-install: # strip binaries @${STRIP_CMD} \ ${STAGEDIR}${PYTHON_SITELIBDIR}/torch/bin/torch_shm_manager \ ${STAGEDIR}${PYTHON_SITELIBDIR}/torch/_C${PYTHON_TAG}.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/functorch/_C${PYTHON_TAG}.so \ ${STAGEDIR}${PYTHON_SITELIBDIR}/torch/lib/lib*.so fix-plist: # remove the stray %%PYTHON_SITELIBDIR%%/caffe2 file @${REINPLACE_CMD} -e "s|.*/caffe2$$||" ${TMPPLIST} do-test: cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} run_test.py .include