[Samsung Galaxy SL i9003] frapeti:
Well I haven't seen any thread about it and wanted to share it.

Here you can follow this guide to build your own nightly and change what you want.

IMPORTANT: Don't run any shell command logged on as root (sudo su / sudo -i), if any command asks for root permissions just do "sudo command"

NOTE: These steps only need to be performed once. If the build environment is already prepared, skip to Copy proprietary files.

Install the Android SDK

Install the Build Packages

For 64-bit systems:

Open a new terminal and type the following:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 g++-multilib mingw32 oracle-java7-installer pngcrush schedtool tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

Create the Directories

You will need to set up some directories in your build environment.

To create them:

mkdir -p ~/bin
mkdir -p ~/android/system

Install the Repository

Enter the following to download make executable the "repo" binary:

curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo

NOTE: You may need to reboot / restart the terminal for these changes to take effect.

Now enter the following to initialize the repository:

cd ~/android/system/
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync -j16

Where 16 is the number of jobs to do simultaneously, this will download 5~10gb so take a break.

NOTE: This only needs to be done the first time after installing the repository.

By default, CyanogenMod 9 only syncs the core android repositories and none of the device or kernel trees to save both bandwidth and time.

To sync the necessary components for the device you need to do the following:

Start a new terminal and change dir where your repo is actually installed, in this case ~/android/system

cd ~/android/system

Then, you will need to make some changes on a hidden folder called .repo, do the following in your terminal:

cd .repo
gedit local_manifest.xml

That will create a new file, you need to copy and paste this:

Save and close. You should have now a file called local_manifest.xml in ~/android/system/.repo/

Then, back in the terminal you must edit another .xml to fix an issue related with DHCP to make wifi work properly.

cd manifests
gedit default.xml

That will open the file to edit, then you should look (Ctrl+F) for this string: "dhcp" and replace the whole line (starts with "<" and and finishes with ">") for this one:

<project path="external/dhcpcd" name="CyanogenMod/android_external_dhcpcd" remote="github" revision="gb-release-7.2"/>

Save and close. Its almost done. Now you need to sync with the latest changes we did to the manifests, that will download the kernel, device, vendor, etc from teamhacksung repo:

cd ~/android/system
repo sync -j16

NOTE: If some hardware isn't functioning properly, you may need to run the above command again for updated proprietary files.

Download Prebuilts needed by the build:

~/android/system/vendor/cm/get-prebuilts

Check for updates

First, check for updates in the source:

cd ~/android/system/
repo sync

Configure Build & Compile

First of all you must compile the kernel and replace the prebuilt one and modules with the new one (it's outdated).

Fortunately for you, just need to run a script and it's done automatically:

cd ~/android/system/kernel/samsung/latona
./build.sh

Now, the environment must be configured for the build process and then begin compilation for the Samsung Galaxy SL (i9003).

. build/envsetup.sh
brunch galaxysl

1.- Copy your .zip file from ~/android/system/out/target/product/galaxysl/cm-9-XXXXX-UNOFFICIAL-galaxysl.zip to the root of the SD card.

Optional: Download Google Apps for CyanogenMod 9 and place it on the root of the SD card.

2.- Flash both of these .zip files from recovery.

Credits to:

dhiru1602 and teamhacksung

For helping me to build mine flawlessly:

ganeshbiyer

loSconosciuto

alfrix > recommended me to use sun/oracle jdk (oracle-java7-installer) instead of openjdk (openjdk-7-jdk).

If you wish to use OpenJDK instead of Oracle JDK replace oracle-java7-installer with openjdk-7-jdk when Installing build packages stage.