git: e41c3e8b085a - main - math/{,py-}or-tools: Update 9.2 -> 9.4

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 20 Sep 2022 00:59:10 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e41c3e8b085a85e2b91d8046005b12066b79d8b7

commit e41c3e8b085a85e2b91d8046005b12066b79d8b7
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-09-19 18:12:03 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-09-20 00:59:07 +0000

    math/{,py-}or-tools: Update 9.2 -> 9.4
    
    Reported by:    portscout
---
 math/or-tools/Makefile                             |  24 ++---
 math/or-tools/distinfo                             |   6 +-
 .../files/patch-makefiles_Makefile.dotnet.mk       |  15 ---
 .../patch-makefiles_Makefile.third__party.unix.mk  |  21 -----
 math/or-tools/pkg-plist                            | 105 ++++++++++++++++++---
 math/py-or-tools/Makefile                          |  23 +++--
 math/py-or-tools/distinfo                          |   6 +-
 .../files/patch-ortools_python_setup.py.in         |  17 ----
 math/py-or-tools/files/patch-tools_setup.py.in     |  17 ----
 math/py-or-tools/pkg-plist                         |  39 +++++---
 10 files changed, 149 insertions(+), 124 deletions(-)

diff --git a/math/or-tools/Makefile b/math/or-tools/Makefile
index 2364e81eacf3..f94adf891f48 100644
--- a/math/or-tools/Makefile
+++ b/math/or-tools/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	or-tools
 DISTVERSIONPREFIX=	v
-DISTVERSION=	9.2
-PORTREVISION=	6
+DISTVERSION=	9.4
 CATEGORIES=	math
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -9,7 +8,7 @@ COMMENT=	Google's Operations Research tools
 WWW=		https://github.com/google/or-tools
 
 LICENSE=	APACHE20
-LICENSE_FILE=	${WRKSRC}/LICENSE-2.0.txt
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
 PATCH_DEPENDS=	gsed:textproc/gsed
 LIB_DEPENDS=	libabsl_base.so:devel/abseil \
@@ -18,15 +17,16 @@ LIB_DEPENDS=	libabsl_base.so:devel/abseil \
 		libcoinasl.so:math/asl \
 		libcoinmumps.so:math/coin-or-mumps \
 		libCoinUtils.so:math/coinutils \
+		libgflags.so:devel/gflags \
+		libglog.so:devel/glog \
 		libnauty.so:math/nauty \
 		libopenblas.so:math/openblas \
 		libOsi.so:math/osi \
 		libOsiClp.so:math/clp \
-		libgflags.so:devel/gflags \
-		libglog.so:devel/glog \
-		libprotobuf.so:devel/protobuf
+		libprotobuf.so:devel/protobuf \
+		libre2.so:devel/re2
 
-USES=		blaslapack cmake:testing compiler:c++17-lang pkgconfig
+USES=		blaslapack cmake:testing compiler:c++17-lang eigen:3 pkgconfig
 USE_GITHUB=	yes
 GH_ACCOUNT=	google
 USE_LDCONFIG=	yes
@@ -37,7 +37,7 @@ CMAKE_TESTING_ON=	BUILD_EXAMPLES BUILD_CXX_EXAMPLES
 
 CONFIGURE_ENV=	UNIX_CBC_DIR=${LOCALBASE} UNIX_CLP_DIR=${LOCALBASE}
 
-OPTIONS_DEFINE=		FLATZINC SCIP
+OPTIONS_DEFINE=		DOCS FLATZINC SCIP
 OPTIONS_DEFAULT=	FLATZINC #SCIP
 OPTIONS_SUB=		yes
 
@@ -48,10 +48,10 @@ SCIP_DESC=		Use the SCIP solver # SCIP package isn't built because of licensing
 SCIP_CMAKE_BOOL=	USE_SCIP
 SCIP_LIB_DEPENDS=	libscip.so:math/SCIP
 
-post-patch:
-	# fix for https://github.com/google/or-tools/issues/2526 suggested there
-	@gsed -i '11i \ \ LINKER_LANGUAGE Cxx' \
-		${WRKSRC}/ortools/init/CMakeLists.txt
+DOCSDIR=	${PREFIX}/share/doc/${PORTNAME:S/-//}
+PORTDOCS=	*
+
+# 4 tests are known to fail, see https://github.com/google/or-tools/issues/3429
 
 post-install:
 	@${FIND} ${STAGEDIR}${PREFIX} -type d -empty -delete
diff --git a/math/or-tools/distinfo b/math/or-tools/distinfo
index 0ab443a1a46e..cf40574c2376 100644
--- a/math/or-tools/distinfo
+++ b/math/or-tools/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1639967041
-SHA256 (google-or-tools-v9.2_GH0.tar.gz) = 5337935ea1fa010bb62cf0fc8bedd6de07dda77bff3db7a0f6a36c84c7bd58db
-SIZE (google-or-tools-v9.2_GH0.tar.gz) = 246278500
+TIMESTAMP = 1660340684
+SHA256 (google-or-tools-v9.4_GH0.tar.gz) = 180fbc45f6e5ce5ff153bea2df0df59b15346f2a7f8ffbd7cb4aed0fb484b8f6
+SIZE (google-or-tools-v9.4_GH0.tar.gz) = 14411489
diff --git a/math/or-tools/files/patch-makefiles_Makefile.dotnet.mk b/math/or-tools/files/patch-makefiles_Makefile.dotnet.mk
deleted file mode 100644
index ccf9d6796a09..000000000000
--- a/math/or-tools/files/patch-makefiles_Makefile.dotnet.mk
+++ /dev/null
@@ -1,15 +0,0 @@
---- makefiles/Makefile.dotnet.mk.orig	2020-06-12 13:05:43 UTC
-+++ makefiles/Makefile.dotnet.mk
-@@ -62,7 +62,11 @@ else
-     ifeq ($(OS),Darwin)
-     RUNTIME_IDENTIFIER=osx-x64
-     else
--    $(error OS unknown !)
-+      ifeq ($(OS),FreeBSD)
-+      RUNTIME_IDENTIFIER=freebsd-amd64
-+      else
-+        $(error OS unknown !)
-+      endif
-     endif
-   endif
- endif
diff --git a/math/or-tools/files/patch-makefiles_Makefile.third__party.unix.mk b/math/or-tools/files/patch-makefiles_Makefile.third__party.unix.mk
deleted file mode 100644
index da0be7fa49a5..000000000000
--- a/math/or-tools/files/patch-makefiles_Makefile.third__party.unix.mk
+++ /dev/null
@@ -1,21 +0,0 @@
---- makefiles/Makefile.third_party.unix.mk.orig	2020-06-12 13:05:43 UTC
-+++ makefiles/Makefile.third_party.unix.mk
-@@ -73,7 +73,8 @@ ifeq ($(wildcard $(UNIX_OSI_DIR)/include/osi/coin/OsiS
- else
- 	$(info OSI: found)
- endif
--ifeq ($(wildcard $(UNIX_CLP_DIR)/include/clp/coin/ClpModel.hpp $(UNIX_CLP_DIR)/include/coin/ClpSimplex.hpp),)
-+ifeq ($(wildcard $(UNIX_CLP_DIR)/include/coin/ClpModel.hpp $(UNIX_CLP_DIR)/include/coin/ClpSimplex.hpp),)
-+	$(info CLP: NOT found: UNIX_CLP_DIR=$(UNIX_CLP_DIR))
- 	$(error Third party Clp files was not found! did you run 'make third_party' or set UNIX_CLP_DIR ?)
- else
- 	$(info CLP: found)
-@@ -83,7 +84,7 @@ ifeq ($(wildcard $(UNIX_CGL_DIR)/include/cgl/coin/CglP
- else
- 	$(info CGL: found)
- endif
--ifeq ($(wildcard $(UNIX_CBC_DIR)/include/cbc/coin/CbcModel.hpp $(UNIX_CBC_DIR)/include/coin/CbcModel.hpp),)
-+ifeq ($(wildcard $(UNIX_CBC_DIR)/include/coin/CbcModel.hpp $(UNIX_CBC_DIR)/include/coin/CbcModel.hpp),)
- 	$(error Third party Cbc files was not found! did you run 'make third_party' or set UNIX_CBC_DIR ?)
- else
- 	$(info CBC: found)
diff --git a/math/or-tools/pkg-plist b/math/or-tools/pkg-plist
index a3b4846297e4..057a80d5bbcc 100644
--- a/math/or-tools/pkg-plist
+++ b/math/or-tools/pkg-plist
@@ -1,4 +1,4 @@
-%%FLATZINC%%bin/fz
+%%FLATZINC%%bin/fzn-ortools
 include/ortools/algorithms/dense_doubly_linked_list.h
 include/ortools/algorithms/dynamic_partition.h
 include/ortools/algorithms/dynamic_permutation.h
@@ -20,9 +20,10 @@ include/ortools/base/container_logging.h
 include/ortools/base/dynamic_library.h
 include/ortools/base/encodingutils.h
 include/ortools/base/file.h
-include/ortools/base/filelineiter.h
 include/ortools/base/gzipstring.h
 include/ortools/base/hash.h
+include/ortools/base/helpers.h
+include/ortools/base/init_google.h
 include/ortools/base/int_type.h
 include/ortools/base/integral_types.h
 include/ortools/base/iterator_adaptors.h
@@ -31,11 +32,14 @@ include/ortools/base/linked_hash_map.h
 include/ortools/base/log_severity.h
 include/ortools/base/logging.h
 include/ortools/base/logging_export.h
+include/ortools/base/logging_extensions.h
+include/ortools/base/logging_flags.h
 include/ortools/base/logging_utilities.h
 include/ortools/base/macros.h
 include/ortools/base/map_util.h
 include/ortools/base/mathutil.h
 include/ortools/base/murmur.h
+include/ortools/base/path.h
 include/ortools/base/protobuf_util.h
 include/ortools/base/protoutil.h
 include/ortools/base/ptr_util.h
@@ -43,12 +47,14 @@ include/ortools/base/python-swig.h
 include/ortools/base/raw_logging.h
 include/ortools/base/recordio.h
 include/ortools/base/small_map.h
-include/ortools/base/small_ordered_set.h
+include/ortools/base/source_location.h
 include/ortools/base/status_builder.h
 include/ortools/base/status_macros.h
 include/ortools/base/stl_logging.h
 include/ortools/base/stl_util.h
+include/ortools/base/strong_int.h
 include/ortools/base/strong_vector.h
+include/ortools/base/strtoint.h
 include/ortools/base/sysinfo.h
 include/ortools/base/thorough_hash.h
 include/ortools/base/threadpool.h
@@ -73,7 +79,6 @@ include/ortools/constraint_solver/constraint_solver.h
 include/ortools/constraint_solver/constraint_solveri.h
 include/ortools/constraint_solver/demon_profiler.pb.h
 include/ortools/constraint_solver/java/javawrapcp_util.h
-include/ortools/constraint_solver/python/pywrapcp_util.h
 include/ortools/constraint_solver/routing.h
 include/ortools/constraint_solver/routing_enums.pb.h
 include/ortools/constraint_solver/routing_filters.h
@@ -112,6 +117,9 @@ include/ortools/glop/status.h
 include/ortools/glop/update_row.h
 include/ortools/glop/variable_values.h
 include/ortools/glop/variables_info.h
+include/ortools/glpk/glpk_computational_form.h
+include/ortools/glpk/glpk_env_deleter.h
+include/ortools/glpk/glpk_formatters.h
 include/ortools/graph/assignment.h
 include/ortools/graph/christofides.h
 include/ortools/graph/cliques.h
@@ -151,6 +159,7 @@ include/ortools/linear_solver/linear_solver_callback.h
 include/ortools/linear_solver/model_exporter.h
 include/ortools/linear_solver/model_exporter_swig_helper.h
 include/ortools/linear_solver/model_validator.h
+include/ortools/linear_solver/pdlp_proto_solver.h
 include/ortools/linear_solver/sat_proto_solver.h
 include/ortools/linear_solver/sat_solver_utils.h
 include/ortools/linear_solver/scip_callback.h
@@ -174,47 +183,101 @@ include/ortools/lp_data/sparse.h
 include/ortools/lp_data/sparse_column.h
 include/ortools/lp_data/sparse_row.h
 include/ortools/lp_data/sparse_vector.h
-include/ortools/math_opt/core/indexed_model.h
+include/ortools/math_opt/constraints/quadratic/validator.h
+include/ortools/math_opt/constraints/sos/validator.h
+include/ortools/math_opt/core/arrow_operator_proxy.h
+include/ortools/math_opt/core/inverted_bounds.h
 include/ortools/math_opt/core/math_opt_proto_utils.h
 include/ortools/math_opt/core/model_summary.h
-include/ortools/math_opt/core/model_update_merge.h
+include/ortools/math_opt/core/non_streamable_solver_init_arguments.h
+include/ortools/math_opt/core/solve_interrupter.h
 include/ortools/math_opt/core/solver.h
+include/ortools/math_opt/core/solver_debug.h
 include/ortools/math_opt/core/solver_interface.h
 include/ortools/math_opt/core/sparse_collection_matchers.h
+include/ortools/math_opt/core/sparse_submatrix.h
+include/ortools/math_opt/core/sparse_vector.h
 include/ortools/math_opt/core/sparse_vector_view.h
-include/ortools/math_opt/cpp/arrow_operator_proxy.h
+include/ortools/math_opt/cpp/basis_status.h
 include/ortools/math_opt/cpp/callback.h
+include/ortools/math_opt/cpp/enums.h
+include/ortools/math_opt/cpp/formatters.h
 include/ortools/math_opt/cpp/id_map.h
 include/ortools/math_opt/cpp/id_set.h
 include/ortools/math_opt/cpp/key_types.h
 include/ortools/math_opt/cpp/linear_constraint.h
 include/ortools/math_opt/cpp/map_filter.h
+include/ortools/math_opt/cpp/matchers.h
 include/ortools/math_opt/cpp/math_opt.h
+include/ortools/math_opt/cpp/message_callback.h
+include/ortools/math_opt/cpp/model.h
 include/ortools/math_opt/cpp/model_solve_parameters.h
-include/ortools/math_opt/cpp/objective.h
-include/ortools/math_opt/cpp/result.h
+include/ortools/math_opt/cpp/parameters.h
+include/ortools/math_opt/cpp/solution.h
+include/ortools/math_opt/cpp/solve.h
+include/ortools/math_opt/cpp/solve_arguments.h
+include/ortools/math_opt/cpp/solve_result.h
+include/ortools/math_opt/cpp/solver_init_arguments.h
+include/ortools/math_opt/cpp/sparse_containers.h
+include/ortools/math_opt/cpp/statistics.h
+include/ortools/math_opt/cpp/streamable_solver_init_arguments.h
+include/ortools/math_opt/cpp/update_tracker.h
 include/ortools/math_opt/cpp/variable_and_expressions.h
+include/ortools/math_opt/io/mps_converter.h
+include/ortools/math_opt/io/names_removal.h
 include/ortools/math_opt/io/proto_converter.h
 include/ortools/math_opt/solvers/cp_sat_solver.h
 include/ortools/math_opt/solvers/glop_solver.h
+include/ortools/math_opt/solvers/glpk/glpk_sparse_vector.h
+include/ortools/math_opt/solvers/glpk/rays.h
+include/ortools/math_opt/solvers/glpk_solver.h
 include/ortools/math_opt/solvers/gscip_solver.h
 include/ortools/math_opt/solvers/gscip_solver_callback.h
+include/ortools/math_opt/solvers/gscip_solver_message_callback_handler.h
+include/ortools/math_opt/solvers/gurobi/g_gurobi.h
 include/ortools/math_opt/solvers/gurobi_callback.h
+include/ortools/math_opt/solvers/gurobi_init_arguments.h
 include/ortools/math_opt/solvers/gurobi_solver.h
 include/ortools/math_opt/solvers/message_callback_data.h
+include/ortools/math_opt/solvers/pdlp_bridge.h
+include/ortools/math_opt/solvers/pdlp_solver.h
+include/ortools/math_opt/storage/model_storage.h
+include/ortools/math_opt/storage/model_storage_types.h
+include/ortools/math_opt/storage/sparse_matrix.h
+include/ortools/math_opt/storage/update_trackers.h
 include/ortools/math_opt/validators/callback_validator.h
+include/ortools/math_opt/validators/enum_sets.h
 include/ortools/math_opt/validators/ids_validator.h
+include/ortools/math_opt/validators/linear_expression_validator.h
 include/ortools/math_opt/validators/model_parameters_validator.h
 include/ortools/math_opt/validators/model_validator.h
-include/ortools/math_opt/validators/name_validator.h
+include/ortools/math_opt/validators/result_validator.h
 include/ortools/math_opt/validators/scalar_validator.h
 include/ortools/math_opt/validators/solution_validator.h
-include/ortools/math_opt/validators/solver_parameters_validator.h
+include/ortools/math_opt/validators/solve_parameters_validator.h
+include/ortools/math_opt/validators/solve_stats_validator.h
+include/ortools/math_opt/validators/sparse_matrix_validator.h
 include/ortools/math_opt/validators/sparse_vector_validator.h
+include/ortools/model_builder/wrappers/model_builder_helper.h
 include/ortools/packing/arc_flow_builder.h
 include/ortools/packing/arc_flow_solver.h
+include/ortools/packing/binpacking_2d_parser.h
+include/ortools/packing/multiple_dimensions_bin_packing.pb.h
 include/ortools/packing/vector_bin_packing.pb.h
 include/ortools/packing/vector_bin_packing_parser.h
+include/ortools/pdlp/iteration_stats.h
+include/ortools/pdlp/primal_dual_hybrid_gradient.h
+include/ortools/pdlp/quadratic_program.h
+include/ortools/pdlp/quadratic_program_io.h
+include/ortools/pdlp/sharded_optimization_utils.h
+include/ortools/pdlp/sharded_quadratic_program.h
+include/ortools/pdlp/sharder.h
+include/ortools/pdlp/solve_log.pb.h
+include/ortools/pdlp/solvers.pb.h
+include/ortools/pdlp/solvers_proto_validation.h
+include/ortools/pdlp/termination.h
+include/ortools/pdlp/test_util.h
+include/ortools/pdlp/trust_region.h
 include/ortools/port/file.h
 include/ortools/port/proto_utils.h
 include/ortools/port/sysinfo.h
@@ -252,6 +315,7 @@ include/ortools/sat/drat_writer.h
 include/ortools/sat/encoding.h
 include/ortools/sat/feasibility_pump.h
 include/ortools/sat/implied_bounds.h
+include/ortools/sat/inclusion.h
 include/ortools/sat/integer.h
 include/ortools/sat/integer_expr.h
 include/ortools/sat/integer_search.h
@@ -262,6 +326,7 @@ include/ortools/sat/linear_constraint_manager.h
 include/ortools/sat/linear_programming_constraint.h
 include/ortools/sat/linear_relaxation.h
 include/ortools/sat/lp_utils.h
+include/ortools/sat/max_hs.h
 include/ortools/sat/model.h
 include/ortools/sat/optimization.h
 include/ortools/sat/parameters_validation.h
@@ -293,6 +358,7 @@ include/ortools/sat/timetable_edgefinding.h
 include/ortools/sat/util.h
 include/ortools/sat/var_domination.h
 include/ortools/sat/zero_half_cuts.h
+include/ortools/scheduling/course_scheduling.pb.h
 include/ortools/scheduling/jobshop_scheduling.pb.h
 include/ortools/scheduling/jobshop_scheduling_parser.h
 include/ortools/scheduling/rcpsp.pb.h
@@ -302,6 +368,8 @@ include/ortools/util/affine_relation.h
 include/ortools/util/bitset.h
 include/ortools/util/cached_log.h
 include/ortools/util/file_util.h
+include/ortools/util/filelineiter.h
+include/ortools/util/fp_roundtrip_conv.h
 include/ortools/util/fp_utils.h
 include/ortools/util/functions_swig_helpers.h
 include/ortools/util/functions_swig_test_helpers.h
@@ -326,7 +394,10 @@ include/ortools/util/sigint.h
 include/ortools/util/sort.h
 include/ortools/util/sorted_interval_list.h
 include/ortools/util/stats.h
+include/ortools/util/status_macros.h
 include/ortools/util/string_array.h
+include/ortools/util/string_util.h
+include/ortools/util/strong_integers.h
 include/ortools/util/testing_utils.h
 include/ortools/util/time_limit.h
 include/ortools/util/tuple_set.h
@@ -334,16 +405,20 @@ include/ortools/util/vector_map.h
 include/ortools/util/vector_or_function.h
 include/ortools/util/zvector.h
 include/ortools_export.h
+lib/cmake/ortools/modules/FindCbc.cmake
+lib/cmake/ortools/modules/FindClp.cmake
+lib/cmake/ortools/modules/FindEigen3.cmake
+lib/cmake/ortools/modules/Findre2.cmake
 lib/cmake/ortools/ortoolsConfig.cmake
 lib/cmake/ortools/ortoolsConfigVersion.cmake
 lib/cmake/ortools/ortoolsTargets-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/ortools/ortoolsTargets.cmake
-lib/libflatzinc.so
-lib/libflatzinc.so.9
-lib/libflatzinc.so.9.2.9999
 lib/libortools.so
 lib/libortools.so.9
-lib/libortools.so.9.2.9999
+lib/libortools.so.9.4.9999
+%%FLATZINC%%lib/libortools_flatzinc.so
+%%FLATZINC%%lib/libortools_flatzinc.so.9
+%%FLATZINC%%lib/libortools_flatzinc.so.9.4.9999
 %%FLATZINC%%share/minizinc/ortools/fzn_all_different_int.mzn
 %%FLATZINC%%share/minizinc/ortools/fzn_circuit.mzn
 %%FLATZINC%%share/minizinc/ortools/fzn_cumulative.mzn
diff --git a/math/py-or-tools/Makefile b/math/py-or-tools/Makefile
index e7e82ab8849d..eabb247be4f7 100644
--- a/math/py-or-tools/Makefile
+++ b/math/py-or-tools/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	or-tools
 DISTVERSIONPREFIX=	v
-DISTVERSION=	9.2
-PORTREVISION=	5
+DISTVERSION=	9.4
 CATEGORIES=	math
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 
@@ -10,7 +9,7 @@ COMMENT=	Google's Operations Research tools (Python binding)
 WWW=		https://github.com/google/or-tools
 
 LICENSE=	APACHE20
-LICENSE_FILE=	${WRKSRC}/LICENSE-2.0.txt
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BROKEN_armv7=	SWIG wrapped code invalid in 32 bit architecture, regenerate code using -DSWIGWORDSIZE32
 BROKEN_i386=	SWIG wrapped code invalid in 32 bit architecture, regenerate code using -DSWIGWORDSIZE32 # see https://github.com/google/or-tools/issues/2130
@@ -19,6 +18,7 @@ PY_DEPENDS=	${PYNUMPY} \
 		${PYTHON_PKGNAMEPREFIX}absl-py>0:devel/py-absl-py@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}protobuf>0:devel/py-protobuf@${PY_FLAVOR}
 BUILD_DEPENDS=	${PY_DEPENDS} \
+		pybind11>0:devel/pybind11 \
 		protoc-gen-mypy:devel/py-mypy-protobuf@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \
@@ -28,7 +28,7 @@ LIB_DEPENDS=	libabsl_base.so:devel/abseil \
 		libCbc.so:math/cbc \
 		libCgl.so:math/cgl \
 		libcoinasl.so:math/asl \
-		libcoinmumps.so:math/ipopt \
+		libcoinmumps.so:math/coin-or-mumps \
 		libCoinUtils.so:math/coinutils \
 		libnauty.so:math/nauty \
 		libopenblas.so:math/openblas \
@@ -36,21 +36,24 @@ LIB_DEPENDS=	libabsl_base.so:devel/abseil \
 		libOsiClp.so:math/clp \
 		libgflags.so:devel/gflags \
 		libglog.so:devel/glog \
-		libprotobuf.so:devel/protobuf
+		libprotobuf.so:devel/protobuf \
+		libre2.so:devel/re2
 RUN_DEPENDS=	${PY_DEPENDS}
 
-USES=		blaslapack cmake:insource compiler:c++17-lang pkgconfig python:3.6+
-USE_PYTHON=	flavors
+USES=		blaslapack cmake:insource compiler:c++17-lang eigen:3 pkgconfig python:3.6+
+USE_PYTHON=	flavors pytest # tests fail, see https://github.com/google/or-tools/issues/3464
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	google
 
-CMAKE_OFF=	BUILD_DEPS INSTALL_BUILD_DEPS BUILD_TESTING BUILD_EXAMPLES
+CMAKE_OFF=	BUILD_DEPS BUILD_pybind11 INSTALL_BUILD_DEPS BUILD_TESTING BUILD_EXAMPLES
 CMAKE_ON=	BUILD_PYTHON
 CMAKE_ARGS=	-DSWIG_EXECUTABLE=${LOCALBASE}/bin/swig -DFREEBSD_PYTHON_VER=${PYTHON_VER}
 CONFIGURE_ENV=	UNIX_CBC_DIR=${LOCALBASE} UNIX_CLP_DIR=${LOCALBASE}
 BUILD_ENV=	UNIX_CBC_DIR=${LOCALBASE} UNIX_CLP_DIR=${LOCALBASE}
 
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
 OPTIONS_DEFINE=		SCIP
 
 SCIP_DESC=		Use the SCIP solver # SCIP package isn't built because of licensing restrictions
@@ -71,11 +74,11 @@ do-install: # by default cmake installs the whole or-tools project without the p
 		${RM} -rf ortools-*.dist-info
 	${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} -name "*.so" -o -name "*.so.*" | ${XARGS} ${STRIP_CMD}
 
-do-test: install
+run-examples: # one of the examples fail: https://github.com/google/or-tools/issues/3463
 .for e in arc_flow_cutting_stock_sat.py bus_driver_scheduling_sat.py cover_rectangle_sat.py cvrptw_plot.py qubo_sat.py # list is from examples/python/CMakeLists.txt
 	@cd ${WRKSRC}/examples/python && \
 		${ECHO} "==> Running ${PORTNAME} test ${e} ..." && \
-		${PYTHON_CMD} ${e} && \
+		${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${e} && \
 		${ECHO} "... test ${e} succeeded"
 .endfor
 
diff --git a/math/py-or-tools/distinfo b/math/py-or-tools/distinfo
index c08313ca51fe..f6d1e4ce1b01 100644
--- a/math/py-or-tools/distinfo
+++ b/math/py-or-tools/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1639979871
-SHA256 (google-or-tools-v9.2_GH0.tar.gz) = 5337935ea1fa010bb62cf0fc8bedd6de07dda77bff3db7a0f6a36c84c7bd58db
-SIZE (google-or-tools-v9.2_GH0.tar.gz) = 246278500
+TIMESTAMP = 1660356537
+SHA256 (google-or-tools-v9.4_GH0.tar.gz) = 180fbc45f6e5ce5ff153bea2df0df59b15346f2a7f8ffbd7cb4aed0fb484b8f6
+SIZE (google-or-tools-v9.4_GH0.tar.gz) = 14411489
diff --git a/math/py-or-tools/files/patch-ortools_python_setup.py.in b/math/py-or-tools/files/patch-ortools_python_setup.py.in
deleted file mode 100644
index b490847ca28a..000000000000
--- a/math/py-or-tools/files/patch-ortools_python_setup.py.in
+++ /dev/null
@@ -1,17 +0,0 @@
-See https://github.com/google/or-tools/issues/2305
-
---- ortools/python/setup.py.in.orig	2021-12-14 20:57:53 UTC
-+++ ortools/python/setup.py.in
-@@ -43,9 +43,9 @@ setup(
-     packages=find_packages(),
-     python_requires='>= 3.6',
-     install_requires=[
--        'absl-py >= 0.13',
--        'numpy >= 1.13.3',
--        'protobuf >= 3.19.1',
-+        #'absl-py >= 0.13',
-+        #'numpy >= 1.13.3',
-+        #'protobuf >= 3.19.1',
-     ],
-     package_data={
-         '@PROJECT_NAME@':[$<$<STREQUAL:$<TARGET_PROPERTY:@PYTHON_PROJECT@,TYPE>,SHARED_LIBRARY>:'.libs/*', '../$<TARGET_SONAME_FILE_NAME:@PYTHON_PROJECT@>'>],
diff --git a/math/py-or-tools/files/patch-tools_setup.py.in b/math/py-or-tools/files/patch-tools_setup.py.in
deleted file mode 100644
index 02afbb69eed0..000000000000
--- a/math/py-or-tools/files/patch-tools_setup.py.in
+++ /dev/null
@@ -1,17 +0,0 @@
-See https://github.com/google/or-tools/issues/2305
-
---- tools/setup.py.in.orig	2021-12-14 20:57:53 UTC
-+++ tools/setup.py.in
-@@ -43,9 +43,9 @@ setup(
-     packages=find_packages(),
-     python_requires='>= 3.6',
-     install_requires=[
--        'absl-py >= 0.13',
--        'numpy >= 1.13.3',
--        'protobuf >= 3.19.1',
-+        #'absl-py >= 0.13',
-+        #'numpy >= 1.13.3',
-+        #'protobuf >= 3.19.1',
-     ],
-     package_data={
-         'ortools.init' : ['_pywrapinit.dll', '*.pyi'],
diff --git a/math/py-or-tools/pkg-plist b/math/py-or-tools/pkg-plist
index 96a84666ba31..54da83336fa3 100644
--- a/math/py-or-tools/pkg-plist
+++ b/math/py-or-tools/pkg-plist
@@ -3,6 +3,9 @@
 %%PYTHON_SITELIBDIR%%/ortools/algorithms/__init__.py
 %%PYTHON_SITELIBDIR%%/ortools/algorithms/_pywrapknapsack_solver.so
 %%PYTHON_SITELIBDIR%%/ortools/algorithms/pywrapknapsack_solver.py
+%%PYTHON_SITELIBDIR%%/ortools/bop/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/bop/bop_parameters_pb2.py
+%%PYTHON_SITELIBDIR%%/ortools/bop/bop_parameters_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/constraint_solver/__init__.py
 %%PYTHON_SITELIBDIR%%/ortools/constraint_solver/_pywrapcp.so
 %%PYTHON_SITELIBDIR%%/ortools/constraint_solver/assignment_pb2.py
@@ -18,9 +21,15 @@
 %%PYTHON_SITELIBDIR%%/ortools/constraint_solver/search_stats_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/constraint_solver/solver_parameters_pb2.py
 %%PYTHON_SITELIBDIR%%/ortools/constraint_solver/solver_parameters_pb2.pyi
+%%PYTHON_SITELIBDIR%%/ortools/glop/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/glop/parameters_pb2.py
+%%PYTHON_SITELIBDIR%%/ortools/glop/parameters_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/graph/__init__.py
-%%PYTHON_SITELIBDIR%%/ortools/graph/_pywrapgraph.so
-%%PYTHON_SITELIBDIR%%/ortools/graph/pywrapgraph.py
+%%PYTHON_SITELIBDIR%%/ortools/graph/flow_problem_pb2.py
+%%PYTHON_SITELIBDIR%%/ortools/graph/python/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/graph/python/linear_sum_assignment%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/ortools/graph/python/max_flow%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/ortools/graph/python/min_cost_flow%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/ortools/init/__init__.py
 %%PYTHON_SITELIBDIR%%/ortools/init/_pywrapinit.so
 %%PYTHON_SITELIBDIR%%/ortools/init/pywrapinit.py
@@ -30,33 +39,41 @@
 %%PYTHON_SITELIBDIR%%/ortools/linear_solver/linear_solver_pb2.py
 %%PYTHON_SITELIBDIR%%/ortools/linear_solver/linear_solver_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/linear_solver/pywraplp.py
+%%PYTHON_SITELIBDIR%%/ortools/model_builder/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/model_builder/python/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/model_builder/python/model_builder.py
+%%PYTHON_SITELIBDIR%%/ortools/model_builder/python/model_builder_helper.py
+%%PYTHON_SITELIBDIR%%/ortools/model_builder/python/pywrap_model_builder_helper%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/ortools/packing/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/packing/multiple_dimensions_bin_packing_pb2.py
+%%PYTHON_SITELIBDIR%%/ortools/packing/multiple_dimensions_bin_packing_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/packing/vector_bin_packing_pb2.py
 %%PYTHON_SITELIBDIR%%/ortools/packing/vector_bin_packing_pb2.pyi
+%%PYTHON_SITELIBDIR%%/ortools/pdlp/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/pdlp/solve_log_pb2.py
+%%PYTHON_SITELIBDIR%%/ortools/pdlp/solve_log_pb2.pyi
+%%PYTHON_SITELIBDIR%%/ortools/pdlp/solvers_pb2.py
+%%PYTHON_SITELIBDIR%%/ortools/pdlp/solvers_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/sat/__init__.py
-%%PYTHON_SITELIBDIR%%/ortools/sat/_pywrapsat.so
 %%PYTHON_SITELIBDIR%%/ortools/sat/boolean_problem_pb2.py
-%%PYTHON_SITELIBDIR%%/ortools/sat/boolean_problem_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/sat/cp_model_pb2.py
-%%PYTHON_SITELIBDIR%%/ortools/sat/cp_model_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/sat/cp_model_service_pb2.py
-%%PYTHON_SITELIBDIR%%/ortools/sat/cp_model_service_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/sat/python/__init__.py
 %%PYTHON_SITELIBDIR%%/ortools/sat/python/cp_model.py
 %%PYTHON_SITELIBDIR%%/ortools/sat/python/cp_model_helper.py
+%%PYTHON_SITELIBDIR%%/ortools/sat/python/swig_helper%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/ortools/sat/python/visualization.py
-%%PYTHON_SITELIBDIR%%/ortools/sat/pywrapsat.py
 %%PYTHON_SITELIBDIR%%/ortools/sat/sat_parameters_pb2.py
-%%PYTHON_SITELIBDIR%%/ortools/sat/sat_parameters_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/scheduling/__init__.py
 %%PYTHON_SITELIBDIR%%/ortools/scheduling/_pywraprcpsp.so
+%%PYTHON_SITELIBDIR%%/ortools/scheduling/course_scheduling_pb2.py
+%%PYTHON_SITELIBDIR%%/ortools/scheduling/course_scheduling_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/scheduling/jobshop_scheduling_pb2.py
 %%PYTHON_SITELIBDIR%%/ortools/scheduling/jobshop_scheduling_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/scheduling/pywraprcpsp.py
 %%PYTHON_SITELIBDIR%%/ortools/scheduling/rcpsp_pb2.py
 %%PYTHON_SITELIBDIR%%/ortools/scheduling/rcpsp_pb2.pyi
 %%PYTHON_SITELIBDIR%%/ortools/util/__init__.py
-%%PYTHON_SITELIBDIR%%/ortools/util/_sorted_interval_list.so
 %%PYTHON_SITELIBDIR%%/ortools/util/optional_boolean_pb2.py
-%%PYTHON_SITELIBDIR%%/ortools/util/optional_boolean_pb2.pyi
-%%PYTHON_SITELIBDIR%%/ortools/util/sorted_interval_list.py
+%%PYTHON_SITELIBDIR%%/ortools/util/python/__init__.py
+%%PYTHON_SITELIBDIR%%/ortools/util/python/sorted_interval_list%%PYTHON_EXT_SUFFIX%%.so