This GSoC report contains the summary of all the work I did during the past three months. First of all I would like to thank the Debian community , my mentors and Google for giving me this wonderful opportunity. Diving further into the project , I have started my project by updating packages which were of Stage 1(Packages were divided into four stages based on their requirement by other packages.) and then developing a parser that helps build makefiles for packaging and then updating other required packages. You can always find me on #debian-mobile as chandramouli_r(through matrix) and on #debian-java with the same username mentioned above. My gitlab account is https://salsa.debian.org/r_chandramouli-guest. You can find all my activities and forks of project that I have undertaken.
I would like to give a small description about open source and how it actually changed the way I code. Open source software is a free distributed software where the owner of the software grants permission to change and distribute the software to anyone for any purpose. I got to know about open source software and contributing to open source when I applied for GSoC 2017. I got rejected last year and wanted to contribute again under the same platform this year. I completed small tasks that were mentioned in the project page as an assignment to evaluate students before selecting the students. I would like to give Google the credit for this program as it has given all the students a chance to contribute to open source and to work under mentors who are highly qualified and for providing us this wonderful three months. I would want them to continue this initiative as it would help students understand how things work in reality. And finally Debian, working with Debian environment and learning to package software has been great. I have been using Ubuntu from the past 3-4 years so I find Linux environment the best place for open source. Since Ubuntu being a Debian based distro where the packaging style is similar, I thought of contributing to Debian under Android-Tools as I was more familiar with android environment and the coding languages used. Talking about Debian environment, Debian mentors and the organisation has been the best and the people at debian have been receiving contributors in the best way possible. I would like to give the credit for my work to all the three mentors who have supported me from the beginning and patiently bearing with me throughout. Hans-Christoph-Steiner,Kai-Chung-Yan and Chirayu Desai you people have been the best and guided us so well to come up to this stage. I believe interaction with mentors is the most important aspect of GSoC where students get to learn work and contribute to the open source environment. Hans-Christoph-Steiner , Kai- Chung-Yun and Chirayu Desai you guys deserve a big cheer for you work towards Debian. You guys have inspired us to keep contributing inspite of GSoC getting over.
I have started my work with packaging Stage 1 components (Android-platform-external-libselinux) . The packages have been divided into 4 sub categories such that the higher levels depend on the lower ones for updating. So we started out work with stage 1 components. After updating Android-platform-external-libselinux I started my work on Android-parser which parses .bp file to create makefiles by using blueprint convertor.Our mentors have figured out a way to update the package in a planned manner inorder to reduce the dependancy issues that might arise.
- Stage 1
- android-framework-$apilevel
- android-platform-external-jsilver (Usually no update needed)
- android-platform-external-libselinux (should be switched to android-platform-external-selinux from 8.0 release)
- android-platform-external-libunwind
- android-platform-frameworks-data-binding
- android-platform-frameworks-native
- android-platform-libcore
- android-platform-tools-analytics-library
- Stage 2
- android-platform-external-doclava
- android-platform-system-core~stage1
- android-platform-tools-base
- Stage 3
- android-platform-development
- android-platform-frameworks-base
- android-platform-libnativehelper
- android-platform-system-extras
- android-platform-system-tools-aidl
- Stage 4
- android-platform-build
- android-platform-dalvik
- android-platform-system-core
- android-platform-dalvik (Needs android.jar of the latest API Level)
Then I got to update more packages like libscout , apktools and dummydroid. We introduced a new package android-platform-external-boringssl which is a part of OpenSSL but contains only files required by all the remaining android-* packages. And after that I continued my work on updating android-platform-libnativehelper, android-platfrom-system-core, and adding CI Tests to android-platform-libcore and finally dummydroid.
- Commits that have been merged :-
- Android-platform-external-libselinux
- Android-platform-external-boringssl
- Commits yet to be merged :-
- Android-platform-system-core
- Android-platform-libnativehelper
- Android-platform-libcore
- dummydroid
- libscout
- Update selinux to libselinux from AOSP to new upstream version 8.1.0+r23
- Updated makefile in libselinux
- Updated the changelog to include the new upstream version change
- Included myself in the Uploaders list for the package
- Updated rules file
- New Package boringssl has been uploaded to replace openssl to include only binaries required by AOSP
- Updated boringssl install file
- Updated boringssl docs file
- Updated debian control file to include make instead of cmake
- Created a detect arch makefile to detect architecture of the target
- Created libcrypto makefile for libcrypto binary
- Created libssl makefile for libssl binary
- Updated rules file to build with make instead of cmake
- Updated control to update all build dependencies
- Updated copyright files to include updated files and exclude outdated information
- Removed lintian warnings and reduced it to minimum
- Updated libadb install to include changes
- Updated libcrypto_utils install
- Updated rules to overcome shlibs error
- Updated abd makefile
- Updated simg2simg makefile
- Updated libziparchive to include required files from libziparchive directory
- Included utils.patch in series
- Updated libutils to include inner libraries
- Updated libbacktrace to include req files
- Updated append2simg makefile to include shared libraries
- Updated img2simg to include shared libraries
- Updated simg2simg to include shared libraries
- Created a patch to include C++ library version of library
- Included required libraries
- Included libraries
- Defined extern to declare libraries according to compiler environment
- Included libraries for fs_config
- Update adb.patch
- Changed variable name to prevent name conflicts
- Include C++ version of string library
- Updated control file to change build dependencies as latest version of them are still need to be uploaded
- Created libnativehelper makefile to create the binary files
- Included a patch to fix library conflicts
- Lintian warnings reduced
- Updated the git and browser link in the control file
- Updated the dependancy issue. Junit has been included as a dependancy
- Created and Updated gitlab.yml file for CI tests
- Issues were present with the source code, So created an issue in the github repository.(The package has error in it’s source code. So cannot complete building unless the source code is fixed.)
Android-platform-frameworks-compile-libbcc(Currently Working)
- Included the new upstream version (8.1.0+r23) in the changelog
- Created bcc makefile for binary file
- Created bcc_compat makefile for binary
- Created libbcc makefile for binaries
Android-platform-frameworks-compile-slang(Currently Working)
- Created libslang makefile required for binaries
- Included the new upstream version in changelog (8.1.0+r23)
- Included libwriter_3_2 as required by binaries
- Created libstripunkattr makefile
- Created libwriter_2_9 makefile
- Created libwriter_2_9_func makefile
Android-parser(New Parser that parses .bp file to create makefiles)
- Included the blueprint pareser and made changes to parse the input files to produce json file as output
- The python file takes json file as an input parses it and produces the makefile for Debian packaging
- Created readme file for the parser
- My GSoC weekly report for week 1
- My GSoC weekly report for week 2
- My GSoC weekly report for week 3
- My GSoC weekly report for week 4
- My GSoC weekly report for week 5
- My GSoC weekly report for week 6
- My GSoC weekly report for week 7
- My GSoC weekly report for week 8
- My GSoC weekly report for week 9
- My GSoC weekly report for week 10
- My GSoC weekly report for week 11
- My GSoC weekly report for week 12
I am now currently working on android-platform-frameworks-compile where my mentors have suggested me to divide the package into two :- 1.android-platform-frameworks-compile-libbcc 2.android-platform-frameworks-compile-slang So I am now working on resolving the circular dependency between the two and updating them simulataneously. I currently have Job placement exams going on in my university from the past one week , So I couldn’t focus more towards my work as I was preparing for it. I have reported this issue to my mentors. As soon as the exams get over I would like to complete frameworks-compile and all the remaining packages to be packaged before finally updating to android version P. I would like to contribute to debian irrespective of this program. I would like to continue my work with debian for a long time from now. Thank You GSoC for this opportunity and Thank you mentors (Kai-Chung-Yun, Hans-Christoph-Steiner and Chirayu Desai) and Thanks Debian for this wonderful three months.