[android-platform-tools-base] 24/30: Generate Class-Paths for the Java programs and store them in /usr/share/doc/android-platform-tools-base

Kai-Chung Yan seamlik-guest at moszumanska.debian.org
Fri Jul 22 10:33:54 UTC 2016


This is an automated email from the git hooks/post-receive script.

seamlik-guest pushed a commit to branch master
in repository android-platform-tools-base.

commit 78ac018a02e378484317ebaabecb245b77e39d4b
Author: Kai-Chung Yan <seamlikok at gmail.com>
Date:   Fri Jul 22 17:11:41 2016 +0800

    Generate Class-Paths for the Java programs and store them in /usr/share/doc/android-platform-tools-base
---
 debian/android-platform-tools-base.docs  |  2 ++
 debian/android-platform-tools-base.links |  9 +++++---
 debian/android-platform-tools-base.poms  |  2 +-
 debian/control                           | 29 ++++++++++++++++++++++++-
 debian/debian.gradle                     | 37 +++++++++++++++++++++++++++++---
 debian/patches/build.gradle.patch        | 13 +++++++----
 debian/patches/series                    |  1 +
 debian/patches/set_classpaths.patch      | 34 +++++++++++++++++++++++++++++
 8 files changed, 115 insertions(+), 12 deletions(-)

diff --git a/debian/android-platform-tools-base.docs b/debian/android-platform-tools-base.docs
new file mode 100644
index 0000000..84920ec
--- /dev/null
+++ b/debian/android-platform-tools-base.docs
@@ -0,0 +1,2 @@
+lint/cli/build/lint.classpaths
+misc/screenshot2/build/screenshot2.classpaths
\ No newline at end of file
diff --git a/debian/android-platform-tools-base.links b/debian/android-platform-tools-base.links
index a5c426e..50ab382 100644
--- a/debian/android-platform-tools-base.links
+++ b/debian/android-platform-tools-base.links
@@ -1,3 +1,6 @@
-usr/lib/android-sdk/tools/draw9patch  usr/bin/draw9patch
-usr/lib/android-sdk/tools/lint        usr/bin/lint
-usr/lib/android-sdk/tools/screenshot2 usr/bin/screenshot2
\ No newline at end of file
+usr/lib/android-sdk/tools/draw9patch             usr/bin/draw9patch
+usr/lib/android-sdk/tools/lint                   usr/bin/lint
+usr/lib/android-sdk/tools/screenshot2            usr/bin/screenshot2
+usr/share/java/com.android.tools.draw9patch.jar  usr/lib/android-sdk/tools/lib/draw9patch.jar
+usr/share/java/com.android.tools.screenshot2.jar usr/lib/android-sdk/tools/lib/screenshot2.jar
+usr/share/java/com.android.tools.lint.lint.jar   usr/lib/android-sdk/tools/lib/lint.jar
\ No newline at end of file
diff --git a/debian/android-platform-tools-base.poms b/debian/android-platform-tools-base.poms
index 392bd53..436081b 100644
--- a/debian/android-platform-tools-base.poms
+++ b/debian/android-platform-tools-base.poms
@@ -4,7 +4,7 @@ device_validator/dvlib/build/dvlib.pom      --java-lib --artifact=device_validat
 draw9patch/build/draw9patch.pom             --java-lib --artifact=draw9patch/build/libs/*.jar             --usj-name=com.android.tools.draw9patch
 layoutlib-api/build/layoutlib-api.pom       --java-lib --artifact=layoutlib-api/build/libs/*.jar          --usj-name=com.android.tools.layoutlib.layoutlib-api
 legacy/archquery/build/archquery.pom        --java-lib --artifact=legacy/archquery/build/libs/*.jar       --usj-name=com.android.tools.archquery
-lint/cli/build/lint.pom                     --java-lib --artifact=lint/cli/build/libs/*.jar               --usj-name=com.android.tools.lint
+lint/cli/build/lint.pom                     --java-lib --artifact=lint/cli/build/libs/*.jar               --usj-name=com.android.tools.lint.lint
 lint/libs/lint-api/build/lint-api.pom       --java-lib --artifact=lint/libs/lint-api/build/libs/*.jar     --usj-name=com.android.tools.lint.lint-api
 lint/libs/lint-checks/build/lint-checks.pom --java-lib --artifact=lint/libs/lint-checks/build/libs/*.jar  --usj-name=com.android.tools.lint.lint-checks
 misc/screenshot2/build/screenshot2.pom      --java-lib --artifact=misc/screenshot2/build/libs/*.jar       --usj-name=com.android.tools.screenshot2
diff --git a/debian/control b/debian/control
index 807ebad..b45ad07 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Uploaders:
 Build-Depends:
  antlr3,
  debhelper (>= 9),
- default-jdk,
+ default-jdk (>= 1:1.6),
  gradle-debian-helper,
  groovy,
  junit4,
@@ -38,7 +38,24 @@ Homepage: https://android.googlesource.com/platform/tools/base/
 Package: android-platform-tools-base
 Architecture: all
 Depends:
+ default-jre-headless (>= 1:1.6) | java6-runtime-headless,
+ libandroid-tools-annotations-java (>= ${binary:Version}),
+ libandroid-tools-common-java (>= ${binary:Version}),
+ libasm4-java,
+ libcommons-compress-java,
+ libbcpkix-java,
+ libbcprov-java,
+ libecj-java,
+ libgoogle-gson-java,
+ libguava-java,
+ libhttpclient-java,
+ libhttpcore-java,
+ libhttpmime-java,
+ libintellij-annotations-java,
+ libkxml2-java,
+ liblombok-ast-java,
  ${misc:Depends}
+Suggest: default-jre
 Description: base tools for developing applications for the Android system
  This package includes various tools for developing and building Android
  applications, e.g.
@@ -56,6 +73,9 @@ Description: base tools for developing applications for the Android system
     Android Studio is not installed (such as continuous integration servers).
  .
   * Various Java libraries used by Android SDK.
+ .
+ default-jre or other non-headless JRE needs to be installed in order to run
+ "draw9patch". However draw9patch fails to run due to bug #798794.
 
 Package: libandroid-tools-annotations-java
 Architecture: all
@@ -76,6 +96,13 @@ Description: common library used by other Android tools libraries
 Package: libgradle-android-plugin-java
 Architecture: all
 Depends: android-platform-tools-base,
+         antlr3,
+         antlr4,
+         libandroid-databinding-java,
+         libjavawriter-java,
+         libgradle-core-java,
+         libgradle-plugins-java,
+         proguard,
          ${misc:Depends}
 Breaks: android-platform-tools-base (<< 2.0.0-1)
 Replaces: android-platform-tools-base (<< 2.0.0-1)
diff --git a/debian/debian.gradle b/debian/debian.gradle
index d93535c..d938635 100644
--- a/debian/debian.gradle
+++ b/debian/debian.gradle
@@ -1,5 +1,11 @@
 apply plugin: 'maven'
 
+def pomFilePath = "${buildDir}/${project.name}.pom"
+def classpathsFilePath = "${buildDir}/${project.name}.classpaths"
+
+/* ********************
+ * Task generatePom   *
+ **********************/
 /* No idea why adding any tasks with wahtever name would make Gradle complain
    that this task exists. Therefore I have to set the "overwrite". */
 task generatePom(overwrite: true) {
@@ -30,9 +36,34 @@ task generatePom(overwrite: true) {
     }.writeTo("${buildDir}/${project.name}.pom")
   }
 }
+clean.doLast { delete pomFilePath }
+assemble.dependsOn generatePom
 
-clean.doLast {
-  delete "${buildDir}/${project.name}.pom"
+/***************************
+ * Task generateClasspaths *
+ ***************************/
+task generateClasspaths(overwrite: true) {
+  outputs.files classpathsFilePath
+  doFirst {
+    mkdir buildDir
+    def classpathsFile = file(classpathsFilePath)
+    classpathsFile.createNewFile()
+    classpathsFile.write(
+      configurations.runtime.collect {
+        if (it.path.startsWith('/usr/share/')) {
+          it.path
+        } else {
+          "/usr/share/java/${it.name}"
+        }
+      }.toSorted().join(':')
+    )
+  }
 }
+clean.doLast { delete classpathsFilePath }
+assemble.dependsOn generateClasspaths
 
-assemble.dependsOn generatePom
\ No newline at end of file
+/* Not sure this file is included before or after when each project sets their
+   "archivesBaseName". For insurance, do it after the evaluation completed. */
+afterEvaluate {
+  jar.baseName = "${group}.${archivesBaseName}"
+}
\ No newline at end of file
diff --git a/debian/patches/build.gradle.patch b/debian/patches/build.gradle.patch
index d0995ee..f416055 100644
--- a/debian/patches/build.gradle.patch
+++ b/debian/patches/build.gradle.patch
@@ -310,7 +310,7 @@ Description: Patch upstream's build system for Debian.
  
  group = 'com.android.tools'
  archivesBaseName = 'draw9patch'
-@@ -15,16 +15,3 @@
+@@ -15,16 +15,4 @@
      test.resources.srcDir 'src/test/java'
  }
  
@@ -327,6 +327,8 @@ Description: Patch upstream's build system for Debian.
 -}
 -
 -sdkJar.manifest.attributes("Main-Class": "com.android.draw9patch.Application")
++jar.manifest.attributes("Main-Class": "com.android.draw9patch.Application")
+\ No newline at end of file
 --- a/jack/jack-api/build.gradle
 +++ b/jack/jack-api/build.gradle
 @@ -17,9 +17,6 @@
@@ -365,7 +367,7 @@ Description: Patch upstream's build system for Debian.
  
  // configure the manifest of the sdkJar task
 -sdkJar.manifest.attributes("Main-Class": "com.android.jobb.Main")
- 
+-
 -sdk {
 -    linux {
 -        item('etc/jobb') { executable true }
@@ -377,6 +379,7 @@ Description: Patch upstream's build system for Debian.
 -        item 'etc/jobb.bat'
 -    }
 -}
++jar.manifest.attributes("Main-Class": "com.android.jobb.Main")
 --- a/layoutlib-api/build.gradle
 +++ b/layoutlib-api/build.gradle
 @@ -1,6 +1,6 @@
@@ -418,7 +421,7 @@ Description: Patch upstream's build system for Debian.
  
  group = 'com.android.tools.lint'
  archivesBaseName = 'lint'
-@@ -20,24 +20,10 @@
+@@ -20,24 +20,11 @@
      maxParallelForks = Runtime.runtime.availableProcessors() / 2
  }
  
@@ -437,6 +440,7 @@ Description: Patch upstream's build system for Debian.
  
  // configure the manifest of the sdkJar task.
 -sdkJar.manifest.attributes("Main-Class": "com.android.tools.lint.Main")
++jar.manifest.attributes("Main-Class": "com.android.tools.lint.Main")
  
  project.ext.pomName = 'Android Lint Tool'
  project.ext.pomDesc = 'Lint tools. Both a Command line tool and a library to add lint features to other tools'
@@ -489,7 +493,7 @@ Description: Patch upstream's build system for Debian.
  
  group = 'com.android.tools'
  archivesBaseName = 'screenshot2'
-@@ -9,14 +9,3 @@
+@@ -9,14 +9,4 @@
      compile project(':base:ddmlib')
  }
  
@@ -504,6 +508,7 @@ Description: Patch upstream's build system for Debian.
 -
 -// configure the manifest of the sdkJar task.
 -sdkJar.manifest.attributes("Main-Class": "com.android.screenshot.Screenshot")
++jar.manifest.attributes("Main-Class": "com.android.screenshot.Screenshot")
 --- a/sdk-common/build.gradle
 +++ b/sdk-common/build.gradle
 @@ -1,6 +1,5 @@
diff --git a/debian/patches/series b/debian/patches/series
index 9a84697..c6c8f90 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@ trove3.patch
 libhttpcore-java-ThreadSafe.patch
 exclude_instant-run.patch
 disable_jacoco.patch
+set_classpaths.patch
diff --git a/debian/patches/set_classpaths.patch b/debian/patches/set_classpaths.patch
new file mode 100644
index 0000000..df66628
--- /dev/null
+++ b/debian/patches/set_classpaths.patch
@@ -0,0 +1,34 @@
+Author: Kai-Chung Yan
+Last-Update: 2016-07-22
+Description: Set Class-Paths
+ Class-Paths are generated by Gradle and stored in
+ /usr/share/doc/{package}/{program}.classpaths for use in launcher scripts.
+ This patch makes the upstream scripts use those Class-Paths.
+--- a/misc/screenshot2/etc/screenshot2
++++ b/misc/screenshot2/etc/screenshot2
+@@ -69,6 +69,9 @@
+     jarpath="$frameworkdir/$jarfile"
+ fi
+ 
++classpaths=`cat /usr/share/doc/android-platform-tools-base/screenshot2.classpaths`:$jarpath
++mainclass=com.android.screenshot.Screenshot
++
+ # need to use "java.ext.dirs" because "-jar" causes classpath to be ignored
+ # might need more memory, e.g. -Xmx128M
+-exec java -Xmx128M $os_opts $java_debug -Djava.ext.dirs="$frameworkdir" -Djava.library.path="$libdir" -Dcom.android.screenshot.bindir="$progdir" -jar "$jarpath" "$@"
++exec java -Xmx128M $os_opts $java_debug -Djava.ext.dirs="$frameworkdir" -Djava.library.path="$libdir" -Dcom.android.screenshot.bindir="$progdir" -classpath "$classpaths" "$mainclass" "$@"
+--- a/lint/cli/etc/lint
++++ b/lint/cli/etc/lint
+@@ -65,9 +65,11 @@
+ 
+ jarpath="$frameworkdir/$jarfile"
+ 
++classpaths=`cat /usr/share/doc/android-platform-tools-base/lint.classpaths`:$jarpath
++
+ exec "$javaCmd" \
+     -Xmx1024m $os_opts $java_debug \
+     -Dcom.android.tools.lint.bindir="$progdir" \
+     -Djava.awt.headless=true \
+-    -classpath "$jarpath" \
++    -classpath "$classpaths" \
+     com.android.tools.lint.Main "$@"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/android-platform-tools-base.git



More information about the pkg-java-commits mailing list