I want to contribute to Mobian

We are glad you found this page and are motivated to help out! This document will describe how you can contribute to the project.

We recommend you also read our Roadmap and Developer's Guide.

You can also reach out to us using the following channels:

Please note the above channels are for development discussions **only**, non-developer users should join #mobian:matrix.org or #mobian on OFTC instead

You may have a great idea none of us thought of before. If you have an idea and want to contribute by it, tell us your thoughts!

I want to learn

We are happy to help mentor you and help you. But please understand that the Mobian devs are all volunteers, so we can only "teach you to fish", and expect a fair amount of self-motivation.

I don't have technical skills

There are many very important ways you can help Mobian:

I have basic tech skills

Please help us with:

I have development experience

There's plenty of work to be done improving upstream software used in Mobian (features, bug fixes, etc). A common need is to adapt application to the size of the screen.

We also welcome folks with kernel experience to improve device support in Mobian.

See our Roadmap for things Mobian wants to focus on.

Feel free to also ask what you can help out in our development matrix channel

I have Debian packaging experience

We always need help in:

Feel free to also ask what you can help out in our development matrix channel

How can I edit the wiki?

Currently, the wiki page is open access to anyone. Sign up for an account and then see Teams/DebianWiki#Interacting_with_the_team, since (as an antispam measure) you will likely have to email the Debian Wiki team (see the private contact) in order to be able to create an account: give a brief justification of why you would like a wiki account.

When you edit, please check that the information is up-to-date, verified and in the place where people will naturally expect to find it.

What is the process to become a mod/developer?

Spend time interacting with us.

Most of the above requirements require time and trust. Most of the Mobian developers only know each other from online presence, which as you can guess, causes unique challenges for trust.

Who should I talk to if I want to do any of the above?

Please talk to any of the mods in our Mobian Matrix Channel.

I don't know how to package for Debian!

We understand packaging for Debian can seem daunting. Many of the Mobian developers are also on the ?DebianOnMobile team and maintain those packages. You can see examples of packaging here. The Debian Policy is a great reference is you have any specific questions on packaging. As a general introduction we refer you to the Debian wiki on packaging which has a guide, a tutorial and more general information about packaging.

As luck would have it there is an upcoming Live packaging workshop at Debconf21 (Aug 25): https://debconf21.debconf.org/talks/54-live-packaging-workshop/

You can see examples of packaging here: https://salsa.debian.org/DebianOnMobile-team

The Debian Policy is a great reference is you have any specific questions on packaging: https://www.debian.org/doc/debian-policy/index.html

As a general introduction we refer you to the Debian wiki on packaging which has a guide, a tutorial and more general information about packaging: https://wiki.debian.org/Packaging

If after this you are still having trouble, feel free to reach out in the Mobian Matrix Channel.

Packaging

To contribute to Mobian you can help with the packages under https://salsa.debian.org/DebianOnMobile-team

Keep in mind that a lot of packaging can be language-specific rather than device-specific. In that case it might be useful to maintain the package with help from another team: see Teams.

In packaging, a lot of effort goes in reviewing/auditing upstream software for dubious or even malicious code; checking the copyright and licensing for violations; unbundling dependencies; testing the build process on multiple architectures; interacting with upstream developers to fix bugs or improve integration or security.

Configuring files in the debian/ directory is only a fraction of the effort. If you are not familiar with tooling and policies but have good knowledge of a language you can contribute a lot to Mobian: get in touch with the team and help with the activities listed above.

Packages under DebianOnMobile-team

For simple packages requiring little patching:

For packages requiring complex patching and tracking of upstream repositories:

# Install required tools
apt-get install git-buildpackage pristine-tar lintian

# Clone repo
gbp clone <uri>

# Import new releases with
gbp import-orig -v --uscan

Adding support for a new device

Preliminary notice: Mobian is commited to reducing its delta with both Debian and upstream projects. As a consequence, we do not use Android (aka "downstream vendor-provided") kernels nor Halium, and request that all supported devices use a mainline-based kernel, ideally no older than the current LTS kernel. This requires extensive work for both hardware enablement and patch upstreaming, and some of your device's features might not be enabled at all in the current state of mainline kernels. If you need full functionality and/or cannot use a mainline-based kernel for your Android device, please refer to Droidian instead.

We currently lack both the documentation and the tools to ease porting Mobian to new devices. There have been past attempts at providing an easier way to build an image for a new device, but those efforts have currently stalled. Any help for improving this situation will be greatly appreciated!

For now, the best way to get help with porting Mobian to a new device is to join the #mobian-ports:matrix.org Matrix room.