# Puredyne/How to broth

Five steps to produce your own customized Puredyne LiveCD:

## Step 1: Required tools

If you're using a debian or ubuntu system, first make sure you have installed the development tools that will be used by broth:
If you're running from puredyne then these are already installed.

## Step 2: Get broth

Get Broth from Launchpad via bazaar:
bzr branch lp:broth
This will download a folder called "broth" containing the latest version of the broth scripts and config files.

## Step 3: Choose your flavouring
### 3.1. Changing the list of packages to be installed

In case you want to remove one of the main entries of the CUSTOM default recipe, edit the profile for the type of live media you are creating, in our case:
Each of these "#include" statements includes a separate file, in which desired package names are listed.
Since we wanted all of the above, we contine to edit only one of the included entries:
<syntaxhighlight lang="text"> cd stock/chroot_local-packageslists/ nano audio </syntaxhighlight lang="text">
We can delete any application name we don't want (or "comment it out" by adding the hash sign # in front). Is worth to say we not just removed but added software we needed after checking the repos for packages to include:
<syntaxhighlight lang="text"> sudo aptitude search nmap </syntaxhighlight lang="text">
and then adding the exact package name in the <net> file:
<syntaxhighlight lang="text"> nano stock/chroot_local-packageslists/net </syntaxhighlight lang="text">

### 3.2. Adding your own scripts/datafiles

The path stock/chroot_local-includes/ contains files and folders that will be directly added to the disk image. So, if you wanted there to be a folder /etc/john in the finished product, with a couple of data files in, you would create the folder stock/chroot_local-includes/etc/john and put the data files into it.
Sometimes you want to add files not to a hard-coded path, but to the user's home folder. (For example this might be useful for changing a configuration file for the live user.) In many Linux distributions, this is done by adding files into /etc/skel, and they are then copied into the user's home folder when the user is created. So for example, if you wanted the user to have a file in their home folder called "orig.jpg", in broth you need to place it in stock/chroot_local-includes/etc/skel/orig.jpg.

## Step 4: Let's cook

More or less this was the drill, the when you are happy just run:
./broth.sh -o CUSTOM
and wait for a bit (aprox. 20-40min depending on you network connection to the repos). This phase takes a while, and outputs pages and pages of text info, because many packages are being installed to the live image.
(You'll normally be asked for your password at the start. That's OK.)

## Step 5: Serve

When the process finishes you'll see something like:
P: Begin unmounting filesystems... soup is ready!
The image will be waiting for you in:
../puredyne-build-i386/binary.iso
Finally, burn your image to a CD or DVD and you are done! (You can use a program like k3b to burn .iso images)

## Other customisations

* Some cron jobs and scripts? Add to includes in: /stock/chroot_local-includes/etc/cron.d/

## Questions

* when i ran broth for the first time, it took a good while to produce the image, such time lapse has not being significantly reduced after subsequent .iso builds, is there a way to make the process faster, like avoiding the download of packages that are already on the local?
** You (or the local network admin) could set up a .deb cache server, but that's not particularly easy/quick to set up.
* is there a way to modify the splash screen used by grub?
** Yes. The easiest way is to replace stock/chroot_local-includes/usr/share/images/desktop-base/grubsplash-puredyne-logo-simple.png