Go to the location of your main sfs file (in this case, it is a frugal install to sda5/pup431)

If you are running the version that you want to remaster you will have to make a symlink to your main pup-XXX.sfs file because it is already loaded.

Right click on your main sfs file to make a link (usually pup-XXX.sfs)

Here I have made the symlink in /root and RENAMED to pup.sfs, but any location is fine (renaming is important because there will already be an sfs with the original name loaded)

Click on the symlink you just made to the main sfs to mount it.

Now right click to make a directory to copy the main pup sfs file system into.

Choose a mounted drive with at least 5x the size of your original sfs and new pets combined.

(If you have a lot of ram (1GB+) it will go faster if you choose /dev/shm/ )

Now we can copy the mounted filesystem into our build directory.

Go to the mounted filesystem and click the select all icon.

Now drag and drop the selected folders to your build directory and select copy (in this case /dev/shm/pup is hidden by the copy dialog)

Now you will need to convert the your pet packages into directory structures.

If you have most of your pet packages in one directory, you can batch rename them by using the select all button or by left-clicking and dragging the mouse to highlight the desired packages and then holding control and left clicking the mouse to select/un-select as necessary.  Once you have all of your pet packages highlighted, right click on any of the highlighted .pet packages and select “rename”

To batch rename the files, enter .pet into the replace box and .tar.gz into the With: box.  Then click Apply AND Rename.

Now convert the rest to tar.gz by right clicking on each one and changing .pet to .tar.gz

Once you have renamed all of your pets, just click on each tar.gz to open with the pupzip (usually xarchive) so that you can extract them.

Now click on the extract button to extract the directory tree.

It will then give you a dialog asking you where to extract - anywhere is find as long as you can remember it, but it may be best to keep all of them in the same folder.

It will exit with an error - this is OK. .pets just have an md5sum that the wrapper cannot handle and it is not needed for this operation.

Once you have extracted all of your tarballs (.tar.gz files), copy the directories only from each package's folder into the build directory. No need to copy the pet.specs.

In this case the only directory is <package>/usr and there are no image files or pinstall.sh or puninstall.sh. so here is a briefing on those less common cases.

Smaller (usually .xpm) image files should be copied to <build_dir>/usr/share/mini-icons

Larger (usually .png) image files should be copied to <build_dir>/usr/share/pixmaps

pinstall.sh and puninstall.sh are beyond the scope of this tutorial, but you may right click on them and "open as text" to get an idea what may need to be changed.

At this point you have all of your pet packages installed. You can do the same thing with sfs files, but much easier. Just click to mount them and then copy the directory trees to your build directory as you did for the .pets.

Now your sfs file system is ready to be built, but you may want to copy over some configuration files and the like.

/root/Choices/ROX-Filer/PuppyPin - for your desktop icons (location)

open as text first and remove your system specific drive icons similar to:

<icon x="32" y="736" label="sda1" args="drive ntfs">/root/.pup_event/drive_sda1</icon>

and set your default background

<backdrop style="Stretched">/usr/share/backgrounds/default.jpg</backdrop>

(don't forget to copy over your background image)

/root/Choices/ROX-Filer/globicons & /root/.config/rox.sourceforge.net/ROX-Filer/globicons - for icon image settings

There are config files for most programs as well. They are usually /root/.program or /root/.config/program. Copy those over as necessary too if you don't want the default configuration.

Feel free to make any changes you like while you have the chance, such as culling out extra files or removing programs.

/usr/bin /usr/sbin /usr/local/bin will likely contain the executables

/usr/lib/libprogram.so* and /usr/lib/program/*.so for the corresponding libraries

/usr/share/program/ for the extra files

/usr/share/applications/program.desktop for the menu entry file

Once you have done all of your tweaking, it is time to squash your build directory into an sfs file. You can do this by simply dragging the build folder to /sbin/dir2sfs

This process will take a while. You will see the corresponding sfs file almost immediately, but it is not finished until you see its corresponding .md5.txt file

You should now have a functional sfs file to insert into your iso. If you have a frugal install you can replace the original sfs with your new one to test it. (You may want to back it up your original sfs)

We will use isomaster to replace your old sfs file with your new one. To do this, first open isomaster.

Now open the original iso file using the isomaster file menu or press Ctrl+o.

Navigate through the file selector and select your original iso.

Now you should see the file structure of the iso in the bottom isomaster window.

(If you haven't already, make a backup of the original iso - right click on it and copy)

Select the original sfs file and then click remove.

In this case our original is named pup-431.sfs. We need to rename our new one to match. Just right click on it and rename it. Then use the top window of isomaster to navigate to the new sfs (now with the proper name) and click on the add button.

The iso is now ready. All you have to do is save it (and optionally burn it) Just use the file menu and select "save as" or press Ctrl+s

Thats it!!