pulilogo Welcome to Puli 6.0.2, released March 2015

Puli 6.0.2 is a member of the Puppy Linux family: a high security, "kiosk" flavor of 666philb's tahrpup 6.0.2 CE, intended to boot from a USB pendrive and run safely even if the boot device is unplugged.

This 32-bit, non-PAE Puli has kernel version 3.14.20.
Pevious barks of Puli are discussed at http://murga-linux.com/puppy/viewtopic.php?t=88691
The Puppy Linux Project was established by Barry Kauler in 2003. See legal notice at the bottom of this page.

Special thanks to 666philb, smokey01, pemasu, S-kami, Kros54 and my colleagues, including ethic hackers who helped me with their feedback about Puli.

Have fun!



I. How to install Puli on an USB pendrive:

1. Create a bootable USB pendrive

   a. In any Puppy Linux distro/puplet such as Puli 6.0 or Puli 3.8.3 bark 6 or pemasu's Upup Precise, click the Install icon on the desktop. Then in the Install dialog, click the BootFlash USB installer button and follow the instructions there. (If you don't have Install icon, try to select menu item Setup / BootFlash install Puppy to USB.)
    * Bootflash may not be on your Puppy's menu. It may, however, be builtin. Try opening a terminal and typing bootflash
    * Worst case, download and use smokey01.com/gjuhasz/sfs/bootflash-0.6p.pet
   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 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 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 smartload 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 smartload file.
    * You can reference any number of .sfs and/or .pet files simply by referencing their file name in separate lines of the smartload file as shown in the default smartload file included in the release. Puli will find those packages (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 passwd command and follow the instructions.

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: smart 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.

* Some features, such as Office programs, evince, etc., may start in offline mode for your security.


III. For advanced users:

* Just after boot-up, the advert-blocker feature updates the /etc/hosts file to block annoying commercials.

* 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.

* By clicking on different Office files, the appropriate program opens based on MIME type, i.e., abiword gets the .docx files while textmaker handles the .doc; clicking an .xls opens planmaker while .xlsx invokes gnumeric, etc.

* 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 Mild-tempered
   a. This is the default profile, i.e., when there is no /patch folder on the pendrive or it is empty.
   c. The network_tray icon becomes red while suspicious connections are active. They are logged in /var/log/suspicious_connections file.

 rigorous 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 Crazy
   a. According to the profile name, Puli makes hackers crazy. It disables the network periodically to prevent their session become effective.

 lazy Lazy
   a. Similar to the mild profile with one tricky exception. While browsing in this unique profile, your lovely Puli becomes lazy and goes asleep. More precisely, the Linux utilities (those in the /bin folder) become inexecutable, preventing a hacker or even a trojan malware to initiate shell scripts or issue commands. In the script behind the lazy profile selector icon on your USB boot device, you can define the full path where you want to run the "disappeared" Linux utilities in lazy mode. You may leave the default /ban/ setting as is, or write a path like lazybin="/usr/share/foo/" (with slash at the end). Of course, you need to re-activate the lazy profile by clicking its profile selector icon, then reboot. Be careful! If you put an existing folder name above, its original content may be overwritten! Warning! Do NOT select a folder from those in the search path!
   b. Some features behind icons file, info, edit, write, calc, phone remain active only for you.
   c. During browsing, clicking on the leftmost dog icon toggles between the lazy and the mild profiles. While you see a "glowing" mild icon, you can click on the rest of desktop icons, and the menu items.
   d. The drive icons are replaced by an inactive drives icon during browsing in lazy mode. While toggled to mild mode, clicking on the drives icon invokes Pmount.
   e. Warning! Do not unplug any mounted drive while browsing in lazy mode!
   f. If you close the browser, all features are restored in a few seconds (i.e., the dog icon initiates backup and the drive icon(s) appear again).

* The default browser 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:

   a. Download a 32-bit Debian (*_i386.deb) package (any stable, beta or dev) from this link, or based on this query. (The actual stable version is here)
   b. After downloaded, simply click on it (or select Smart Install from the right-click menu). Note that the newly installed Chrome attempts to import its preferences from the /root/spot/.config/google-chrome/Default/Preferences.ori file (that you optionally prepared for this purpose, e.g., for language settings).
   c. If you like the just installed version, then copy the /opt/google/chrome folder to your patch structure on the boot device.

* In all profiles, clicking the info icon invokes the Links browser configured for smart media recognition capabilities.

* Parental control: Append IP addresses or even domain names (e.g., 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 smartload file on the USB boot device, either as /patch/smartload or /profiles/Common/smartload, (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. Puli is prepared to auto-load an (ONE) official chrome .deb package referenced in smartload, too. The chrome package name must be like "google-chrome-stable_34.0.1847.137-1_i386.deb".

* Notice that the auto-loaded files are merged into the /initrd/pup_rw folder: first the sfs files, then the pet files, in the order of their appearence. 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: smart button on the Shutdown dialog. In this case the files in the /smartsave folder will be executed before shutdown. Note that some Puli-specific .pet or .sfs packages may add their own to the /smartsave folder (you can find its default content in the boot device: either as /profiles/Common/smartsave or as /patch/smartsave).

 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.
   c. 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 smartload file next time to restore the same environment.

* You may refresh the puppy_puli_6.0.2.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, LazPaint, 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, https://appear.in, xchat - depending on which one is installed. Note that https://appear.in is limited to typing in Chrome versions between v35 and v40, because they do not allow camera/mic usage in WebRTC API.

* Skype installed from Skype- runs as spot.




Note that although Upup Precise has Busybox, which is a very small toolkit of utility applications, in some cases they do not have the required functionality and are replaced by the full versions. These replacements include: modprobe, cat, cp, df, gzip, gunzip, losetup, ls, mkdir, mv, rm, sed, sort, tar, wget, date, find, grep, fgrep and egrep.

Note that Puppy Linux applications are open source and under various GPL licences, however there are a few exceptions.

SoftMaker FreeOffice: The licence description is available at /opt/freeoffice/license.txt. Free Edition is just that, free, no embedded adverts, with restrictions decsribed in the license description. I would like to do the right thing by the developer, Softmaker Software GmbH, though, and recommend that you consider the full edition of SoftMaker FreeOffice.

Some releases of Puppy have the Opera web browser, which is closed source but free.

Some releases of Puppy include the Adobe (formerly Macromedia) Flash plugin for the web browser. This is closed source but free. The distribution licence requires that I include the logo and a link to the Adobe site.

Legal notice:
I, Barry Kauler, established the 'Puppy Linux Project' in January 2003, first website and product release 18-June-2003, and I have trademark claim to the name and typed drawing of 'Puppy Linux', 'PuppyOS' and 'Puppy' as it relates to "computer operating system software to facilitate computer use and operation", under Federal and International Common Law and Trademark Laws as appropriate.
Programs in Puppy are open source (except where noted above), and licences of individual products are duly acknowledged. The name Puppy Linux", also known as "Puppy" and "PuppyOS", and all artistic creations thereof, are copyright (c) 2003,2004,2005,2006,2007,2008,2009 Barry Kauler -- further details in the online FAQ.

Very simple, use entirely at your own risk. Barry Kauler accepts no liability or responsibility whatsoever, and you use Puppy with this understanding.