RFR: 8264010: Add Gradle dependency verification

Kevin Rushforth kcr at openjdk.java.net
Wed Mar 31 14:12:15 UTC 2021


On Thu, 25 Mar 2021 18:53:41 GMT, John Neffenger <jgneff at openjdk.org> wrote:

>> Thanks, Kevin. I added a README file and updated the Lucene instructions, as you suggested. I'm open to any other suggestions on the wording or formatting, no matter how minor.
>> 
>>> Some of the files listed are not used directly. I presume that you added them because they are used indirectly by other components? Are all of them actually needed?
>> 
>> The Gradle command, now documented in the `gradle/README.txt` file, adds entries to the dependency verification file for all dependencies, including transitive ones. I think that's the list of everything downloaded during the builds on Linux, macOS, and Windows. I'll clear the Gradle cache and double-check it now. I'll let you know if I find anything unexpected.
>
>> Are all of them actually needed?
> 
> Just to follow up on that question, all of them are in fact downloaded during the build, at least. I removed the Gradle directory `$HOME/.gradle` and ran the build as follows. Then I compared the list of downloaded artifacts with the ones listed in the dependency verification file.
> 
> $ rm -r $HOME/.gradle
> $ bash gradlew sdk jmods javadoc apps test -x :web:test
>   ...
> $ find ~/.gradle/caches/modules-2 ( -name "*.jar" -o -name "*.pom" ) \
>   -exec basename {} ; | sort > downloaded.log
> $ grep '<artifact' gradle/verification-metadata.xml | sed 's/.*name="(.*)">/\1/' \
>   | sort > verified.log
> $ diff downloaded.log verified.log 
> 31a32
>> org.eclipse.swt.cocoa.macosx.x86_64_3.105.3.v20170228-0512-.jar
> 32a34
>> org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512-.jar
> 
> A total of 36 artifacts (14 JAR files and 22 POM files) are downloaded during the build. The SWT libraries for macOS and Windows were not downloaded because I ran the build on Linux.

We have a few in-flight or imminent updates that will impact this PR. There is a tight deadline on one of them (an ICU data file dependency), so I'd prefer to wait on integrating this until after they are done.

It's still worth continuing the review in the mean time. I noticed that the libav bundles are missing on Linux. To ensure that you aren't missing any dependencies, can you add the following gradle flags to your build?

-PCOMPILE_MEDIA=true -PBUILD_LIBAV_STUBS=true

This will build the native media libraries, including the libav stubs (the latter is Linux only). Eventually, you will need to include WebKit, but that's not needed for now.

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

PR: https://git.openjdk.java.net/jfx/pull/437


More information about the openjfx-dev mailing list