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

GSoC 2016 Week 6 - 8: Android SDK Tools in Debian


After I've created the package google-android-m2repository-installer[1], during the past few weeks, I've continued on the same path and focused mostly on google android installers packages.

First, since it's very complicated to compile android ndk from the code source, I've created the package google-android-ndk-installer[2], which is a packaged script that automatically downloads Google's Android NDK package and unpacks it into /usr/lib/android-ndk.

Then, I've focused on improving the google-android-*-installer packages[3][4], by introducing to all these packages the creation of download folders and download the packages as nobody:nogroup.
The other important improvement added to the packages was the possibility for the user to choose the mirror to download the package from, a good way to do this is by using debconf; so I've started reading documentations about using debconf and po-debconf to make this possible, and I've successfully done it by introducing this to every google-android-*-installer.
After this, I noticed that the google-android-*-installer packages are growing, and in case of installing multiple installers in same time, for example, may not give a good experience to the user by asking the same question of choosing a mirror multiple times, so I had to unify all this packages questions into a global shared one (since it's the same always, with same options). 
Here we had two suggested ways to do it: either by using a file in /etc/default containing the needed information, or (and it's what I did until now) is by pushing the debconf use a little further to contain this by using a global shared "virtual" package; the lack of documentation/information was a little bit frustrating here, but I managed to make it finally happen. 
I've created two packages[5][6] using debconf with global shared template (google-android-installers/mirror) and they work just fine ! The first installed package asks the user to choose the mirror, then all next packages use this information to download the packages. when purging a package, it will unregister it self from it, the last unregistred package will remove the template. to change the template selected value we can just reconfiguring one of the packages using the debconf template and a frontend will prompt asking the user to choose a new entry.

Now next, I will continue with google android platforms installers, then look for how can we combine all this in a contrib package named maybe google-android-sdk-meta.

[1]: https://packages.qa.debian.org/g/google-android-m2repository-installer.html
[2]: https://anonscm.debian.org/cgit/android-tools/google-android-ndk-installer.git
[3]: https://anonscm.debian.org/cgit/android-tools/google-android-build-tools-installer.git
[4]: https://anonscm.debian.org/cgit/android-tools/google-android-sdk-docs-installer.git
[5]: https://github.com/aallam/debian_google-android-platform-24-installer
[6]: https://github.com/aallam/debian_google-android-platform-23-installer

Mouaad Aallam

Reply to: