[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[GSoC 2020] Week 12 Report - Android SDK tools in Debian

Hey everyone!
This is the report for final week of coding period. (August 17th – 23rd )

After getting Gradle to build by itself last week and ending up with manpage and pom.xml related errors [1]. I was super excited and I jumped right at those errors. For the manpage, I tried using asciidoctor and pod2man to convert the .adoc file to manpage but it didn't work out. I ended up using last Gradle manual itself. It's in a patch here [2]. The manual should be fine for now as its only a command line doc and not much has changed in it. It will be a future task for me to update manpage. 

2nd issue was about generation of pom.xml files. The patch [3] from gradle 4.4.1 added the task[4] for it. The task needed a couple of improvements to get it working and the patch was modified as build.gradle has translated to build.gradle.kts now. The final commit for this can be found here [5].

After this, I finally got the .deb for gradle. Upon testing it, I found that GradleMain class itself is missing [6]. turns out I was missing some jars in Gradle and I need to install them. I updated the debian/libgradle-plugins-java.poms and debian/libgradle-core-java.poms to include all  the missing jars [7]. These jars would be installed when jh_installpoms is run while building Gradle. This installed almost all the jars that were generated by various subprojects in Gradle. The build logs can be found here [8]. Note: This is still in online mode.  As we will be using the first working Gradle as bootstrap for further builds that will be offline.

This  new .deb seemed pretty good until I tested the Gradle again and found that things like ant, groovy-all, etc are hardcoded and our Gradle throws up errors like these [9]. The issue is easy to understand and easy to fix too. As on further digging in, I found that we actually have the groovy-all.jar with us but just not in correct version. Gradle needs 1.3-2.5.10 [10] while we have 2.4.17. There are multiple such instances. These will need fixing. But the coding period has come to an end. I will be working on these once I submit the final report for GSoC later this week. These are just small irregularities and can be fixed easily.

The whole building process and all the patches need proper documentation and I will try my best to write it before I submit my final report. This week had lots of stuff as I finally had a .deb working which I could test and it throws easy to understand errors now. Gradle isn't complete yet but I consider this as a win for now and this is not-so-working deb of Gradle is a great helper. I will certainly be working even after GSoC ends and will try to get Gradle packaged. Apart from this, my partners and I have a Android tools BoF on the project [11] during Debconf '20 on 27th August. Please attend if you can. :)

That's all for coding period. It was very much fun and full of learning. See you guys in the final report. An informal blog post on this week can be found here [12].

[1] https://paste.ubuntu.com/p/SBQvv6CxbX/#5 
[2] https://salsa.debian.org/theloudspeaker-guest/gradle/-/blob/testing2/debian/patches/add-manpage.patch 
[3] https://salsa.debian.org/java-team/gradle/-/blob/master/debian/patches/generate-pom.patch 
[4] https://salsa.debian.org/java-team/gradle/-/blob/master/debian/generatePom.gradle 
[5] https://salsa.debian.org/theloudspeaker-guest/gradle/-/commit/6886e85d34f73cf3c368639d21cb8d4111d61725 
[6] https://p.ip.fi/lOEs 
[7] https://salsa.debian.org/theloudspeaker-guest/gradle/-/commit/29063e68fd7607bd65d74b05e7d6f47e1d81f548 
[8] https://p.ip.fi/_g2C 
[9] https://p.ip.fi/tjym
[10] https://salsa.debian.org/theloudspeaker-guest/gradle/-/blob/testing2/gradle/dependencies.gradle#L24 
[11] https://debconf20.debconf.org/talks/34-android-tools-bof/ 
[12] https://theloudspeaker.home.blog/2020/08/25/gsoc-2020-week-12/ 


Raman Sarda
Raman Sarda

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: