diff --git a/VERSION b/VERSION index d6b09623cf..27c3ece6ca 100644 --- a/VERSION +++ b/VERSION @@ -22,7 +22,7 @@ release=0 # PRRTE required dependency versions. # List in x.y.z format. -pmix_min_version=6.0.1 +pmix_min_version=6.1.0 hwloc_min_version=2.1.0 pmix_max_version=1000.0.0 hwloc_min_version=1.11.0 diff --git a/configure.ac b/configure.ac index 2852411098..fdd145f8ba 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ # Copyright (c) 2016-2017 IBM Corporation. All rights reserved. # Copyright (c) 2018-2022 Amazon.com, Inc. or its affiliates. # All Rights reserved. -# Copyright (c) 2021-2025 Nanook Consulting All rights reserved. +# Copyright (c) 2021-2026 Nanook Consulting All rights reserved. # Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. # Copyright (c) 2023-2024 Jeffrey M. Squyres. All rights reserved. # $COPYRIGHT$ @@ -554,7 +554,7 @@ PRTE_SEARCH_LIBS_CORE([socket], [socket]) # Darwin doesn't need -lm, as it's a symlink to libSystem.dylib PRTE_SEARCH_LIBS_CORE([ceil], [m]) -AC_CHECK_FUNCS([asprintf snprintf vasprintf vsnprintf fork setsid strsignal syslog setpgid fileno_unlocked]) +AC_CHECK_FUNCS([asprintf snprintf vasprintf vsnprintf fork setsid strsignal syslog setpgid fileno_unlocked isatty]) # On some hosts, htonl is a define, so the AC_CHECK_FUNC will get # confused. On others, it's in the standard library, but stubbed with diff --git a/docs/man/man1/prte_info.1.rst b/docs/man/man1/prte_info.1.rst index 9eb027723e..300255bee3 100644 --- a/docs/man/man1/prte_info.1.rst +++ b/docs/man/man1/prte_info.1.rst @@ -3,27 +3,133 @@ prte_info ========= -prte_info |mdash| Provide detailed information on your PRRTE installation +.. include_body + +prte_info |mdash| Display information about the PRRTE installation SYNOPSIS -------- -.. code:: sh +``prte_info [options]`` - prte_info ...options... DESCRIPTION ----------- -``prte_info`` provide detailed information on your PMIx Reference Run -Time (PRRTE) installation. +``prte_info`` provides detailed information about the PRRTE +installation. It can be useful for at least three common scenarios: + +#. Checking local configuration and seeing how PRRTE was installed. + +#. Submitting bug reports / help requests to the PRRTE community + (see :doc:`Getting help `). + +#. Seeing a list of installed PRRTE plugins and querying what MCA + parameters they support. + + +OPTIONS +------- + +``prte_info`` accepts the following options: + +* ``-h`` | ``--help ``: Show help message. If the optional + argument is not provided, then a generalized help message similar + to the information provided here is returned. If an argument is + provided, then a more detailed help message for that specific + command line option is returned. + +* ``-v`` | ``--verbose``: Enable debug output. + +* ``-V`` | ``--version``: Print version and exit. + +* ``-a`` | ``--all``: Show all configuration options and MCA + parameters. + +* ``--arch``: Show architecture on which PRRTE was compiled. + +* ``-c`` | ``--config``: Show configuration options + +* ``--hostname``: Show the hostname on which PRRTE was configured + and built. + +* ``--internal``: Show internal MCA parameters (not meant to be + modified by users). + +* ``--param :,``: Show MCA parameters. The first + parameter is the framework (or the keyword "all"); the second parameter + is a comma-delimited list of specific component names (if only + is given, then all components will be reported). + +* ``--path ``: Show paths that PRRTE was configured + with. Accepts the following parameters: ``all``, ``prefix``, ``bindir``, + ``libdir``, ``incdir``, ``pkglibdir``, ``sysconfdir``. + +* ``--pretty-print``: When used in conjunction with other parameters, the output is + displayed in "prettyprint" format (default) + +* ``--parsable``: When used in conjunction with other parameters, the output is + displayed in a machine-parsable format + +* ``--parseable``: Synonym for ``--parsable`` + +* ``--color ``: Control color coding: auto (default), never, always + +* ``--show-failed``: Show the components that failed to load along with the reason why they failed + +* ``--selected-only``: Show only variables from selected components. + + +EXIT STATUS +----------- + +Returns 0 if successful, non-zero if an error is encountered + +EXAMPLES +-------- + +Examples of using this command. + +Show the default output of options and listing of installed +components in a human-readable / prettyprint format: + +.. code-block:: + + prte_info + +Show the default output of options and listing of installed components +in a machine-parsable format: + +.. code-block:: + + prte_info --parsable + +Show the MCA parameters of the "lsf" RMAPS component in a +human-readable / prettyprint format: + +.. code-block:: + + prte_info --param rmaps lsf + +Show the "bindir" that PRRTE was configured with: + +.. code-block:: + + prte_info --path bindir + +Show the version of PRRTE version numbers in a prettyprint format: + +.. code-block:: + + prte_info --version + +Show *all* information about the PRRTE installation, including all +components that can be found, all the MCA parameters that they support, +versions of PRRTE and the components, etc.: -Extensive help documentation for this command is provided through -``prte_info --help [topic]``. +.. code-block:: -At least for now, that content is not available in man page form. -Pull requests to add all the content (via repeatable infrastructure) -would be greatly appreciated. + prte_info --all .. seealso:: :ref:`prte(1) ` diff --git a/src/mca/prteinstalldirs/base/prteinstalldirs_base_components.c b/src/mca/prteinstalldirs/base/prteinstalldirs_base_components.c index db5579ede1..c557141bba 100644 --- a/src/mca/prteinstalldirs/base/prteinstalldirs_base_components.c +++ b/src/mca/prteinstalldirs/base/prteinstalldirs_base_components.c @@ -6,7 +6,7 @@ * Copyright (c) 2015-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. - * Copyright (c) 2021-2022 Nanook Consulting. All rights reserved. + * Copyright (c) 2021-2026 Nanook Consulting All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,7 +23,7 @@ #include "src/mca/prteinstalldirs/base/static-components.h" #include "src/mca/prteinstalldirs/prteinstalldirs.h" -prte_install_dirs_t prte_install_dirs = {0}; +pmix_pinstall_dirs_t prte_install_dirs = {0}; #define CONDITIONAL_COPY(target, origin, field) \ do { \ @@ -63,9 +63,9 @@ static int prte_prteinstalldirs_base_open(pmix_mca_base_open_flag_t flags) CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, includedir); CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, infodir); CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, mandir); - CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, prtedatadir); - CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, prtelibdir); - CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, prteincludedir); + CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, pmixdatadir); + CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, pmixlibdir); + CONDITIONAL_COPY(prte_install_dirs, component->install_dirs_data, pmixincludedir); } /* expand out all the fields */ @@ -85,10 +85,10 @@ static int prte_prteinstalldirs_base_open(pmix_mca_base_open_flag_t flags) prte_install_dirs.includedir = prte_install_dirs_expand_setup(prte_install_dirs.includedir); prte_install_dirs.infodir = prte_install_dirs_expand_setup(prte_install_dirs.infodir); prte_install_dirs.mandir = prte_install_dirs_expand_setup(prte_install_dirs.mandir); - prte_install_dirs.prtedatadir = prte_install_dirs_expand_setup(prte_install_dirs.prtedatadir); - prte_install_dirs.prtelibdir = prte_install_dirs_expand_setup(prte_install_dirs.prtelibdir); - prte_install_dirs.prteincludedir = prte_install_dirs_expand_setup( - prte_install_dirs.prteincludedir); + prte_install_dirs.pmixdatadir = prte_install_dirs_expand_setup(prte_install_dirs.pmixdatadir); + prte_install_dirs.pmixlibdir = prte_install_dirs_expand_setup(prte_install_dirs.pmixlibdir); + prte_install_dirs.pmixincludedir = prte_install_dirs_expand_setup( + prte_install_dirs.pmixincludedir); #if 0 fprintf(stderr, "prefix: %s\n", prte_install_dirs.prefix); @@ -132,9 +132,9 @@ static int prte_prteinstalldirs_base_close(void) free(prte_install_dirs.includedir); free(prte_install_dirs.infodir); free(prte_install_dirs.mandir); - free(prte_install_dirs.prtedatadir); - free(prte_install_dirs.prtelibdir); - free(prte_install_dirs.prteincludedir); + free(prte_install_dirs.pmixdatadir); + free(prte_install_dirs.pmixlibdir); + free(prte_install_dirs.pmixincludedir); memset(&prte_install_dirs, 0, sizeof(prte_install_dirs)); return pmix_mca_base_framework_components_close(&prte_prteinstalldirs_base_framework, NULL); diff --git a/src/mca/prteinstalldirs/base/prteinstalldirs_base_expand.c b/src/mca/prteinstalldirs/base/prteinstalldirs_base_expand.c index 541252e6c5..c5bfe74b21 100644 --- a/src/mca/prteinstalldirs/base/prteinstalldirs_base_expand.c +++ b/src/mca/prteinstalldirs/base/prteinstalldirs_base_expand.c @@ -6,7 +6,7 @@ * Copyright (c) 2010 Sandia National Laboratories. All rights reserved. * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved. * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. - * Copyright (c) 2021-2022 Nanook Consulting. All rights reserved. + * Copyright (c) 2021-2026 Nanook Consulting All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -142,9 +142,9 @@ static char *prte_install_dirs_expand_internal(const char *input, bool is_setup) EXPAND_STRING(includedir); EXPAND_STRING(infodir); EXPAND_STRING(mandir); - EXPAND_STRING2(prtedatadir, pkgdatadir); - EXPAND_STRING2(prtelibdir, pkglibdir); - EXPAND_STRING2(prteincludedir, pkgincludedir); + EXPAND_STRING2(pmixdatadir, pkgdatadir); + EXPAND_STRING2(pmixlibdir, pkglibdir); + EXPAND_STRING2(pmixincludedir, pkgincludedir); } while (changed); } diff --git a/src/mca/prteinstalldirs/config/prte_installdirs_config.c b/src/mca/prteinstalldirs/config/prte_installdirs_config.c index 69d4f71fd5..d827418e98 100644 --- a/src/mca/prteinstalldirs/config/prte_installdirs_config.c +++ b/src/mca/prteinstalldirs/config/prte_installdirs_config.c @@ -5,7 +5,7 @@ * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved - * Copyright (c) 2021-2025 Nanook Consulting All rights reserved. + * Copyright (c) 2021-2026 Nanook Consulting All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,6 +31,8 @@ const prte_prteinstalldirs_base_component_t prte_mca_prteinstalldirs_config_comp }, + /* Next the pmix_install_dirs_t install_dirs_data information */ + .install_dirs_data = { PRTE_PREFIX, PRTE_EXEC_PREFIX, diff --git a/src/mca/prteinstalldirs/env/prte_installdirs_env.c b/src/mca/prteinstalldirs/env/prte_installdirs_env.c index 4cd87d3563..e2d1e51096 100644 --- a/src/mca/prteinstalldirs/env/prte_installdirs_env.c +++ b/src/mca/prteinstalldirs/env/prte_installdirs_env.c @@ -5,7 +5,7 @@ * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2021-2025 Nanook Consulting All rights reserved. + * Copyright (c) 2021-2026 Nanook Consulting All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -37,7 +37,7 @@ prte_prteinstalldirs_base_component_t prte_mca_prteinstalldirs_env_component = { /* Component open and close functions */ .pmix_mca_open_component = prteinstalldirs_env_open }, - /* Next the prte_install_dirs_t install_dirs_data information */ + /* Next the pmix_install_dirs_t install_dirs_data information */ .install_dirs_data = { .prefix = NULL, @@ -54,9 +54,9 @@ prte_prteinstalldirs_base_component_t prte_mca_prteinstalldirs_env_component = { .includedir = NULL, .infodir = NULL, .mandir = NULL, - .prtedatadir = NULL, - .prtelibdir = NULL, - .prteincludedir = NULL, + .pmixdatadir = NULL, + .pmixlibdir = NULL, + .pmixincludedir = NULL, }, }; PMIX_MCA_BASE_COMPONENT_INIT(prte, prteinstalldirs, env) @@ -86,9 +86,9 @@ static int prteinstalldirs_env_open(void) SET_FIELD(includedir, "PRTE_INCLUDEDIR"); SET_FIELD(infodir, "PRTE_INFODIR"); SET_FIELD(mandir, "PRTE_MANDIR"); - SET_FIELD(prtedatadir, "PRTE_PKGDATADIR"); - SET_FIELD(prtelibdir, "PRTE_PKGLIBDIR"); - SET_FIELD(prteincludedir, "PRTE_PKGINCLUDEDIR"); + SET_FIELD(pmixdatadir, "PRTE_PKGDATADIR"); + SET_FIELD(pmixlibdir, "PRTE_PKGLIBDIR"); + SET_FIELD(pmixincludedir, "PRTE_PKGINCLUDEDIR"); return PRTE_SUCCESS; } diff --git a/src/mca/prteinstalldirs/prteinstalldirs.h b/src/mca/prteinstalldirs/prteinstalldirs.h index 7f2f1b41fe..1d90242139 100644 --- a/src/mca/prteinstalldirs/prteinstalldirs.h +++ b/src/mca/prteinstalldirs/prteinstalldirs.h @@ -4,7 +4,7 @@ * reserved. * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved - * Copyright (c) 2021-2023 Nanook Consulting. All rights reserved. + * Copyright (c) 2021-2026 Nanook Consulting All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,37 +19,13 @@ #include "src/pmix/pmix-internal.h" #include "src/mca/base/pmix_base.h" +#include "src/mca/pinstalldirs/pinstalldirs_types.h" #include "src/mca/mca.h" BEGIN_C_DECLS -/* - * Most of this file is just for ompi_info. The only public interface - * once prte_init has been called is the prte_install_dirs structure - * and the prte_install_dirs_expand() call */ -struct prte_install_dirs_t { - char *prefix; - char *exec_prefix; - char *bindir; - char *sbindir; - char *libexecdir; - char *datarootdir; - char *datadir; - char *sysconfdir; - char *sharedstatedir; - char *localstatedir; - char *libdir; - char *includedir; - char *infodir; - char *mandir; - char *prtedatadir; - char *prtelibdir; - char *prteincludedir; -}; -typedef struct prte_install_dirs_t prte_install_dirs_t; - /* Install directories. Only available after prte_init() */ -PRTE_EXPORT extern prte_install_dirs_t prte_install_dirs; +PRTE_EXPORT extern pmix_pinstall_dirs_t prte_install_dirs; /** * Expand out path variables (such as ${prefix}) in the input string @@ -63,7 +39,7 @@ struct prte_prteinstalldirs_base_component_2_0_0_t { /** MCA base component */ pmix_mca_base_component_t component; /** install directories provided by the given component */ - prte_install_dirs_t install_dirs_data; + pmix_pinstall_dirs_t install_dirs_data; }; /** * Convenience typedef diff --git a/src/mca/schizo/prte/help-prte-info.txt b/src/mca/schizo/prte/help-prte-info.txt index e00e111226..c37c5fbbd7 100644 --- a/src/mca/schizo/prte/help-prte-info.txt +++ b/src/mca/schizo/prte/help-prte-info.txt @@ -1,6 +1,6 @@ # -*- text -*- # -# Copyright (c) 2025 Nanook Consulting All rights reserved. +# Copyright (c) 2025-2026 Nanook Consulting All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -9,6 +9,12 @@ # # This is the US/English general help file for PRTE's hwloc support. # +[version] + +%s (%s) %s + +Report bugs to %s +# [usage] %s (%s) %s @@ -24,6 +30,21 @@ option to the help request as "--help