xijiu commented on code in PR #18299:
URL: https://github.com/apache/kafka/pull/18299#discussion_r1900038679


##########
build.gradle:
##########
@@ -1326,6 +1326,42 @@ project(':core') {
     from(project(':tools:tools-api').jar) { into("libs/") }
     from(project(':tools:tools-api').configurations.runtimeClasspath) { 
into("libs/") }
     duplicatesStrategy 'exclude'
+
+    doLast {
+      def prefixPath = "$rootDir/core/build/distributions/"
+      def bathPath = prefixPath + 
"kafka_${versions.baseScala}-${project.properties['version']}"
+      def tgzPath = bathPath  + '.tgz'
+      exec {
+        commandLine 'tar', 'xzf', tgzPath, '-C', prefixPath
+      }
+
+      def licenseFile = file(bathPath + '/LICENSE')
+      def libsDir = file(bathPath + '/libs')
+      def result = true
+      libsDir.eachFile { file ->
+        if (file.name.endsWith('.jar')
+                && !file.name.startsWith('kafka')
+                && !file.name.startsWith('connect')
+                && !file.name.startsWith('trogdor')) {
+
+          def isLicensePresent = false
+          licenseFile.eachLine { line ->
+            if (line.contains(file.name - '.jar')) {
+              isLicensePresent = true
+            }
+          }
+          if (!isLicensePresent) {
+            println "warning: ${file.name} is missing in the license file"

Review Comment:
   @chia7712 
   It seems quite necessary, but the formats of these jar licenses are not 
quite the same, such as:
   ```
   jakarta.annotation-api-1.3.5
   zstd-jni-1.5.6-6 see: licenses/zstd-jni-BSD-2-clause
   argparse4j-0.7.0, see: licenses/argparse-MIT
   ```
   
   We should extract the following strings
   ```
   jakarta.annotation-api-1.3.5
   zstd-jni-1.5.6-6
   argparse4j-0.7.0
   ```
   
   So if we want to extract those, the rules could be: 
   
   1. No spaces in each line 
   2. Contains spaces, but includes ' see:' 
   3. Contains spaces, but includes ', see:'
   
   But as the subsequent modifications are made, this may be take mistakes.
   
   Or we can establish a guideline to identify lib-licenses (such as add 
specified prefix or suffix), which should be followed when modifying 
`LICENSE-binary` in the future.
   
   WDYT ?
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to