# FrugalPup - the package

FrugalPup is all about doing frugal installs of Puppy linux, and managing multiple frugal installs.

The FrugalPup package contains a number of CLI backend scricpts that actually do it, and some GUI scripts, for ease of use.
The main GUI script is, of course, the FrugalPup application itself.

But there are also some companion GUI scripts that provide simple, minimal optioned, installers.
The current companion simple Puppy frugal installers are:
StickPup
The simplest and most restricted installer, that formats and installs a single Puppy to a usb stick, in a single fat32 partition.
f2StickPup
Formats and installs a single Puppy to a usb stick, in a small fat32 partition and a large Linux f2fs partiion.
DiskPup
Does no partitioning or formating; The drive will need to already be partitioned and formatted.
Installs a single Puppy linux in a specified directory, and the boot loader (Grub2) in a specified fat32 partition.
The Puppy linux directory can be on the same partition as the boot loader, or on a different partition.

Warning:
When using FrugalPup or DiskPup to install Puppy on a uefi computer with Windows already installed, it is not recommended to install Grub2 on the fat32 partition that contains the Windows boot. Grub2 should be installed on the first partition of some other bootable device, even if that is a small USB stick.

### uefi - Secure Boot:

The easiest way to allow Puppy Linux to boot on a uefi computer is to disable Secure Boot in BIOS.
If Secure Boot is enabled, every boot has to be authenticated with a key.
The key for Puppies installed with FrugalPup is not installed in the BIOS by the computer manufacturer.
But it is installed by FrugalPup as the file puppy.cer in the root directory of the fat32 install directory.
It is necessary to use the Enroll key from disk option of MOK manager, on this file, once.
A screen providing an option to run MOK manager will be shown before the Grub2 menu, whenever it is needed.
Once the Puppy MOK has been "enrolled", subsequent boots of any Puppy installed by FrugalPup should proceed directly to the Grub2 menu.

# FrugalPup - the application

## Overview

FrugalPup is meant to install and manage multiple Puppy frugal installs, so it has a number of facilities rather than a single wizard.
To install 2 Puppies, you would use the Puppy facility twice to setup the 2 install directories, and then use the Boot facility once to setup the boot loader for these 2 Puppies.

FrugalPup is meant to provide control over all aspects of the install, so it contains a number of dialogs to allow specification of things that might be rarely needed.
To make the use of FrugalPup as easy as possible, a number of these "advanced" dialogs are disabled by default, but can be enabled with the Settings facility.

This structure also provides other opportunities, like:
Use the Puppy facility to update a Puppy install directory after a new version of the iso is released.
Use the Boot facility to create a usb stick that can boot the Puppies installed on the hard drive.
Use the BootCD facility to create a CD that can boot installed Puppies on a machine that can't boot a usb device.

## Facilities

### Help

View this page with "defaulthtmlviewer".

### Settings

"Edit" settings in the config file, "/root/.config/frugalpup.conf".

### Puppy

The primary use of this facility is to copy the relevant files from the source Puppy to the install directory.

But it also contains some dialogs that collect information for use by the Boot facility, simply because the Puppy facility is run for each Puppy installed.
Whereas the Boot facility might be run only once to cater for many Puppies.
These dialogs are referred to as the "optional advanced dialogs", and can be individually enabled or disabled via the Settings facility.

### Boot

Setup the Grub2 boot loader to boot the selected Puppy install directories on a selected fat32 partition.
If the selected directory is the actual install directory of a particular Puppy, Grub2 will be configured to boot just that Puppy.
If the selected directory is the parent of a number of Puppy install directories, Grub2 will be configured to boot all the Puppies in the sub-directories.

The fat32 boot partition must be the first partition on it's containing drive.

### BootCD

Create a non-uefi bootable ISO file.
When this file is burnt to a CD/DVD, the CD/DVD will be able to boot the selected Puppies in place.
These Puppies are not copied to the CD/DVD, they exist elsewhere, either on the hard drive or even a usb stick.
This providess an alternate boot capability to machines that cannot boot from usb.