Compare commits

..

No commits in common. 'cs10' and 'c9' have entirely different histories.
cs10 ... c9

2
.gitignore vendored

@ -1 +1 @@
SOURCES/pmix-4.2.8.tar.bz2
SOURCES/pmix-3.2.3.tar.bz2

@ -1 +1 @@
7935694addcc28a05707dd1298a57e04ec8890af SOURCES/pmix-4.2.8.tar.bz2
97978abcd4da1b2a3d2bf2452247c4d47f8cc6a3 SOURCES/pmix-3.2.3.tar.bz2

@ -1,42 +0,0 @@
From 83dc94bf8da119057f543a12e4432aa48cd44e20 Mon Sep 17 00:00:00 2001
From: Ralph Castain <rhc@pmix.org>
Date: Tue, 19 Dec 2023 15:11:21 -0700
Subject: [PATCH] Cast a few parameters when translating macros to functions
When we made the transition from macros to functions, we
were forced to move things that went on the left side of
an `=` sign to being addresses of params to the function
call. Compilers are getting increasinly picky about matching
parameter types, so cast a few that might cause trouble.
Signed-off-by: Ralph Castain <rhc@pmix.org>
---
include/pmix_deprecated.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/pmix_deprecated.h b/include/pmix_deprecated.h
index 0530123309..6ec00ac310 100644
--- a/include/pmix_deprecated.h
+++ b/include/pmix_deprecated.h
@@ -520,10 +520,10 @@ PMIX_EXPORT pmix_info_t* PMIx_Info_list_get_info(void *ptr, void *prev, void **n
(r) = PMIx_Argv_count(a)
#define PMIX_ARGV_APPEND(r, a, b) \
- (r) = PMIx_Argv_append_nosize(&(a), (b))
+ (r) = PMIx_Argv_append_nosize((char***)&(a), (b))
#define PMIX_ARGV_PREPEND(r, a, b) \
- (r) = PMIx_Argv_prepend_nosize(&(a), b)
+ (r) = PMIx_Argv_prepend_nosize((char***)&(a), b)
#define PMIX_ARGV_APPEND_UNIQUE(r, a, b) \
(r) = PMIx_Argv_append_unique_nosize(a, b)
@@ -892,7 +892,7 @@ PMIX_EXPORT pmix_info_t* PMIx_Info_list_get_info(void *ptr, void *prev, void **n
PMIx_Data_buffer_load(b, d, s)
#define PMIX_DATA_BUFFER_UNLOAD(b, d, s) \
- PMIx_Data_buffer_unload(b, &(d), &(s))
+ PMIx_Data_buffer_unload(b, (char**)&(d), (size_t*)&(s))
#define PMIX_PROC_CREATE(m, n) \
(m) = PMIx_Proc_create(n)

@ -1,242 +0,0 @@
#
# Copyright (c) 2020 Intel, Inc. All rights reserved.
# Copyright (c) 2020-2022 Cisco Systems, Inc. All rights reserved
# Copyright (c) 2021-2023 Nanook Consulting. All rights reserved.
# Copyright (c) 2022 Triad National Security, LLC. All rights reserved.
# $COPYRIGHT$
#
# Construct a dictionary for translating attributes to/from
# their defined name and their string representation - used
# by tools to interpret user input
#
from __future__ import print_function
import os
import os.path
import sys
from optparse import OptionParser, OptionGroup
index = 0
def harvest_constants(options, path, constants):
global index
# open the file
try:
inputfile = open(path, "r")
except Exception as e:
print("File {path} could not be opened: {e}"
.format(path=path, e=e))
return 1
# read the file - these files aren't too large
# so ingest the whole thing at one gulp
try:
lines = inputfile.readlines()
except Exception as e:
print("Error reading file {path}: {e}"
.format(path=path, e=e))
inputfile.close()
return 1
inputfile.close() # we read everything, so done with the file
firstline = True
# find the start of the event codes
n = 0
found = False
while n < len(lines):
if "PMIX ERROR CONSTANTS" in lines[n]:
found = True
n = n + 1
break;
n = n + 1
# error out if not found
if not found:
print("START OF EVENT CODES NOT FOUND")
return 1
# loop over the lines
while n < len(lines):
line = lines[n]
# remove white space at front and back
myline = line.strip()
# remove comment lines
if "/*" in myline or "*/" in myline or myline.startswith("*"):
n = n + 1
continue
# if we have found the end of the event codes, we are done
if "PMIX_EXTERNAL_ERR_BASE" in myline or "PMIX_ERR_SYS_BASE" in myline or "PMIX_INTERNAL_ERR_DONE" in myline:
return 0
# skip a well-known macro
if "PMIX_SYSTEM_EVENT" in myline:
n = n + 2
continue
# if the line starts with #define, then we want it
if not myline.startswith("#define"):
n = n + 1
continue
value = myline[8:]
tokens = value.split()
if not firstline:
constants.write(",\n\n")
firstline = False
constants.write(" {.index = " + str(index) + ", .name = \"" + tokens[0] + "\", .code = " + str(tokens[1]) + "}")
index = index + 1
n = n + 1
return 0
def _write_header(options, base_path, num_elements):
contents = '''/*
* This file is autogenerated by construct_event_strings.py.
* Do not edit this file by hand.
*/
#include "src/include/pmix_config.h"
#include "src/include/pmix_globals.h"
#include "include/pmix_common.h"
#ifndef PMIX_EVENT_STRINGS_H
#define PMIX_EVENT_STRINGS_H
BEGIN_C_DECLS
PMIX_EXPORT extern const pmix_event_string_t pmix_event_strings[{ne}];
#define PMIX_EVENT_INDEX_BOUNDARY {nem1}
END_C_DECLS
#endif\n
'''.format(ne=num_elements, nem1=num_elements - 1)
if options.dryrun:
constants = sys.stdout
outpath = None
else:
outpath = os.path.join(base_path, "pmix_event_strings.h")
try:
constants = open(outpath, "w+")
except Exception as e:
print("{outpath} CANNOT BE OPENED - EVENT STRINGS COULD NOT BE CONSTRUCTED: {e}"
.format(outpath=outpath, e=e))
return 1
constants.write(contents)
constants.close()
return 0
def main():
parser = OptionParser("usage: %prog [options]")
debugGroup = OptionGroup(parser, "Debug Options")
debugGroup.add_option("--dryrun",
action="store_true", dest="dryrun", default=False,
help="Show output to screen")
parser.add_option_group(debugGroup)
(options, args) = parser.parse_args()
# Find the top-level PMIx source tree dir.
# Start with the location of this script, which we know is in
# $top_srcdir/contrib.
top_src_dir = os.path.dirname(sys.argv[0])
top_src_dir = os.path.join(top_src_dir, "..")
top_src_dir = os.path.abspath(top_src_dir)
# Sanity check
checkfile = os.path.join(top_src_dir, "VERSION")
if not os.path.exists(checkfile):
print("ERROR: Could not find top source directory for Open PMIx")
return 1
source_include_dir = os.path.join(top_src_dir, "include")
util_include_dir = os.path.join(top_src_dir, "src", "util")
# This script is invoked from src/include/Makefile.am, and
# therefore the cwd will be $(builddir)/src/include. Verify this
# by checking for a file that we know should be in there.
build_src_include_dir = os.getcwd()
checkfile = os.path.join(build_src_include_dir, "pmix_config.h")
if not os.path.exists(checkfile):
print("ERROR: Could not find build directory for Open PMIx")
return 1
if options.dryrun:
constants = sys.stdout
outpath = None
else:
outpath = os.path.join(build_src_include_dir, "pmix_event_strings.c")
try:
constants = open(outpath, "w+")
except Exception as e:
print("{outpath} CANNOT BE OPENED - EVENT STRINGS COULD NOT BE CONSTRUCTED: {e}"
.format(outpath=outpath, e=e))
return 1
# write the source file
constants.write("""/*
* This file is autogenerated by construct_event_strings.py.
* Do not edit this file by hand.
*/
#include "src/include/pmix_event_strings.h"
const pmix_event_string_t pmix_event_strings[] = {
""")
# scan across the header files in the src directory
# looking for events
# pmix_common.h.in is in the src tree
rc = harvest_constants(options,
os.path.join(source_include_dir, "pmix_common.h.in"),
constants)
if 0 != rc:
constants.close()
if outpath:
os.remove(outpath)
print("HARVEST PMIX_COMMON FAILED - EVENT STRINGS COULD NOT BE CONSTRUCTED")
return 1
constants.write(",\n\n")
# pmix_deprecated.h is in the source tree
rc = harvest_constants(options,
os.path.join(source_include_dir, "pmix_deprecated.h"),
constants)
if 0 != rc:
constants.close()
if outpath:
os.remove(outpath)
print("HARVEST PMIX_DEPRECATED FAILED - EVENT STRINGS COULD NOT BE CONSTRUCTED")
return 1
constants.write(",\n\n")
# pmix_error.h is in the source tree
rc = harvest_constants(options,
os.path.join(util_include_dir, "pmix_error.h"),
constants)
if 0 != rc:
constants.close()
if outpath:
os.remove(outpath)
print("HARVEST PMIX_ERROR FAILED - EVENT STRINGS COULD NOT BE CONSTRUCTED")
return 1
# mark the end of the array
constants.write(""",\n
{.index = UINT32_MAX, .name = "", .code = -1}
};
""")
constants.write("\n")
constants.close()
# write the header
return _write_header(options, build_src_include_dir, index + 1)
if __name__ == '__main__':
exit(main())

@ -1,13 +1,10 @@
Name: pmix
Version: 4.2.8
Version: 3.2.3
Release: 3%{?dist}
Summary: Process Management Interface Exascale (PMIx)
License: BSD-3-Clause
License: BSD
URL: https://pmix.org/
Source0: https://github.com/openpmix/openpmix/releases/download/v%{version}/%{name}-%{version}.tar.bz2
# file missing from release
Source1: construct_event_strings.py
Patch1: https://github.com/openpmix/openpmix/pull/3245.patch
Source0: https://github.com/pmix/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.bz2
BuildRequires: autoconf
BuildRequires: automake
@ -19,9 +16,6 @@ BuildRequires: libtool
BuildRequires: make
BuildRequires: munge-devel
BuildRequires: perl-interpreter
BuildRequires: zlib-devel
ExcludeArch: %{ix86}
%description
The Process Management Interface (PMI) has been used for quite some time as
@ -45,11 +39,26 @@ scalability.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-tools%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%package pmi
Summary: The %{name} implementation of libpmi and libpmi2
Requires: %{name}%{?_isa} = %{version}-%{release}
Conflicts: slurm-pmi
%description pmi
The %{name}-pmi package contains the %{name} implementation of
the libpmi and libpmi2 backward-compatibility libraries.
%package pmi-devel
Summary: Development files for %{name}-pmi
Requires: %{name}-pmi%{?_isa} = %{version}-%{release}
Conflicts: slurm-pmi-devel
%description pmi-devel
The %{name}-pmi-devel package contains the development files for
the libpmi and libpmi2 backward-compatibility libraries.
%package tools
Summary: Tools for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
@ -62,23 +71,20 @@ based starters (e.g., mpirun).
* pevent - inject an event into the system
%prep
%autosetup -p1
cp %{S:1} contrib/
%setup -q -n %{name}-%{version}
# touch lexer sources to recompile them
find src -name \*.l -print -exec touch --no-create {} \;
%build
export CFLAGS="%{build_cflags} -Wno-unused-function -Wno-attributes"
%{_builddir}/%{name}-%{version}/autogen.pl
%configure \
--prefix=%{_prefix} \
--sysconfdir=%{_sysconfdir}/%{name} \
--disable-static \
--disable-silent-rules \
--enable-wrapper-rpath=no \
--enable-wrapper-runpath=no \
--enable-ipv6 \
--enable-shared \
--enable-pmi-backward-compatibility \
--with-munge
%make_build
@ -97,93 +103,42 @@ find %{buildroot} -name '*.la' | xargs rm -f
%files
%license LICENSE
%doc README.md
%doc README
%dir %{_datadir}/%{name}
%dir %{_libdir}/%{name}
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/*.conf
%{_datadir}/%{name}/*.txt
%{_libdir}/libmca_common_dstore.so.1*
%{_libdir}/libpmix.so.2*
%{_libdir}/%{name}/*.so
%{_mandir}/man1/*.1*
%{_mandir}/man5/*.5*
%files devel
%{_datadir}/%{name}/*.supp
%{_includedir}/pmix*.h
%{_includedir}/pmix/
%{_libdir}/libmca_common_dstore.so
%{_libdir}/libpmix.so
%{_libdir}/pkgconfig/*.pc
%{_docdir}/%{name}/
%{_mandir}/man3/*.3*
%files pmi
%{_libdir}/libpmi.so.1*
%{_libdir}/libpmi2.so.1*
%files pmi-devel
%{_includedir}/{pmi,pmi2}.h
%{_libdir}/libpmi.so
%{_libdir}/libpmi2.so
%files tools
%{_bindir}/*
%changelog
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 4.2.8-3
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Sérgio Basto <sergio@serjux.com> - 4.2.8-1
- Update pmix to 4.2.8
- Exclude ix86, configure: abort in 32-bit environments
https://github.com/openpmix/openpmix/pull/2892
and Open MPI v5.0.x does not support 32 bit
https://github.com/open-mpi/ompi/issues/11248
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
- Fix GCC-14 new errors (https://github.com/openpmix/openpmix/pull/3245)
* Fri Oct 27 2023 Orion Poplawski <orion@nwra.com> - 4.2.7-1
- Update to 4.2.7
- Enable IPv6 support
- Disable wrapper rpath
* Thu Sep 14 2023 Michel Lind <salimma@fedoraproject.org> - 4.1.3-1
- Fix CVE-2023-41915
- Update upstream source URL; pmix/pmix redirects to openpmix/openpmix
- Use SPDX license identifier
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sun May 15 2022 Philip Kovacs <pkfed@fedoraproject.org> - 4.1.2-2
- Add pmix-tools dependency to pmix-devel (e.g. for pmixcc)
* Sat Feb 12 2022 Philip Kovacs <pkfed@fedoraproject.org> - 4.1.2-1
- Update to 4.1.2
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-0.2.rc6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jan 14 2022 Philip Kovacs <pkfed@fedoraproject.org> - 4.1.1-0.1.rc6
- Update to 4.1.1rc6
* Sun Nov 7 2021 Philip Kovacs <pkfed@fedoraproject.org> - 4.1.1-0.1.rc5
- Update to 4.1.1rc5
* Tue Oct 12 2021 Philip Kovacs <pkfed@fedoraproject.org> - 4.1.1-0.1.rc4
- Update to 4.1.1rc4
* Mon Oct 11 2021 Philip Kovacs <pkfed@fedoraproject.org> - 4.1.0-2
- Add zlib support
* Fri Oct 08 2021 Philip Kovacs <pkfed@fedoraproject.org> - 4.1.0-1
- Update to 4.1.0
- Remove pmix v1/2 backward compatibility subpackages
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.2.3-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.2.3-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Feb 16 2021 Philip Kovacs <pkfed@fedoraproject.org> - 3.2.3-1
* Update to 3.2.3

Loading…
Cancel
Save