Help is always appreciated. Most help will probably be in the way of patches sent to anonym (at) lavabit (dot) com. Please do send patches, not entire files. Patches present your changes better and if your changes affect files that have been altered by the developers since you updated, there is a better chance the changes can be applied. Checkout https://tor-svn.freehaven.net/svn/incognito/trunk with Subversion, make your changes, and run "svn diff > whatever.patch" to create the patch. If you are very active and seem to know what you are doing you'll probably get an Subversion account if you want to be a frequent contributor or join the team.
First of all you'll need a Linux installation with Catalyst present which probably amounts to a Gentoo installation. If you run another Linux distribution, see below for instructions for setting up a Gentoo Linux chroot. Additionally, you probably should know something about the following technologies to be able to work with Incognito effectively:
Before submitting patches, please make sure you can build and run the resulting distribution. See building.html for build instructions. You can use an emulator/virtualizer such as Qemu, VMWare or Virtual PC to test it.
Specification for the stage 1-3 tarballs. Don't change these unless you really know what you are doing.
Specification for the main CD build. This gives the packages and use flags that are desired. Do not add packages that depend on the kernel sources being installed, that goes in livecd-stage2.spec.
Specification for the final stage which produces the final ISO image. livecd-stage2 basically takes on from livecd-stage1, adds a boot loader, compiles the kernel and packages depending on the kernel, runs fsscript.sh (see below), removes unnecessary packages and files, etc. Most changes will have to do with livecd-stage2 and mostly you can rebuild this stage to test your changes.
Files for the isolinux boorloader, includung the theme (isolinux/splash.png).
As per standard Catalyst behaviour, this is the CD overlay. Everything in here will be copied to the root of the ISO image. Of particular interest here is the configuration file for the bootloader (arch/x86/overlay/isolinux/isolinux.cfg).
This script is run in the chroot environment of livecd-stage2. Look at it to see some things you might need to do.
This scripts is used to build stage{1,2,3}.spec and livecd-stage1.spec, making them directory independent (the spec files use absolute paths to determine the overlays etc.).
This script does pre-processing for livecd-stage2{,-tiny}.spec. If you need to generate files for the overlay programatically, this is the place to do it.
This will act like a normal Portage overlay.
This will be copied into /etc/portage, so set package specifig keywords, {un}maskings and USE-flags here.
As per standard Catalyst behaviour, this is the root overlay. This directory structure will be copied into the filesystem root in livecd-stage2, which is very practical for putting custom configs in their right place. Below are described some special files and directories in the root overlay which are put there simply to be accessible for fsscript.sh
There are some special init scripts here for setting up locale as chosen in the boot menu, creating/mounting a persistent home directory etc.
All incognito specific scripts are stored here.
All patches (*.patch) in this directory are applied to the filesystem root. It is preferrable to use this approach to smaller changes or additions to scripts or configs compared to overlay them with a complete file using the root overlay since that will need constant attention when the responsible packages are updated.
These are the users' application configs, e.g. firefox-config will be copied to~/.mozilla. The contents of kdesession will be copied into ~/kde/share/config.
Used for the Incognito KDE menu.
Updating packages happens in portage.overlay (or by updating the portage snapshot, but that's restricted and coordinated by the main developers). The following steps with bump the version number. Anything more indepth you'll need to learn how ebuilds work.
NOTICE: No alpha or beta packages unless absolutely necessary! First, people are recording this to a CD or USB, they cannot easily update to the next alpha if something goes wrong. Second, people are counting on anonymity, the packages should be well tested.
If you run another Linux distribution than Gentoo Linux but want to build Incognito with Catalyst, simply fetch a x86 stage-3 tarball from a Gentoo Mirror (preferably the latest release), extract and chroot into it. When inside the chroot, sync portage, update and install relevant applications:
# get a stage3 tarball
wget http://files1.cjb.net/incognito/stage3-i686-*.tar.bz2
# extract it
mkdir gentoo-chroot
tar xfj stage3-x86-*.tar -C gentoo-chroot
# enter new environment (requires root)
chroot gentoo-chroot /bin/bash
# update and install packages
emerge --sync
emerge -auvDN world
emerge -av catalyst # some more might be needed
Then use this chroot enivonment as you would use a regular Gentoo Linux installation for building Incognito.
When using menuconfig for kernel configurations on a different arch than x86, use linux32 make menuconfig (linux32 can be found in the sys-apps/util-linux portage package) to make sure to get a sane kernel config.