From: Matthew Fernandez Date: Sat, 10 Dec 2022 22:04:10 +0000 (-0800) Subject: CI: hard code platform when running './configure' on Cygwin X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ae2343c6c922d647b8b3fb926444ee7475f932ff;p=graphviz CI: hard code platform when running './configure' on Cygwin 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. --- diff --git a/ci/build.sh b/ci/build.sh index 1d1c2a60e..c6bd8b13e 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -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