Packaging

The packaging instructions will guide you from the upstream code to the actual deployment on a certain distribution. The instructions are generic, they have to be adapted according to the packaging standards of your distribution. An overview of the source hierarchy can be found here.

The following individual package instructions require you to download a certain bzr branch. When packaging of course you'll download a specific version from this branch.

The Packaging Process
Depending on the distro you are trying to package to, there are two different situations:
 * 1) Target distro is based on one of the already supported distro's.
 * 2) Target distro is unlike one of the already supported ones.

Related Distro
When your target distro is related to one already supported, for instance CrunchBang Linux is based on Debian, just try to install the LTSP packages for that distribution on your target distro and see if it works. There is no general advise for when this doesn't work. Just go to #ltsp, explain your situation and problem and someone will help you if you're patient.

New Distro
When you are going to package LTSP for a totally new distro, the approach is somewhat different. The next chapters describe the steps to take. Basically the idea is to create a server environment for a client to connect to, build a working client manually, and finally automating the process of building the client.

Creating a Basic LTSP Server
A basic server install is considered one where you're not able to build a chroot automatically. A basic server means to install all required server related packages and commands without the need for a working ltsp-build-client.
 * 1) Package and install the ltsp-server, use only the lines without $DISTRO.
 * 2) Package and install the ldm-server.
 * 3) Package and install the ltspfs.

Manual Client Install
This part will guide you through the steps of creating a chroot LTSP client install on your server. When finished you'll be able to boot this chroot from an actual thin client over the network.

Create a Basic Chroot
The first step is to create a basic chroot install in /opt/ltsp (the default chroot install base).

The chroot creation step is entirely dependent on the target distribution of choice, but the general idea here is to create the most minimal system now, installing ltsp-client will depend on other required packages.

Chroot into your Client
When this step is complete you'll be able to chroot into that environment and execute basic shell commands.

This point in the process offers an opportunity to make your generic ltsp-server a bit distro-specific. With the ltsp-chroot command you can chroot into your created environment with dev and proc mounted. It unmounts these automatically when you exit. It's also able to bind-mount the package cache from the server, given a distro-specific function. Try and create such a function for your distribution by creating a ltsp-chroot-functions in /usr/share/ltsp with a mount_package_cache function in it. Test it by issuing the ltsp-chroot command and installing a small program.

With that working, it is time to create and install the client related programs.

Install the Client Packages

 * 1) Package and install the ltsp-client, use only the lines without $DISTRO.
 * 2) Package and install the ldm-client.

Also, Kernel? Boot method?