]> granicus.if.org Git - graphviz/commitdiff
CI: hard code platform when running './configure' on Cygwin
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 10 Dec 2022 22:04:10 +0000 (14:04 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 10 Dec 2022 22:18:29 +0000 (14:18 -0800)
The Cygwin Autotools builds have begun failing in CI:

  + ./configure --prefix=/cygdrive/c/GitLab-Runner/builds/smattr/graphviz/
    graphviz-7.0.5~dev.20221210.2041/build
  checking build system type... config/config.guess: unable to guess system type

  This script (version 2018-02-24), has failed to recognize the
  operating system you are using. If your script is old, overwrite *all*
  copies of config.guess and config.sub with the latest versions from:

    https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
  and
    https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub

  If config/config.guess has already been updated, send the following data and any
  information you think might be pertinent to config-patches@gnu.org to
  provide the necessary information to handle your system.

  config.guess timestamp = 2018-02-24

  uname -m = .x86_64
  uname -r = 3.4.1-1.x86_64
  uname -s = CYGWIN_NT-10.0-17763
  uname -v = 2022-12-10 19:59 UTC

  /usr/bin/uname -p = unknown
  /bin/uname -X     =

  hostinfo               =
  /bin/universe          =
  /usr/bin/arch -k       =
  /bin/arch              = .x86_64
  /usr/bin/oslevel       =
  /usr/convex/getsysinfo =

  UNAME_MACHINE = ".x86_64"
  UNAME_RELEASE = "3.4.1-1.x86_64"
  UNAME_SYSTEM  = "CYGWIN_NT-10.0-17763"
  UNAME_VERSION = "2022-12-10 19:59 UTC"
  configure: error: cannot guess build type; you must specify one

config.guess is one of those scripts that is manually copy-pasted between GNU
projects. In this instance, it is the copy within Automake that is being used.
CI appears to be installing the very latest version of Automake at time of
writing (1.16.5), so upgrading Automake is not a fix here.

Cross referencing the upstream version of config.guess in Savannah¹, there have
been a lot of changes to this file since the version Automake is carrying². But
none of them jump out as something that would affect Cygwin detection in this
way.

So this commit works around the problem on our side. We hard code the guess that
`./configure` should have made. Note that this change uses the guess text from
the newer config.guess, `x86_64-pc-cygwin`, instead of the guess text from the
older version of config.guess Automake is carrying, `x86_64-unknown-cygwin`.

If this problem turns out to have a root cause in Automake and is fixed in
future, we should be able to revert this change.

¹ https://savannah.gnu.org/projects/config/
² 72 commits touching this file since the version Automake is carrying
  (2018-02-24). Total diff of these commits to config.guess is 2143 lines.

ci/build.sh

index 1d1c2a60e1ad766c8d4cb5104a4eba21e2b5f96d..c6bd8b13e07f33cec6942c4684c91b11e0623775 100755 (executable)
@@ -102,6 +102,9 @@ else
         if [ "${OSTYPE}" = "msys" ]; then
             # ensure that MinGW tcl shell is used in order to find tcl functions
             CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS:-} --with-tclsh=${MSYSTEM_PREFIX}/bin/tclsh86"
+        else # Cygwin
+            # avoid platform detection problems
+            CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS:-} --build=x86_64-pc-cygwin"
         fi
         if [ "${use_autogen:-no}" = "yes" ]; then
             ./autogen.sh