Skip to content

Commit

Permalink
configure: add check for valid version
Browse files Browse the repository at this point in the history
Problem: autoconf will accept junk at configure time as a valid
version, then go off and generate an invalid version.h file. This
happens frequently with shallow clones, setups in CI, or other
constrained user environments. It has caused new contributors a
lot of confusion in the past.

Solution: Like flux-framework/flux-sched#1291 suggested, reject
invalid versions at configure time and provide appropriate
suggestions to the user to remedy this.
  • Loading branch information
wihobbs committed Sep 10, 2024
1 parent a3785a3 commit 9cd6c29
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,27 @@ AC_SUBST([AX_MAJOR_VERSION])
AC_SUBST([AX_MINOR_VERSION])
AC_SUBST([AX_POINT_VERSION])

AC_MSG_CHECKING([whether version number is sane])
AS_IF([printf "%d.%d.%d" ${AX_MAJOR_VERSION} ${AX_MINOR_VERSION} ${AX_POINT_VERSION} >/dev/null 2>&1], [
AC_MSG_RESULT([yes])
],[
AC_MSG_RESULT([no])
version_err_msg="
VERSION ${VERSION} is invalid.
Try the following to remedy this:
1. Set the variable manually, with FLUX_VERSION=<version>
in your environment.
2. If you are running in a CI environment, run \`git fetch tags\`
before building. Versions in flux-core are derived from
\`git describe\` which uses the most recent tag.
3. If you are running CI in a fork of the main repository, try
\`git push --tags\` to make sure tags are synchronized in
your fork.
"
AC_MSG_ERROR(["${version_err_msg}"])
])

##
# Initialize pkg-config for PKG_CHECK_MODULES to avoid conditional issues
##
Expand Down

0 comments on commit 9cd6c29

Please sign in to comment.