How can you help Raspbian?
Warning: VERY long post ahead.
Often I get requests from people that have received their Raspberry Pi to help Raspbian out by helping to build Debian packages. Unfortunately, the autobuild system is pretty rickety and it would be a lot of work for me to include builds that are done outside the firewall. We're getting close enough with the builds that I would rather not stop everything to make such modifications to a working, but fragile, build system. Also, there is the consideration that the Raspberry Pi has limited resources to build packages and there is no way to control what builds might automatically get directed to a Pi. Raspberry Pis could easily have builds thrown at them that they just wouldn't be able to build which would just slow everything down.
I very much appreciate the offers to help, but using Raspberry Pi's in a geographically distributed manner to build Raspbian just isn't realistic for getting the initial builds of packages completed as soon as possible.
With that being said, if there are ambitious people with Raspberry Pi hardware and a strong desire to help move Raspbian forward, below are a handful of projects important to Raspbian that I hope people will consider taking on.
1. Debian Kernel Package for Raspberry Pi
Normally, Debian systems have two main packages related to the Linux kernel -- linux-image and linux-headers. There are also a number of secondary packages built along with the kernel that include device modules, file systems, etc... A list kernel packages associated with Debian Wheezy can be found here:
http://packages.debian.org/source/wheezy/linux-2.6
We need to have an equivalent set of Debian packages that bundle up the kernel that can be installed using apt-get. Such a package will be a critical component of Raspbian and an important part of the Raspbian installer which I describe below.
It would be a great help to have someone take the lead on creating the kernel package for Raspbian an then updating it frequently to reflect kernel updates and patches as released by the Raspberry Pi Foundation and broadcom.
2. Debian Installer
Pretty much every port of Debian maintains a customized version of the generic Debian Installer. I believe the Raspberry Pi should have it's own version of the Debian Installer that conforms to Debian installation priciples. Such an installer will allow a person to boot their Raspberry Pi to the installation menu and they can install a fresh copy of Raspbian completely tailored to their needs. Prebuilt SD images are great, but an installer is really the "Debian way" of getting a system going. Something that Raspbian should honor.
A basic overview of the Debian installer can be found here:
http://www.debian.org/releases/stable/i386/ch06.html.en
Information on how to customize the generic Debian installer can be found here:
http://www.debian.org/releases/stable/i386/apb.html.en
I think this would be a great project for someone with Raspberry Pi hardware as it is not so much building code, but more about understanding Debian installation principles, understanding the Raspberry Pi and customizing the installation process to something that makes sense with regards to the primary mission of the Raspberry Pi.
3. Raspberry Specific Hardware Packages
The Raspberry Pi includes custom binary libraries for accessing the proprietary features of the GPU. Specifically OpenGL ES and OpenVG libraries as well as a handful of others. We'll need to get these libraries, make sure we get them compiled by those that can for the hardfloat ABI that Raspbian uses and then have them packaged up in a way that they can be installed with apt-get.
Like the kernel, we need someone who can install take ownership of this task and initially create the packages as well as update them as changes come from the Raspberry Pi Foundation and/or Broadcom.
4. Port Linux Mint Packages to Raspbian
I greatly respect what the folks at Linux Mint have done and I think there are some wonderful things there that can make the Raspbian more aesthetically pleasing and easier to use. I would like Raspbian to borrow whatever makes sense from Linux Mint. In particular I would love to see Mate ported to the Raspberry Pi. Assuming of course, it isn't too CPU intensive.
It would be great if someone could examine the Linux Mint Debian Edition (LMDE) and see which, if any, packages would make sense to port to the Rasberry Pi. The Linux Mint Debian specific packages can be found here:
http://packages.linuxmint.com/list.php?release=Debian
In communications with Clement Lefebvre regarding Linux Mint, I got from him the following information. At Linux Mint they don't use any toolchain or automated builds. All packages are built by hand. They do use a tool called mintconstructor do some dirty work and then dch and dpkg. Code is stored in:
http://github.com/linuxmint
Their repository is segregated as follows:
- main is for packages they maintain themselves
- upstream is for packages they modify and pin from upstream (whether that means Debian or Ubuntu)
- import is for packages they add (such as Opera, Google Earth etc etc..)
- backports isn't really used
- romeo is used as a temporary zone to test packages before they go to one of the above sections (it's their unstable zone).
----
In summary, I hope these are meaty enough projects to interest those that want to help move Raspbian forward to become the leading Linux distribution for the Raspberry Pi. If nobody steps forward I'll eventually take them on myself, but it could take months to work my way through them. Help from the community could turn those months into a few weeks to see these important projects completed.
Also, this list is not meant to be the only things we'll be doing soon with Raspbian. If there are other projects that people want to contribute to Raspbian that aren't listed above, by all means let me know. I'll do my best to accommodate meaningful contributions that will enhance Raspbian for everyone.