On Tue, 2 Jun 2026 23:57:01 GMT, Mikael Vidstedt <[email protected]> wrote:

>> ### 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 ...
>
> Mikael Vidstedt has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Address review feedback: add back OL6 support, update building.md

Thank you for the reviews and feedback!

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

PR Comment: https://git.openjdk.org/jdk/pull/31303#issuecomment-4616134706

Reply via email to