Contents
-
I want to contribute to Mobian
- I want to learn
- I don't have technical skills
- I have basic tech skills
- I have development experience
- I have Debian packaging experience
- How can I edit the wiki?
- What is the process to become a mod/developer?
- Who should I talk to if I want to do any of the above?
- I don't know how to package for Debian!
- Packaging
- Adding support for a new device
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:
Matrix: #mobian-dev:matrix.org
- IRC: #mobian-dev on OFTC (bridged to the Matrix room)
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:
- Writing documentation
- Community engagement, such as:
- Helping out new users
- Help us run our Blog/Twitter/Fosstodon Channels
- Moderating our Matrix Channels
- Run Mobian and help report bugs
- Translating upstream software
I have basic tech skills
Please help us with:
triaging issues on Salsa https://salsa.debian.org/Mobian-team/
- Filing high quality issues upstream
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:
Maintaining or adding new packages (preferably in Debian first, here is our wanted packages)
- Keeping device-specific kernels up-to-date
- Adding support for new devices
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.
- If you wish to help mod, please help out the moderators or ask one of the currents mod if you are interested
- If you wish to help package for Mobian, please make the package and ask one of the Mobian Devs to look at it.
- If you wish to develop a feature, don't let us stop you! When you think you have something to show, please show it off in Mobian and ask how to get it into Mobian.
- If you wish to become an official packager/maintainer, please ask one of the mods too.
If you wish to help with translations, please check how it's done for the software you want to provide translations for. For GNOME software https://l10n.gnome.org/ would probably be the right address
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
Use https://salsa.debian.org/ for Debian packages
- Use git-buildpackage
- Do not set the distribution field in debian/changelog unless you are uploading the package
- Enable Salsa's CI
- Configure autopkgtest where useful
For simple packages requiring little patching:
- Use quilt or gbp-pq
- Use debian/watch and uscan to fetch tarballs instead of tracking upstream git repositories
For packages requiring complex patching and tracking of upstream repositories:
- Use gbp-pq
- Track upstream git 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
See how things have been done in Salsa DebianOnMobile Team
Use Codesearch to search for examples (removing files, generating manpages, etc)
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.
