The main page is at SummerOfCode2022.

Project scribbles/ideas

Approved Projects

Android SDK Tools in Debian

Description of the project: The Android platform is free software, including the tools used for developing apps for Android. Debian-derivatives are already a preferred platform for Android developers, and stretch already includes the core Android SDK tools, enough to build some apps. The Debian Android Tools team is working towards the goal of having the entire Android toolchain and SDK in Debian. That means Android apps can be developed using only free software from easy-to-use packages. In combination with Replicant, this will make the most popular operating system in the world, Android, into a 100% Free Software platform. This project is in conjunction with the Debian Java team, since many tools like gradle are for any Java software.

  • Confirmed Mentor: Chirayu Desai (UTC+5:30), chirayudesai1@gmail.com and cdesai on IRC

  • Confirmed co-mentors:

    • Hans-Christoph Steiner (UTC+2), _hc on IRC and @eighthave:matrix.org
    • Andrej Shadura (UTC+2), andrewsh on IRC
    • Markus Koschany, apo on IRC
  • Deliverables of the project: The deliverables of this project will mostly be finished packages submitted to Debian sid, both for new packages and updated packages. Whenever possible, we should also try to get patches submitted and merged upstream in the Android sources.

  • Desirable skills: Building and packaging C/C++ and Java code, an understanding of git. Android development is preferable.

  • What the intern will learn: Students will learn to figure out large scale projects like Android, and how to organize their own work within such projects. They will also learn about building and packaging C and Java, as well as some of the guts of Android itself.

  • Related projects: links to some existing projects that are related.

  • Mentors affiliation with Debian: DDs: andrewsh, apo, eighthave DMs: cdesai

  • Application tasks: (simple tasks that could show your determination):

    • Find out what new/missing components (ndk? emulator?) and the location of their source code
    • Check Android Tools bash completion for bugs and completeness (e.g. for adb, fastboot, etc), file bugs if it doesn't work properly

    • build an Android app using only apt install android-sdk android-sdk-platform-23 android-sdk-helper, a very simple app is good for trying

    • anything else you think suitable.

We also have a list of issues that you could work on, see https://salsa.debian.org/android-tools-team/admin/-/issues?label_name%5B%5D=GSoC

  • Related projects: Replicant, the 100% free software Android ROM, uses our packages to provide a 100% free software Android SDK. F-Droid.

There are many chunks of work to be done, sorted in priority:

  • Upgraded Kotlin, which is heavily used by Gradle and the SDK itself
  • Finish packaging version 6 of gradle , which is the official build system for Android apps

  • Restructure build-tools package based on upstream tags and platform-tools source packaging.

  • Make sdkmanager integrate nicely with tools packaged in Debian.

  • Package the latest Android Target Platform Framework (WiP)

  • Finish packaging all of the core development tools (Install android-sdk and compare /usr/lib/android-sdk with the one downloaded from Google)

  • Update android-tools and relevant pkg-java packages to the latest upstream version

  • Create a tool to automatically make packages based on Maven Central's reproducible builds and source tarballs.
  • Create a tool similar to game-data-packager but for Java: make Debian packages with jdeb based on download location, signed/unsigned tarball, build system, etc. These packages would go into contrib
  • Port build systems from Gradle to Maven to
  • Package and improve related tools, like apktool, androguard, fdroidserver, drozer, libscout, qark, OWASP Dependency Check, etc.
  • Improve android-sdk-helper

  • Make all Android Tools packages build reproducibly
  • Add Continuous Integration tests

  • Improve package build systems to be more tightly integrated with upstream build systems (WiP)

  • Package new parts of the Android upstream source, including the NDK, emulators, Android Studio, etc.

Since this project is a large one, multiple mentors and students could work on it simultaneously. You can find relevant documentation in READMEs in each git repo and source package. There is also this wiki section: AndroidTools

There is also a blog post about contributing to this project here

The Debian Android Tools Team works with git and git-buildpackage: PackagingWithGit

Improve Salsa CI

Description of the project: Salsa CI is a Continuous Integration tool set built upon the Debian GitLab instance (Salsa). It provides a pipeline that helps maintainers to ensure a robust development cycle by continuously checking the health of Debian packages before they are uploaded to the archive. Other than checking if the packages build on a clean Debian environment (on amd64 and i386 for now), the Salsa CI Pipeline runs a set of jobs that make use of different tools related to the development of Debian to test different aspects of the packages. After three years of development, the Salsa CI pipeline has become popular (used by ~8k projects, from mariadb to the linux kernel packaging), and it is even the base for more complex CI pipelines used by other Linux flavours (such as Kali Linux or the Continuous Delivery at ALBA synchrotron). There are however different bugs that we would like to solve, whose list could be defined with the interested intern.

Quality assurance for biological and medical applications inside Debian

Description of the project: In the last 20 years the Debian Med project has packaged about 1000 applications used in medicine and biology. In previous Outreachy projects starting in 2016 until last year several packages got Continuous Integration tests. It turned out that these tests are extremely helpful to ensure the quality of the software in the focus of the Debian Med team. Besides testing single packages it needs to be verified that related sets of packages are playing well together and are packaged in a way that the user can expect the maximum performance out of the packages (for instance by ensuring that MPI features are used if available and the hardware features are used as best as possible).

Quality assurance for scientific packages inside Debian

Description of the project: Debian Science Team is one of the largest team in Debian, maintaining over 800 source packages. The team has several QA-related tasks: fix release critical bugs to let packages migrate into the testing release; add the continuos integration pipelines into the Gitlab-projects of corresponding packages to increase the package quility; and autopkgtests letting the CI-system of Debian test its functionality regularly. For some packages such tests were already implemented, so the good example base is existing already.

To add a new project proposal, please enter a WikiName in one of the boxes below (the contents will be used as a wiki page name, please avoid spaces) and hit the button! Then, fill in the template, and drop us a line on the debian-outreach mailing-list.

Please note that below projects aren't approved yet. Please don't apply for non-approved projects. The list of approved projects is available above.

Projects with confirmed mentors

Removed Project

Bringing "FUSS" Debian GNU/Linux to schools outside South Tyrol

Description of the project: FUSS is a Debian based system (https://wiki.debian.org/Derivatives/Census/FUSS) that is being used in around 80 schools in Italy:

The goal of this project is to bring FUSS and therefore Debian and Free Software in one or more school/educational institutions or centers outside South Tyrol. The candidate(s) will receive full support from the mentors and from the FUSS Team to succeed in this endavour. One subtask of the project is to help translating in English language the FUSS documentation available here:

  • Confirmed Mentor: Paolo Dongilli

  • How to contact the mentor: dongilli@fuss.bz.it

  • Confirmed co-mentors: TBD

  • Project size: 350 hours

  • Deliverables of the project:

    • Translation in English language of the above manuals
    • Migraton of one or more schools to "FUSS" Debian according to a migration plan presented by the candidate.
  • Desirable skills: Knowledge of the Debian OS and in general of GNU/Linux. Good knowlege of GNU bash and principal GNU/Linux commands. For the translation task a fair technical competence/understanding is needed.

  • Application tasks:

    • For the translation task, send an English translation excerpt of the above guides.
    • For the installation project you have to try to install a FUSS server and a FUSS client following the English guide available here http://dashohoxha.fs.al/docs/testing-fuss-with-lxd.html (by means of LXD virtualization) or the official FUSS Tech Guide linked above (either using Proxmox as virtualization or simply installing a FUSS server and client on physical machines as the candidate prefers). At the end send a few screenshots of both the server and the clients installed.

  • Related projects: FUSS is member of the Italian initiative called "Repubblica Digitale" (https://repubblicadigitale.innovazione.gov.it/) which on turn is member of the European Digital Skills and Jobs Coalition (https://digital-strategy.ec.europa.eu/en/policies/national-coalitions).

Packaging Brave Browser for Debian

Description of the project: Brave (https://brave.com/) is a web browser with privacy and micropayments features, blocks website trackers and advertisements that are intrusive This project aims to get brave browser packaged for debian, so users can simply "apt-get install" or get it from the software center and use the browser as per their needs. Corresponding RFP: http://bugs.debian.org/864795

  • Confirmed Mentor: Nilesh Patra

  • How to contact the mentor: nilesh@debian.org

  • Project size:: 350 hour

  • Deliverables of the project: Working Brave browser packaged in debian along with proper package QA

  • Desirable skills: Building and packaging C/C++/Javascript source code, understanding of git. Knowledge about browser engines is a plus.

  • Application tasks: Package a dependency of brave

  • Related projects: .