Hello Magnus,
Nice to see this finally happening!
In building.md, when getting autoconf for Cygwin, I believe you also
need the autoconf wrapper scripts package. Perhaps it's also worth
mentioning that you can download the autoconf src and build/install from
there?
In jib-profiles.js, you need to use build_platform instead of
target_platform when creating the module name for the dependency. I
would also like if you added the dependency on the other main profiles
as well. At least linux-x86, linux-arm64 and windows-x86 are still
possible to build and should work fine with this. For solaris-x64 you
would need to generate the package for it to work.
The TMPDIR logic looks weird. Are you unconditionally setting it to
/cygdrive/t/...? That's a valid dir in our build farm, but not on my
local windows box:
mkdir: cannot create directory ‘/cygdrive/t’: No such file or directory
autom4te: cannot create
/cygdrive/t/workspace/.build/tmpdir/am4t7009.7040: No such file or directory
at
/cygdrive/c/cygwin64/var/tmp/jib-erik/install/jpg/infra/builddeps/autoconf-windows_x64/2.69+1.0.1/autoconf-windows_x64-2.69+1.0.1.tar.gz/usr/bin/autom4te
line 954.
Error: Failed to generate runnable configure script
/Erik
On 2018-01-18 05:28, Magnus Ihse Bursie wrote:
Currently, we require all developers who modify the configure script
to run autoconf locally, to update the generated-configure.sh script,
which is then checked in. This is the only instance of checked in
"compiled" code in OpenJDK, and this has brought along several problems:
* Only a specific version of autoconf, 2.69, can be used, to avoid
large code changes in the generated file. Unfortunately, Ubuntu ships
a version of autoconf that claims to be 2.69 but is actually heavily
patched. This requires all Ubuntu users to compiler their own autoconf
from source.
* The Oracle JDK closed sources has a closed version that needs to be
updated. In practice, this has meant that all non-Oracle developers,
need an Oracle sponsor for patches modifying the configure script.
* If the configure script is not properly updated, the build will
fail. The same happens on the Oracle side if the closed version is not
in sync with the open version. It is easy to miss re-generating the
script after the last fix of a typo in the comments in an .m4 file...
* Merging between two changes containing configure modifications is
almost impossible. In practice, the entire generated-configure.sh
needs to be thrown away and regenerated.
The entire benefit of having the file in the repo is to save
first-time developers the hassle of installing autoconf. On most
platforms, this is a no-brainer (like "apt install autoconf"), and the
requirement is similar to other open source projects using autoconf
and "./configure". It's just not worth it.
Bug: https://bugs.openjdk.java.net/browse/JDK-8195689
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8195689-remove-generated-configure/webrev.01
/Magnus