diff --git a/ports/openmpi/keep_isystem.patch b/ports/openmpi/keep_isystem.patch deleted file mode 100644 index 9352e4ad129cf4..00000000000000 --- a/ports/openmpi/keep_isystem.patch +++ /dev/null @@ -1,283 +0,0 @@ -diff --git a/configure b/configure -index b2451c4..a7fb4da 100755 ---- a/configure -+++ b/configure -@@ -19562,6 +19562,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -19653,6 +19657,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -19759,6 +19767,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -19946,6 +19958,10 @@ $as_echo "$opal_cv_cc_wno_long_double" >&6; } - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -20127,6 +20143,10 @@ $as_echo "$opal_cv_cc_fno_strict_aliasing" >&6; } - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -20267,6 +20287,10 @@ $as_echo "$opal_cv_cc_restrict_cflags" >&6; } - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -26120,6 +26144,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -26297,6 +26325,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -26441,6 +26473,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -27799,6 +27835,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -27973,6 +28013,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -28117,6 +28161,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -44127,6 +44175,10 @@ fi - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -60612,6 +60664,10 @@ $as_echo_n "checking if intel compiler _Quad == REAL*16... " >&6; } - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -@@ -60842,6 +60898,10 @@ $as_echo_n "checking if gnu compiler __float128 == REAL*16... " >&6; } - opal_found=0 - opal_i=`expr $opal_count + 1` - ;; -+ -isystem) -+ opal_found=0 -+ opal_i=`expr $opal_count + 1` -+ ;; - --param) - opal_found=0 - opal_i=`expr $opal_count + 1` -diff --git a/opal/mca/pmix/pmix3x/pmix/configure b/opal/mca/pmix/pmix3x/pmix/configure -index 0326a68..07df146 100755 ---- a/opal/mca/pmix/pmix3x/pmix/configure -+++ b/opal/mca/pmix/pmix3x/pmix/configure -@@ -19386,6 +19386,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; } - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -19477,6 +19481,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; } - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -19583,6 +19591,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -19770,6 +19782,10 @@ $as_echo "$pmix_cv_cc_wno_long_double" >&6; } - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -19951,6 +19967,10 @@ $as_echo "$pmix_cv_cc_fno_strict_aliasing" >&6; } - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -20091,6 +20111,10 @@ $as_echo "$pmix_cv_cc_restrict_cflags" >&6; } - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -53914,6 +53938,10 @@ fi - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -54005,6 +54033,10 @@ fi - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -54096,6 +54128,10 @@ fi - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` -@@ -54187,6 +54223,10 @@ fi - pmix_found=0 - pmix_i=`expr $pmix_count + 1` - ;; -+ -isystem) -+ pmix_found=0 -+ pmix_i=`expr $pmix_count + 1` -+ ;; - --param) - pmix_found=0 - pmix_i=`expr $pmix_count + 1` diff --git a/ports/openmpi/portfile.cmake b/ports/openmpi/portfile.cmake index 4296b7a7d7a730..d1de564265bd3e 100644 --- a/ports/openmpi/portfile.cmake +++ b/ports/openmpi/portfile.cmake @@ -5,14 +5,12 @@ string(REGEX REPLACE [[^([0-9]+[.][0-9]+).*$]] [[\1]] OpenMPI_SHORT_VERSION "${V vcpkg_download_distfile(ARCHIVE URLS "https://download.open-mpi.org/release/open-mpi/v${OpenMPI_SHORT_VERSION}/openmpi-${VERSION}.tar.gz" FILENAME "openmpi-${VERSION}.tar.gz" - SHA512 25eb96116126641cd1c8fdccbd3c4b40cbdd7b1e8709ff629c6fca9ee58b566983e00e829c724952fca685a8d321b4dddf8691df08693a2ffee5f05b30e08058 + SHA512 a174b6ac6d286f378ccc7a1ac3500cdff3c7368eaa00c1b672f0a71452c2cbe7812e030796e62ebb09a3fffb0cb9d89fbc6798a80609079038e68c7b0d318923 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" - PATCHES - keep_isystem.patch ) vcpkg_find_acquire_program(PERL) @@ -36,13 +34,126 @@ vcpkg_make_configure( --with-hwloc=internal --with-libevent=internal --with-pmix=internal - --disable-mpi-fortran + --enable-mpi-fortran=no OPTIONS_DEBUG --enable-debug ) vcpkg_make_install() vcpkg_fixup_pkgconfig() +# hwloc-compress-dir and hwloc-gather-topology are generated from autoconf +# templates and may embed configure-time absolute paths. Rewrite the installed +# scripts to resolve companion tools from the script location instead of the +# build/package staging directory. +function(openmpi_fix_hwloc_script script_path script_dir_suffix) + if(NOT EXISTS "${script_path}") + return() + endif() + + file(READ "${script_path}" _script_contents) + + if(NOT _script_contents MATCHES [[(^|\n)script_dir=]]) + vcpkg_replace_string( + "${script_path}" + [[^(#![^\r\n]*)]] + [=[\1 +script_dir="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"]=] + REGEX + IGNORE_UNCHANGED + ) + endif() + + # POSIX shell parameter expansion: + # ${script_dir%/tools/openmpi/bin} + # strips the known suffix and gives the package root. + set(_prefix_expr "\${script_dir%/${script_dir_suffix}}") + + # bindir may have been configured as an absolute path to the installed + # script directory. Make it point to the directory containing this script. + vcpkg_replace_string( + "${script_path}" + "${CURRENT_PACKAGES_DIR}/${script_dir_suffix}" + [[${script_dir}]] + IGNORE_UNCHANGED + ) + + # prefix may also appear directly. Derive it from script_dir by stripping + # the known tools/openmpi/... suffix. + vcpkg_replace_string( + "${script_path}" + "${CURRENT_PACKAGES_DIR}" + "${_prefix_expr}" + IGNORE_UNCHANGED + ) + + # Remove any remaining build-machine paths that are not meaningful at + # runtime and would fail vcpkg's absolute path validation. + foreach(abs_path IN ITEMS + "${CURRENT_BUILDTREES_DIR}" + "${CURRENT_INSTALLED_DIR}" + "${DOWNLOADS}" + ) + if(NOT abs_path STREQUAL "") + vcpkg_replace_string( + "${script_path}" + "${abs_path}" + "" + IGNORE_UNCHANGED + ) + endif() + endforeach() +endfunction() + +openmpi_fix_hwloc_script( + "${CURRENT_PACKAGES_DIR}/tools/openmpi/bin/hwloc-compress-dir" + "tools/openmpi/bin" +) +openmpi_fix_hwloc_script( + "${CURRENT_PACKAGES_DIR}/tools/openmpi/bin/hwloc-gather-topology" + "tools/openmpi/bin" +) + +openmpi_fix_hwloc_script( + "${CURRENT_PACKAGES_DIR}/tools/openmpi/debug/bin/hwloc-compress-dir" + "tools/openmpi/debug/bin" +) +openmpi_fix_hwloc_script( + "${CURRENT_PACKAGES_DIR}/tools/openmpi/debug/bin/hwloc-gather-topology" + "tools/openmpi/debug/bin" +) + +# pmix_config.h records the configure command line, which contains +# build-machine paths. This information is not needed by consumers, so redact +# it from the installed header instead of suppressing the absolute path check. +foreach(dir IN ITEMS "" "debug/") + set(pmix_config "${CURRENT_PACKAGES_DIR}/${dir}include/pmix/src/include/pmix_config.h") + if(EXISTS "${pmix_config}") + vcpkg_replace_string( + "${pmix_config}" + [[#define PMIX_CONFIGURE_CLI[^\r\n]*]] + [[#define PMIX_CONFIGURE_CLI "redacted by vcpkg"]] + REGEX + IGNORE_UNCHANGED + ) + + foreach(abs_path IN ITEMS + "${CURRENT_PACKAGES_DIR}" + "${CURRENT_BUILDTREES_DIR}" + "${CURRENT_INSTALLED_DIR}" + "${DOWNLOADS}" + ) + if(NOT abs_path STREQUAL "") + vcpkg_replace_string( + "${pmix_config}" + "${abs_path}" + "VCPKG_REDACTED_PATH" + IGNORE_UNCHANGED + ) + endif() + endforeach() + endif() +endforeach() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") diff --git a/ports/openmpi/vcpkg.json b/ports/openmpi/vcpkg.json index 2ab64864dc6a85..bcecf3caf3a62a 100644 --- a/ports/openmpi/vcpkg.json +++ b/ports/openmpi/vcpkg.json @@ -1,6 +1,6 @@ { "name": "openmpi", - "version": "4.1.8", + "version": "5.0.10", "description": "The Open MPI Project is an open source Message Passing Interface implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.", "homepage": "https://www.open-mpi.org/", "supports": "!windows", diff --git a/versions/baseline.json b/versions/baseline.json index 987ec63f8b9d49..f18f0f0616a292 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -7377,7 +7377,7 @@ "port-version": 0 }, "openmpi": { - "baseline": "4.1.8", + "baseline": "5.0.10", "port-version": 0 }, "openmvg": { diff --git a/versions/o-/openmpi.json b/versions/o-/openmpi.json index 67462eaa115f9a..d9ac32de6ca315 100644 --- a/versions/o-/openmpi.json +++ b/versions/o-/openmpi.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c41be0149d4e7042a05d9581491e42d01fed608a", + "version": "5.0.10", + "port-version": 0 + }, { "git-tree": "72fb28e830e8fbfb52a524fcdeaea95850d32a58", "version": "4.1.8",