Puli is a member of the Puppy Linux family: a high security, "kiosk" flavor of pemasu's Upup Precise v3.8.3.1, intended to boot from a USB pendrive and run safely even if the boot device is unplugged.

The Puppy Linux Project was established by Barry Kauler in 2003. See legal notice at the bottom of this page.

Special thanks to smokey01, pemasu and OscarTalks.

Changelog related to its predecessor released Aug 2014:

# Auto-boot:
Any number of .pet and/or .sfs packages plus ONE official Chrome .deb file can be auto-booted. Auto-boot is controlled by loadsfs file.
In loadsfs, package referencing is easy: finds the package on boot device based on the first few characters - even the extension can be omitted. Wildcard "?" is allowed.
Tip: Keeping in mind that searching on the USB drive takes time (about 1-2 seconds), you can list all your favourite pet, sfs and Chrome deb files in loadsfs with minus sign (-) at the beginning of lines. Then only those will be auto-loaded for which you removed the minus sign.
Notes:
1. The files extracted from the packages will be copied into the memory in the order of their appearance (means files in a package may overwrite the same-name files of earlier installed packages).
2. This is not a regular install but a simple copy thus the dependencies are not examined. Moreover, this "installation" is not registered in the system. To resolve possible collision(s) between packages, try to change the order of listed packages in loadsfs, or remove/replace those conflicting item(s). Also, you may add some workaround script in /root/zsupp.
Added "Skip auto-loading user packages during boot time" feature. When asked, any char including space can skip loading user packages.

# Size:
Footprint is even smaller than of bark5 and before.
Backup size dramatically reduced (to a few megabytes) in spite of an additional folder (opt) is included. However, you need to use the same auto-load selection in loadsfs to successfully restore the exact status in the past (when the backup happened).
Full backup option: if you run /usr/bin/fullbackup, the backup file will include the (merged) files of the auto-loaded packages, too. Note that the size of the backup file can be hundreds of megabytes in this case.

Note: extra mplayer options (lavdopts) removed to provide higher quality videos. However, they might be necessary for old and slow PCs. Copy the content of /root/.config/nome-mplayer to /root/.config/gnome-mplayer

The browse desktop icon has this preference order to open: Chrome, Links2 - depending on which one is installed.
The paint desktop icon has this preference order to open: Gimp, Mypaint, AzPainter, mtpaint - depending on which one is installed.
The draw desktop icon has this preference order to open: Inkscape, AzDrawing, Inklite - depending on which one is installed.
The Skype desktop icon was replaced by a phone icon. The Chat feature behind it has this preference order: Skype, linphone, xchat - depending on which one is installed. Note that Chrome v35 and above block websites to access microphone/camera thus some popular AV chat URLs such as https://appear.in/puli may not work.
After boot-up, the adblock feature starts and updates the /etc/hosts file.
A newly installed/upgraded/downgraded Chrome attempts to import its preferences from the /root/spot/.config/google-chrome/Default/Preferences.ori file (that the user optionally prepared for this purpose, e.g., for language settings).
Any version of LibreOffice precedes the rest of Office apps, i.e., SoftMaker, and Goffice.

I. How to install Puli:

1. Create a bootable USB pendrive

a. In any Puppy Linux distro/puplet such as pemasu's Upup Precise 3.8.3.1, run the Setup / BootFlash install Puppy to USB utility and follow the instructions there.
b. When finished, delete all files from the pendrive except ldlinux.sys.

2. Copy Puli to the pendrive.

a. Puli and its updates are available at www.smokey01.com/gjuhasz in form of compressed files. Download then unpack the Puli_install.tar.gz file to access the Puli_install folder.
b. Open the Puli_install folder and copy its content into the (root of the) USB pendrive.
c. It does worth to download the sfs folder from www.smokey01.com/gjuhasz into the USB pendrive, too. Puli offers advanced Office options and the newest Java runtime module in those sfs files.

* To have SoftMaker FreeOffice, put a SoftMaker line in loadsfs file on your USB boot device. You need to register and obtain your personal license at Softmaker Software GmbH as detailed below. See the related legal restrictions at /opt/freeoffice/license.txt.
* Alternatively, you can use LibreOffice (without registration) by putting a LibreOffice line in loadsfs file.
* You can reference any number of .sfs and/or .pet files simply by referencing their file name in separate lines of the loadsfs file as shown in the above examples. Puli will find those .sfs files (on the USB boot device) and load them during bootup. Note that the first score will be loaded even if the USB pendrive has multiple files with the same file name.

3. Unmount the pendrive. You are ready, Puli is installed.

4. Before rebooting your machine from the pendrive

a. I recommend to read the following sections, too.
b. If you know what to do, you may configure some startup parameters in syslinux.cfg right now.
c. Ensure that the BIOS is configured to boot from pendrive.

5. Give Puli a go!

II. Puli in a nutshell:

1. Boot-up the PC from the USB pendrive pre-installed with Puli.

a. When asked, log in as root.
b. Type root as password. Later you can change the password and save it for next logins.

2. The QuickSetup dialog pops up. Here, you may configure the system as you want.

a. Check whether timezone, locale and keyboard, etc., are correct and change them if needed.
b. You may right-click the Volume tray icon, select Full window and check/adjust Capture, Mic boost, etc.

3. The USB pendrive gets unmounted. Consider pulling it out when the popup message reminds you.

4. It is recommended to set your own session password.

a. Open console
b. Issue the busybox passwd command.

5. Before you finish, be sure that you left no data on the PC.

6. There are different methods to save your work on the (replugged) USB pendrive:

a. Clicking the backup icon on the right of the Desktop immediately creates a compressed Puli_backup_YYYY_MM_DD_HH_MM.tar.gz backup file in the /backup folder of the USB pendrive. Backups include Backup description. Note that the password files and the content of the .sfs files (installed into /initrd/pup_ro2 and /initr/pup_ro4 folders) are excluded. While those .sfs files are the same, you can restore a previous status from a backup if you drag-and-drop its icon onto the Restore icon next to it.
b. You can decide to create backup by selecting Save: backup on the Shutdown dialog.
c. You can preserve the current settings without creating backup file by clicking the Save: patch button on the Shutdown dialog.

* Be wary of hardware keyloggers. From the tray, open the virtual keyboard and use it any time to enter passwords or other sensitive text.

* Based on the preset user profile, some features, such as Office programs, evince, etc., may start in offline mode for your security

III. For advanced users:

* The installed mesa graphics accelerator version is 9.0.2 for Intel video hardware while 8.0.4 for Nvidia and Radeon devices.

* You may add boot parameters, e.g., pkeys=hu plang=hu_HU.UTF-8, to syslinux.cfg on the pendrive (see among the install files).

* The default timezone is GMT. However, Puli overwrites it with the content of the single-line timezone file from the (root of the) pendrive. Take a look into the /usr/share/zoneinfo folder for correct timezone strings such as Australia/Perth

* If the USB pendrive contains a /patch and optionally a /profiles/Common folder, then Puli updates the filesystem with their merged content during bootup (before X starts).

* The last executed script in the /root/Startup folder is zsupp. It may worth looking into it for the tricks it does. Of course, even zsupp could be updated from /patch before it (zsupp) would run.

* In the Puli package, you can find tricky user profile examples realized by different patch structures. They can be selected/activated (copied into /patch folder on the pendrive) by clicking their fantasy-named profile selector icon.

Mild-tempered

a. This is the default profile, i.e., when there is no /patch folder on the pendrive or it is empty.
b. The network_tray icon becomes red while suspicious connections are active. They are logged in /var/log/suspicious_connections file.

Rigorous

a. Barks as soon as suspicious connections are detected (only during browsing). Then, to prevent hacker attacks, updates the firewall's blacklist with the suspicious hosts.
b. Puli does not release the suspicious host but occupies its available ports in SYN_SENT or similar mode. For details, see profile-specific scripts such as /usr/local/apps/defaultbrowser and /usr/bin/chromium.
c. If you accidentally get false alarm(s), move those friendly IP addresses from /etc/suspicious_hosts to /etc/friends file (and update your patch structure accordingly).

Crazy

a. According to the profile name, Puli makes hackers crazy. It disables the network periodically to prevent their session become effective.
b. Consider to download and enable the Disconnect extension in Crazy profile even if you are in Incognito mode.

* The recommended browser (based on the default settings in the loadsfs file) is a properly sandboxed Chrome version 34 with Flash plugin version 14. You can easily upgrade or even downgrade Chrome using the unique Smart Install feature of Puli:

* In all profiles, clicking the info icon invokes the Links browser configured for smart media recognition capabilities. The Links browser opens also if you click the browse icon while there is no Chrome installed.

* Parental control: Append IP addresses or even domain names (e.g., 1.2.3.4 and/or somename.com) as separate lines to the /etc/suspicious_hosts file (of course, copy it into your favorite patch structure on the UBS pendrive, together with /etc/friends). Puli interprets them and feeds the blacklist automatically.

* Notice that some common Puppy utilities, e.g., default applications chooser and firewall generator, have been removed in favor of the patch-based features.

* Notice also that the .DirIcon of the selected profile folder appears on the Desktop as backup icon.

* If you connected an MTP (Media Transfer Protocol)-capable device (e.g. a mobile phone) via USB cable, open a terminal window and issue mtp+. Now, you can access the device thru the /root/MTP folder. If you finished, issue mtp- before disconnecting the USB cable.

IV. For enthusiasts:

You may need to customize Puli if you want to run it on the same computer. Puli supports this in many ways as follows. But keep in mind that different computers' settings can be incompatible with each other thus their settings should be stored separately, i.e., in different patch profiles.

* During bootup, the .sfs and .pet files listed in loadsfs file on the USB boot device, either as /patch/loadsfs or /profiles/Common/loadsfs, (don't mix - the former overrides the latter, other locations are ignored) will also be loaded if they exist somewhere on the USB boot device. You can reference there as many files as you want - even a truncated but unique basename, e.g., "wine", or (if you are unsure about capitals in the filename) "?ine" is enough to locate "wine_puli-1.7.21.pet". Note that while, on the one hand, only the memory limits the number of the auto-loaded files; on the other hand, they cannot be unloaded in the current session. Puli is prepared to auto-load an (ONE) official chrome .deb package referenced in loadsfs, too. The chrome package name must be like "google-chrome-stable_34.0.1847.137-1_i386.deb" (this is how an official Google Chrome package name looks like).

* Notice that the auto-loaded files are merged into the /initrd/pup_rw folder: they arrive there in the order of their appearence in your loadsfs file. As in other Puppies, you may install five additional .sfs files on-the-fly later (into /initrd/pup_ro4 ... /initrd/pup_ro8). However, Puli offers a workaround if you need to load more than five .sfs files on-the-fly. Menu item Setup > Merge SFS files gets (based on their alphabetical order) the *.sfs files found in /root folder, then merges them into /root/puli.sfs. Move it to the pendrive and reference it as a single item to load/unload it using the Settings > SFS-Load menu item from the desktop.

* You can save your session settings to auto-load them on the same machine next time. The following examples are here only to help understand the basics. However, their result should be similar to what you get by clicking the Save: patch button on the Shutdown dialog.

Example A. Preserving only the audio configuration:

a. Set up the sounds with the Retrovol tray icon.
b. Open a terminal.
c. Issue alsactl -f /etc/asound.state store
d. Copy the /etc/asound.state file into your machine-specific profile on the pendrive.
e. Puli restores the same settings at every boot time.

Example B. Preserving only the network configuration:

a. In Puli, Barry's sns is used to establish network connection. It stores your machine-specific preferences in /etc/simple_network_setup/ folder. Here, wpa_supplicant.conf files contain colons ( : ) in their name which cannot be copied to your pendrive if it is FAT-formatted. If so, replace these colons with equals sign ( = )
b. Copy the /etc/simple_network_setup/ folder to the patch structure of the machine-specific profile on the pendrive.
c. Puli restores those filenames when loading the patch files at startup.

Example C. Preserving configuration items using built-in script:

a. Set up the sounds with the Retrovol tray icon.
b. Check that sns is configured well.
c. If you chose the default Softmaker FreeOffice program, click the write desktop icon to enter the Softmaker FreeOffice licence key. The key is free for registered users. You need to do this only once, at the first usage.
d. In a terminal window, issue permanent
e. The /usr/bin/permanent script asks for a permanent password then saves the sound and network settings into the /patch folder on the pendrive. You can add more lines to save other session files, e.g., bookmarks, browser profile, desktop background or even downloaded files that have been arrived into the /root/spot/Downloads/ folder.
f. Puli reads the saved settings at every boot time from the actual content of /patch folder of the pendrive. It is recommended to store those machine-specific sets in separate profiles then populate the pendrive's /patch folder from the appropriate profile when necessary.

* In contrast to other puppies, you cannot save your session as puli.2fs on the USB pendrive or elsewhere. Instead, use the backup desktop icon or the Save: backup option at the Shutdown dialog. Note that the auto-loaded extra packages are not included in the backup file thus you need to use the same loadsfs file next time to restore the same environment. However, you can run the /usr/bin/fullbackup script from a terminal window if you really want to include the auto-loaded files in the backup file. Note that the timestamp (mdate) of the whole stuff controlled by loadsfs are set back to 2001-11-11 11:11.

* You may refresh the puppy_puli_3.8.3.sfs file with the content of the actual patch structure:

a. Ensure that the pendrive is plugged in (either mounted or unmounted).
b. Open a terminal and issue refresh
c. The temporary files are in the /root/squashfs-root folder. You can manually edit their content there when the script asks for this.
d. Wait until all operations are finished.

* The shrink script does the same as refresh except that it calls the Remove Builtin Files utility before writing back to the USB pendrive. The temporary files are in the /root/squashfs-root folder. You can manually edit the content there when the script asks for this.

* The paint desktop icon has this preference order to open: Gimp, Mypaint, AzPainter, mtpaint - depending on which one is installed.

* The draw desktop icon has this preference order to open: Inkscape, AzDrawing, Inklite - depending on which one is installed.

* The phone desktop icon has this preference order to open: Skype, linphone, xchat - depending on which one is installed.

* Skype installed from Skype-4.3.0.37ap-puli.pet runs as spot but may be silent if the 'apulse' emulator is incompatible with your hardware. Use Skype-4.3.0.37pa-puli.pet to force sound by pulseaudio - but in this case Skype runs as root, which can be insecure.

1. Let me start with "passwd". As written in the intro (Help) text, Puli overwrites the default "root" password with a looong secret one at the earliest possible time. You remain logged in as root, but Puli recommended to set your own session password by issuing the busybox passwd command
2. I admit, not only is the password overwritten by Puli immediately but the "passwd" command, too Well, this is a simple trick that prevents a friend (or a remote hacker) to change your password while you are working.
There are other common utilities such as ptrace and prctl, which are favorite "tools" of hackers who try to get remote control over your system. Puli knows that only malicious attackers try to act this way, so pops up the same alert message as for passwd. Remind that neither ptrace nor prctl are implemented in the original Precise 3.8.3.1 thus nothing has been lost.
Let me attach an example of setting a default password different from "root" and forcing Puli to replace it with the same one. If you copy /etc from the extracted attachment into the /patch folder of your pendrive, your default password will be L18L at boot time and will remain L18L for the current and future sessions.

Regards,
gjuhasz

P.s:. Ein herzliches Dankeschön an die deutsche Übersetzung!
However... I would appreciate if my Puli logo could appear also in the German version... see as /usr/local/lib/X11/pixmaps/puli96.png

The next Puli version will include a desktop icon for a script (or feature) like this.
In Puli, I do not offer automatic or manual saving to pupsave.2fs in favor of the planned "carve in stone" feature.

Thanks for the interesting version of Puppy, it works well in my Asus laptop.

In the current version of Puli the Chromium browser default language seems to be Hungarian and this brings Hungarian words e.g. to the menu of www.google.fi page. I can get it work normally if I remove the Hungarian from the Chromium language selection. Obviously this change will not be saved, when I restart Puli the Hungarian language is still there. This applies just Cromium browser, the language and keyboard selections of Puli itself are OK.

The simple script below can be used for restoring backups. Copy it into the root of the USB pendrive where the backups are saved. To restore a previous status, simply drag a backup file and drop it on the Restore icon.

I am actually working on the New Years Eve version of Puli. Among the bunch of new features, you will find a more comfortable Backup and its Restore counterpart. In addition, as a surprise, I will introduce the "crazy" profile.
Fasten seat belts...