Merged
Conversation
Getting into an odd situation where Sphinx is spewing errors and warnings due to deprecated packages. Try to find a path to something workable - somewhat frustrating as the Sphinx site admits to the problems, but basically saids they don't care, just poke around until you find a "good" combination. Signed-off-by: Ralph Castain <rhc@pmix.org> (cherry picked from commit 27ab19f)
Some code which was only valid using GNU bash was included. Detected in Gentoo packaging via: ``` * QA Notice: Abnormal configure code * * ./configure: 40936: test: 0: unexpected operator ``` Bash provides the standard `test XXX = YYY` or `[ XXX = YYY ]` utilities. It also provides the ability to spell the equals sign as a double equals. This does nothing whatsoever -- it adds no new functionality to bash, it forbids nothing, it is *literally* an exact alias. It should never be used under any circumstances. All developers must immediately forget that it exists. Using it is non-portable and does not work in /bin/sh scripts such as configure scripts, and it results in dangerous muscle memory when used in bash scripts because it makes people unthinkingly use the double equals even in /bin/sh scripts. To add insult to injury, it makes scripts take up more disk space (by a whole byte! and sometimes even a few bytes...) Delete this accidental bashism, and restore the ability to get correct ./configure behavior on systems where /bin/sh is something other than a symlink to GNU bash. Signed-off-by: Eli Schwartz <eschwartz@gentoo.org> (cherry picked from commit 0f63488)
In commit 523497d, some logic was added to verify at configure time that a python interpreter is available. It's required for a python script that generates a header, which is also distributed via BUILT_SOURCES in dist tarballs, so it's only necessary when building from git. The configure check looks to see if the header file exists at configure time to determine whether python is a requirement. But it accidentally looked for the wrong file. The autoconf $srcdir variable looks similar to the src/ directory, but actually refers to the directory that the current ./configure script (or Makefile) is in. The actual src/ component of the path to the header went missing. Later, in commit b54565f, the header file was renamed from dictionary.h to pmix_dictionary.h, which broke the check a second way. It's difficult to test a regression like this, because it is inherently needed anyways when building from git, which CI does. To make matters worse, some linux distros tend to have python3 installed for one reason or another anyway (e.g. Gentoo's package manager is written in it) or are building the bindings regardless, so the check will always pass even if maybe it shouldn't. Bug finally discovered via an entirely unrelated accident on Gentoo in a CI which specifically removes the /usr/bin/python3 symlink and builds random packages to check which ones fail to depend on Gentoo's python wrapper. Even then, automake checks for version-specific names to python, and python3.12 exists... but automake 1.16 only supports looking for python 3.0 - 3.9, and automake 1.17 was released on July 11, 2024, and is available nowhere. Bug: https://bugs.gentoo.org/934234 Fixes: b54565f Fixes: 523497d Signed-off-by: Eli Schwartz <eschwartz@gentoo.org> (cherry picked from commit ecc03ee)
Building a tarball on MacOSX results in a tarball that includes undesirable artifacts when unpacked on Linux systems. We therefore do not support this operation by default Include an override path by passing --macosx on the cmd line Signed-off-by: Ralph Castain <rhc@pmix.org> (cherry picked from commit 02b086e)
Installing anaconda confused the system and led to the problems. Uninstalling it resolved things and we can therefore fall back to letting Python deal with selecting the right combination of versions. Signed-off-by: Ralph Castain <rhc@pmix.org> (cherry picked from commit 2811f52)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update the requirements for Sphinx
Getting into an odd situation where Sphinx is spewing
errors and warnings due to deprecated packages. Try to
find a path to something workable - somewhat frustrating
as the Sphinx site admits to the problems, but basically
saids they don't care, just poke around until you find
a "good" combination.
Signed-off-by: Ralph Castain rhc@pmix.org
(cherry picked from commit 27ab19f)
configure: fix broken bashisms resulting in logic failure
Some code which was only valid using GNU bash was included. Detected in
Gentoo packaging via:
Bash provides the standard
test XXX = YYYor[ XXX = YYY ]utilities. It also provides the ability to spell the equals sign as a
double equals. This does nothing whatsoever -- it adds no new
functionality to bash, it forbids nothing, it is literally an exact
alias.
It should never be used under any circumstances. All developers must
immediately forget that it exists. Using it is non-portable and does not
work in /bin/sh scripts such as configure scripts, and it results in
dangerous muscle memory when used in bash scripts because it makes
people unthinkingly use the double equals even in /bin/sh scripts. To
add insult to injury, it makes scripts take up more disk space (by a
whole byte! and sometimes even a few bytes...)
Delete this accidental bashism, and restore the ability to get correct
./configure behavior on systems where /bin/sh is something other than a
symlink to GNU bash.
Signed-off-by: Eli Schwartz eschwartz@gentoo.org
(cherry picked from commit 0f63488)
In commit 523497d, some logic was added
to verify at configure time that a python interpreter is available. It's
required for a python script that generates a header, which is also
distributed via BUILT_SOURCES in dist tarballs, so it's only necessary
when building from git.
The configure check looks to see if the header file exists at configure
time to determine whether python is a requirement. But it accidentally
looked for the wrong file. The autoconf $srcdir variable looks similar
to the src/ directory, but actually refers to the directory that the
current ./configure script (or Makefile) is in. The actual src/
component of the path to the header went missing.
Later, in commit b54565f, the header
file was renamed from dictionary.h to pmix_dictionary.h, which broke the
check a second way.
It's difficult to test a regression like this, because it is inherently
needed anyways when building from git, which CI does. To make matters
worse, some linux distros tend to have python3 installed for one reason
or another anyway (e.g. Gentoo's package manager is written in it) or
are building the bindings regardless, so the check will always pass even
if maybe it shouldn't.
Bug finally discovered via an entirely unrelated accident on Gentoo in a
CI which specifically removes the /usr/bin/python3 symlink and builds
random packages to check which ones fail to depend on Gentoo's python
wrapper. Even then, automake checks for version-specific names to
python, and python3.12 exists... but automake 1.16 only supports looking
for python 3.0 - 3.9, and automake 1.17 was released on July 11, 2024,
and is available nowhere.
Bug: https://bugs.gentoo.org/934234
Fixes: b54565f
Fixes: 523497d
Signed-off-by: Eli Schwartz eschwartz@gentoo.org
(cherry picked from commit ecc03ee)
Warn against building tarball on MacOSX
Building a tarball on MacOSX results in a
tarball that includes undesirable artifacts
when unpacked on Linux systems. We therefore
do not support this operation by default
Include an override path by passing --macosx on the cmd line
Signed-off-by: Ralph Castain rhc@pmix.org
(cherry picked from commit 02b086e)
Revert Sphinx requirements
Installing anaconda confused the system and led to
the problems. Uninstalling it resolved things and
we can therefore fall back to letting Python deal
with selecting the right combination of versions.
Signed-off-by: Ralph Castain rhc@pmix.org
(cherry picked from commit 2811f52)