Skip to content

Multiple commits#3379

Merged
rhc54 merged 5 commits intoopenpmix:v5.0from
rhc54:cmr50/tarball
Jul 18, 2024
Merged

Multiple commits#3379
rhc54 merged 5 commits intoopenpmix:v5.0from
rhc54:cmr50/tarball

Conversation

@rhc54
Copy link
Contributor

@rhc54 rhc54 commented Jul 18, 2024

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:

 * 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)

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)

rhc54 and others added 5 commits July 18, 2024 08:00
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)
@rhc54 rhc54 merged commit a227f0f into openpmix:v5.0 Jul 18, 2024
@rhc54 rhc54 deleted the cmr50/tarball branch July 18, 2024 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants