[jdk8u-dev] RFR: 8031567: Better model for storing source revision information [v3]

Andrew John Hughes andrew at openjdk.java.net
Wed May 25 16:37:19 UTC 2022


> In implementing [JDK-8222975](https://bugs.openjdk.java.net/browse/JDK-8222975) and backporting [JDK-8210283](https://bugs.openjdk.java.net/browse/JDK-8210283), we have avoided backporting [JDK-8031567](https://bugs.openjdk.java.net/browse/JDK-8031567) in order to keep things simple. However, the net result has been that we have introduced [unique 8u bugs](https://mail.openjdk.java.net/pipermail/jdk8u-dev/2022-April/014842.html)
> 
> Rather than just patching up 8u again, it seems to make sense to just bring it into line with later JDKs. There might have been a reason to keep 8u different when it was a forest of Mercurial repositories, but it is now a single Git tree like the other JDK repositories. Handling the same thing but in a unique way just makes any future backporting harder to deal with.
> 
> In light of this, I've now backported 8031567. I started by reverting the two 8u-specific patches, 8210283 & 8222975, and then applied 8136771 & 8031567 (which includes 8222975), along with follow-up fixes 8170385 & 8170392. 8210283 was then rebackported on top of this.
> 
> A couple of additional fixes were then made to workaround Makefile differences in 8u. Due to the lack of [JDK-8069261](https://bugs.openjdk.java.net/browse/JDK-8069261) the `MakeDir` usage needs to be wrapped in `eval`. 8u also doesn't have the modern macro format from  [JDK-8074988](https://bugs.openjdk.java.net/browse/JDK-8074988) and earlier fixes, so the `SetupGetRevisionForRepo` macro was modified to work in a similar way to other macros do in 8u. The stripping of `$1` is necessary to avoid it trying to create variables beginning with a space (something which led to empty variables and confused me for some time)
> 
> I did consider backporting those as well, but felt there were too intrusive to other areas of the build. At least we now have a template in this patch for how to convert any future instances.
> 
> The end result actually looks pretty straightforward and differences between this and the `make/SourceRevision.gmk` file in 11u are small.

Andrew John Hughes has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 11 additional commits since the last revision:

 - Merge remote-tracking branch 'jdk8u-dev/master' into JDK-8031567
 - Remove stray brackets
 - Fix SetupGetRevisionForRepo to workaround lack of JDK-8074988
 - Use eval wrapper for MakeDir calls due to lack of JDK-8069261
 - 8210283: Support git as an SCM alternative in the build
 - 8170392: JDK-8031567 broke builds from source bundles
 - 8170385: JDK-8031567 broke source bundles
 - 8031567: Better model for storing source revision information
 - 8136771: Implement the license-swap logic as a make target
 - Revert "8222975: Fix 'release' file to reflect actual repo checkin used to compile JDK"
   
   This reverts commit 2f2cc4c4710af7c88e8f87bf4aca9eef29329082.
 - ... and 1 more: https://git.openjdk.java.net/jdk8u-dev/compare/d06dffa1...4ce1240c

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk8u-dev/pull/62/files
  - new: https://git.openjdk.java.net/jdk8u-dev/pull/62/files/3f4af272..4ce1240c

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk8u-dev&pr=62&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk8u-dev&pr=62&range=01-02

  Stats: 828 lines in 36 files changed: 373 ins; 43 del; 412 mod
  Patch: https://git.openjdk.java.net/jdk8u-dev/pull/62.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk8u-dev pull/62/head:pull/62

PR: https://git.openjdk.java.net/jdk8u-dev/pull/62


More information about the jdk8u-dev mailing list