> ### Background (from JBS)
> 
> The devkit creation makefiles under make/devkit have been more or less 
> untouched since they were first introduced. While they have served us well 
> there are some key challenges which are slowly becoming more urgent to 
> address.
> 
> One such issue relates to the logic for creating the sysroot. Currently, it 
> is implemented using wget with a set of pattern to download packages directly 
> from the upstream yum repo. One problem with this is that it will download 
> all packages which happen to match the pattern, no matter if those packages 
> are actually needed or not. More problematically though, using wget like this 
> does not (necessarily) work for more recent linux distribution 
> versions/repositories.
> 
> The dnf tool is the native solution for downloading packages, including 
> dependencies etc.
> 
> The sysroot logic could also benefit from being split out into its own file, 
> making the fairly involved Tools.gmk slightly less complex.
> 
> A secondary goal of this cleanup is to make it possible to reuse the logic 
> (especially the sysroot logic) for creating devkit equivalents for building 
> project Detroit.
> 
> ### About the change
> 
> The goal of this change was, initially, to change the sysroot logic to use 
> dnf. In making the required changes I relatively quickly I realized that the 
> Tools.gmk file was long overdue for cleanup. I chose to split out the sysroot 
> logic to a separate file but couldn't resist making some fairly significant, 
> (_mostly_) cosmetic changes to Tools.gmk while at it, moving it closer to the 
> general style of the JDK build system. That said, a lot of the logic in 
> Tools.gmk remains "old-style" even after this change.
> 
> Some specific things worth highlighting:
> 
> - I've tried to adjust formatting to closer match the JDK build system style, 
> but I'm sure there are places/cases where it's off.
> - I updated versions and URLs to reflect the latest reality, and adjusted the 
> documentation in Makefile accordingly.
> - To avoid having to call the Sysroot.gmk file twice (first to download 
> packages and then to create the actual sysroot) I updated the logic to not 
> depend on parse time globing. Specifically, what used to be `RPM_FILE_LIST` 
> is now handled in the recipe instead.
> - I fixed some missing dependencies which were most likely not actual 
> problems, unless running with parallelism (which is not needed - Tools.gmk 
> sets BUILDPAR where relevant). Even with these fixes parallelism is unlikely 
> to work well.
> - I dropped some packages which no longer exist (assuming ...

Mikael Vidstedt has updated the pull request incrementally with one additional 
commit since the last revision:

  Review feedback and formatting

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/31303/files
  - new: https://git.openjdk.org/jdk/pull/31303/files/3568adad..ee85bdeb

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=31303&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=31303&range=00-01

  Stats: 95 lines in 3 files changed: 3 ins; 4 del; 88 mod
  Patch: https://git.openjdk.org/jdk/pull/31303.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/31303/head:pull/31303

PR: https://git.openjdk.org/jdk/pull/31303

Reply via email to