> ### 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
