Puppy developer news:
| Older news||Later news
I have uploaded Puppy with the below-mentioned bugfix. The files are puppy-0.9.8R2-firefox.iso and puppy-0.9.8R2-opera.iso. Currently they are uploaded to www.nstsoftware.com/puppy only, as ibiblio.org is incredibly slow -- too many people on holiday right now, overloading Ibibilio! I'll try to upload to Ibiblio again soon.
Note, Ibiblio seems to have a bug in its file caching. I did succeed in uploading puppy-0.9.8R2-firefox.iso, and gFTP showed that the full number of bytes had been uploaded, however when gFTP asked Ibiblio for a list of files, Ibiblio truncated puppy-0.9.8R2-firefox.iso to the same size as puppy-0.9.8-firefox.iso. This is not a one-off thing, it has done this to me before. I verified the file was indeed truncated to the same size as the other, by telnet-ing in and listing the files. My guess is that there is a bug in the upload caching software ...I wonder what ftp server they are using?
GuestToo has reported on the Puppy Forum that there is a bug with the latest Puppy. The "swapon" command is supposed to be executed by the boot scripts to activate a swap partition, if one exists. This increases the effective size of the ramdisk. However, I forgot to put in the appropriate line to execute swapon. This bug will not affect most people, however, if you install Puppy to 128M USB and bootup on a PC with less than 256M, there may be a problem -- even then, there will only be a problem if the hard drive has a Linux swap partition.
Well, bugs do happen. I'll wait a few days, see if anything else emerges, then upload a bug-fix release.
Puppy version 0.9.8 released. Puppy live-CD ISO file with Firefox is 51.9M, or with Opera is 49.5M. Release notes:
- Puppy now has Planmaker Free Edition Excel-compatible spreadsheet editor. Although this is closed-source, it is free, no usage restrictions and no embedded adverts.
- There is a new accounting program called Grisbi. This is excellent for personal finance and would suit many organisations. Grisbi is able to import GnuCash files.
- There is a new presentation design program called Impress, similar in concept to PowerPoint. Note that PowerPoint presentations can be indirectly imported into Impress by exporting them from PowerPoint in Postscript format.
- The internal HTML file viewer, phv, has been considerably improved. I upgraded tkhtml from 0.0 to 2.0. phv now has forward and back, bigger-font, smaller-font, and text-search buttons. There is also copy to clipboard.
- Puppy has undergone some structural changes. In particular, the reliance on fixed-size ramdisks is mostly gone, and Puppy runs in a tmpfs ramdisk, that has flexible size and is able to use a swap partition. The file usr_cram.fs now uses squashfs instead of cramfs.
- Another important structural change is that when Puppy is installed to a USB Flash drive, writes to the Flash drive are eliminated during a session, greatly extending the lifespan of the drive.
- The PCMCIA package pcmcia-cs is now installed. Specifically, the files cardmgr, cardctl, ifport, ifuser, scsi_info and ide_info are in /sbin and all of /etc/pcmcia is installed. PCMCIA support is still a work-in-progress -- see the Puppy Discussion Forum.
- A small GUI utility program, Pup-Get, has been written to make it even easier to download and install external packages. New external packages: tgif.tgz, luckydip.tgz.
- New utilities: netstat, autocutsel, shutdown, mksquashfs, iwlist, stat. ltmodem modules updated to v8.31a10.
- The install-to-hard-drive and install-to-usb scripts have been overhauled. In particular they now offer a choice of "new installation" or "upgrade".
- I have written two new web pages, "How to compile kernel drivers for Puppy" and "How Puppy works". The main Puppy page now has a "mission statement".
- Removed: ABS spreadsheet editor (now in luckydip.tgz), Slidedraw presentation designer.
- Note, the Opera version of Puppy now has the same applications as the Firefox version, including Gaim and Planmaker.
Notice that this new release is smaller than the previous, despite many new applications (Planmaker alone is about 8M uncompressed). The reason for this is that the file usr_cram.fs now uses squashfs rather than cramfs.
Puppy has the gdkxft library to provide antialiased font support for GTK 1.2 applications. Currently this is only being applied to Amaya, the WYSIWYG HTML editor, but it sometimes does not work, for reason that is proving to be evasive. So, when you are using Puppy, you will see two entries for Amaya in the menu, one labelled "Amaya NO ANTIALIASED FONTS" -- use that if the antialised fonts do not work. gdkxft is so troublesome -- we need to lobby the Amaya developer guys to upgrade to GTK2. Well, run Amaya without the antialised fonts and you'll see for yourself how awful the font rendering is!
There is a bug with the install-to-hard-drive-Option2-upgrade script. At Step 6 in the script you will see this message "readlink: readlink: /mnt/data/etc: invalid argument". Don't worry, it's harmless.
Of course, considering all the structural changes, an undiscovered bug or two is maybe hiding there. If you discover it, let us know on the Puppy Discussion Forum.
To-do list: Just to let you know, the main focus of development between now and the release of version 0.9.9 is intended to be on hardware compatibility. For the X server, I want to be able to adjust the scan frequency, and handling of scroll-wheel mice needs to be improved. The pcmcia-cs package is now installed, and there are some success stories in the Forum, however there is little automatic detection at bootup (/etc/rc.d/rc.pcmcia is there but not yet actually executed at bootup!), and there needs to be integration with GUI Wizard tools (the Ethernet/network Wizard for example). The Forum also reports successes with wireless networking, but again it is somewhat ad-hoc and needs to be integrated into Puppy. Also, I intend to improve the number of hardware interfaces that Antonio Gallo's libhardware system detects (this detects hardware and loads appropriate modules at bootup).
Amaya was upgraded to the latest, version 8.7, however I have taken it back to 8.5. Unfortunately, the developers have removed the "--without-i18n" compile option in v8.7, and the outcome of this is that it totally messes up antialiased font rendering. The gdkxft library provides antialiased font rendering for GTK 1.2 applications, however gdkxft is designed for a very old version of xft1, older than that used in Puppy, and it only just works. International font support totally confuses it.
The presentation application Slidedraw has been removed, replaced with Impress. Impress is also a Tcl/Tk application.
Impress is able to rotate objects by an arbitrary angle, including text, however the text has to first be vectorised. This is done by a menu selection, and the wristwatch icon appears, it completes, no error message, but the text won't rotate. Impress calls the pstoedit program to perform the conversion of text to vectors. I have sent a couple of emails to the author, no response yet, but it should be possible to examine the code and maybe fix it, as Impress is written in Tcl/Tk so no compiling required. One point is that Puppy has a later version of pstoedit than that used when Impress was last updated.
The personal finance management program Xfinans is now joined by a friend, Grisbi, version 0.5.3.
Grisbi is very nice. I'm far from being a book-keeping expert, so can't
give any indepth analysis. But, I can say that it looks real good for
personal finances and for organisations that don't require double-entry
One problem is that Latex is required to print -- I have just thrown Grisbi into Puppy, haven't bothered about sorting out full integration yet -- maybe there is some indirect way to print.
Note, Grisbi can import GnuCash files.
I have written a web page "How to compile kernel drivers for Puppy". This, along with "How Puppy works" web page, are written specifically for v0.9.8, so will be uploaded concurrently with its release.
GuestToo on the Forum pointed out that there would be considerable space
saving by using squashfs rather than cramfs. This had been in
the back of my mind as something to checkout one day -- well, that day has
I had to apply the squashfs patch to the kernel source and recompile, also had to recompile all the modules. The utility program mksquashfs has been placed in /usr/bin.
The saving is significant. With the addition of Planmaker, Puppy live-CD (Firefox version) was bulging out to about 57M. Now, well, it is another rabbit pulled out of the hat. I'll keep the suspense going... the size will be revealed when v0.9.8 is released.
Note, the kernel has been recompiled with a default ramdisk size of only
11264 Kbytes. The reason for this, is although Puppy boots up with /dev/ram0,
holding the uncompressed image.gz filesystem, fixed size ramdisks are not
used at all after that. This is a departure from earlier versions of Puppy.
Puppy uses tmpfs ramdisks, that can be any size and also use swap
partitions. At bootup, the contents of /dev/ram0 is moved to a tmpfs ramdisk,
so even usage of /dev/ram0 is temporary.
The general advice now is that the kernel boot parameter "ramdisk_size=" need no longer be used and is totally irrelevant to how Puppy works -- an exception is the puppy-x.x.x-firefox-128ram.iso live-CD, that has usr_cram.fs inside image.gz -- this still runs Puppy in /dev/ram0 and requires "ramdisk_size=63488" in isolinux.cfg. It also only works on a PC with at least 128M RAM.
There is a problem with locating the usr_cram.fs file at boot time. I have been working through the logic of it, in the file /etc/rc.d/rc.sysinit. One problem is when you upgrade -- if you bootup with a new version of Puppy on CD, Puppy may find an older version of usr_cram.fs on the hard drive and use that instead (that situation would arise if you had installed Puppy to hard drive, Option 1). Puppy is now able to check the version of usr_cram.fs and ignore old ones.
As requested, iwlist, part of the wireless-tools package, is now in Puppy, in /usr/sbin. A little utility, stat, was also requested, and that is now in Puppy, in /bin.
The ABS spreadsheet editor is now an external package, replaced by Planmaker Free Edition. This is a closed source application, but true freeware. That is, there are no restrictions on usage and no embedded adverts. Quite remarkable licence actually, considering that the normal Planmaker is a commercial for-sale product. Planmaker Free Edition will open and save Excel format spreadsheets -- finally we have a spreadsheet editor with nearly all the capability of Excel!
Note that I did consider Gnumeric, and I did get it going in Puppy, but
there are still some dependencies missing. With the vast array of Gnome
dependencies, Gnumeric weighed in considerably larger than Planmaker. I
compiled Gnumeric with the Gnome libs linked statically, but got into trouble
with a couple of dependencies ... if any Gnumeric developer reads this and
would like to help out, most welcome. One thing I would very much like is the
option of not using Gnomeprint. And, does Gnumeric really have to use Gconf?
...it would be so nice if that was a compile-time option also!
So, it may be possible down-the-track that Gnumeric will make it into Puppy ... I would like that.
I have written a "How Puppy works" page, as well as a short "mission statement". However, these won't get uploaded until v0.9.8 is released, as the new page explains architectural features that are only in the upcoming release. As to when that will be... late December or early January probably.
The install-to-hard-drive script now has a choice of "new installation" or "upgrade". Previously, this was a problem with the Option-2 installation, which completely wiped the previous installation.
GuestToo (see the Forum) came up with a little script to install packages
in Puppy. It is important to understand that Puppy is not like a full-blown
distro and doesn't have a sophisticated package manager, like Urpmi in
Mandrake, or apt-get in Debian. Unless Puppy is installed to hard drive by
Option-2, which could conceivably allow installation of a package manager.
Anyway, Puppy does have a small range of extra packages, that are quite easy to install, but GuestToo wrote a little script called Pup-Get to make it even easier. I took that script and added a few bells and whistles and it will be in the next release. It will be found in the menu "Start -> Setup -> Pup-Get package manager".
Feeling inspired, I even created a couple more packages, tgif.tgz, which is a drafting application, and luckydip.tgz, which is just that, a lucky dip of interesting surprise apps.
There have been some interesting happenings on the PCMCIA front, with
bladehunter on the Forum getting his PCMCIA wireless networking running, and
he wote a HOWTO. I have compiled the latest pcmcia-cs package and placed the
executables cardmgr and cardctl into /sbin/, and
also placed all of /etc/pcmcia/ folder into Puppy. So, we
should be able to duplicate bladehunter's success.
Note that I have not placed the rc.pcmcia startup script into Puppy. Part of this script is already in /etc/rc.d/rc.modules, to load the correct core module for the PCMCIA interface chip. It will probably be necessary to have script to start cardmgr automatically, probably from within rc.network (or somewhere after /usr has been mounted) but I haven't done that yet.
autocutsel is a small application that synchronises the
cut-buffers with the clipboard. Modern apps tend not to use the cut-buffers,
but rxvt does, so this little app is quite useful used with rxvt. It means
that if the mouse pointer is dragged over some text in the rxvt window, it
automatically goes into the clipboard when the left button is released,
whereas without autocutsel running it only went into a cut-buffer. CTRL-V or
Edit->Paste can be used in other apps to paste from the clipboard.
For now, I have placed autocutsel into /root/.xinitrc so that it starts when X does, but this is for experimenting and I don't know if this is the best way to do it. An alternative would be to start autocutsel everytime rxvt is started, kill it afterward.
The install-to-USB script has been improved. I found a bug, the
syslinux.cfg boot parameter PHOME sometimes did not get set, that is, it was
just "PHOME=" whereas it should be "PHOME=sda1" or whatever is the USB
The script has been tided up, with clearer steps, and better handling of detecting and inserting the correct USB drive.
Also, there is now a choice of doing a new installation or an upgrade. Although upgrading to the latest version of Puppy is very simple anyway -- just copy the latest vmlinuz, image.gz and usr_cram.fs to the USB device -- I have made it even simpler by putting this option into the script.
Note, as we have been discussing recently on the Forum, there is a need
for an upgrade mechanism for a hard-drive-installation-Option-2 of Puppy.
Option-2 is a complete install, in which Puppy takes over an entire partition
-- it is the same as normal Linux hard-drive installations, and Puppy does
not run in a ramdisk, nor is there a "pupxxx" file.
So far, there is no mechanism to upgrade to the latest version of Puppy, there has to be a complete new installation, though I have outlined manual upgrade steps in the Forum. I'll work on this next.
I am attempting to improve shutdown, so that it is more orderly. One problem was the message "Kernel panic: attempted to kill init" that occurs sometime, which is not a serious error as init is only in the ramdisk -- however, I can fix that.
One annoying feature of Fvwm95, the window manager, is that when the mouse pointer is moved to a screen edge and held there briefly, the window manager flips to the adjacent "page". This can happen accidentally, catching the user by surprise. Page flipping can be controlled by clicking in the page manager dockapp at bottom right of the screen, and that is quite adequate. So, now page flipping by moving the mouse pointer to edge of screen is disabled.
Getting Roaring Penguin PPPOE to work has been an on-going saga. The latest thing to emerge is that it works in version 0.9.7 but the adsl-status script times-out as it can't find the netstat program, that it needs to determine network status. So, now netstat is in Puppy, in /usr/sbin.
I've updated the Lucent software-modem kernel driver, from version 8.26 to 8.31a10. These are two files, lt_modem.o and lt_serial.o, to be found in /lib/modules/2.4.27/ltmodem folder.
Thanks to GuestToo for showing me how to create a "favicon" for Puppy web pages!
John Gibney has done some remarkable detective work. John has a cable
modem connection with Telstra Bigpond in Australia, and found it to be less
than Linux-friendly. There is a Linux Bigpond connection tool, called
BPALogin, but John had to put in considerable effort to get it working with
However he managed to work it out and has very kindly posted a HOWTO to the Puppy Forum:
There has been a significant improvement when booting Puppy from a USB drive. I was looking for a way to minimise writes to a Flash drive, and devised a technique that uses the tmpfs ramdisk and a swap partition. With v0.9.7 and earlier versions of Puppy, when he boots from USB he will load totally into ramdisk if the PC has enough physical RAM. Now however, if the PC has a swap partition, Puppy will automatically use that as well, so all of a Flash drive can be loaded into the PC even if there is not enough physical RAM. Thus, there will be no writes to the Flash device until shutdown (or at designated intervals).
So, in theory, you could bootup from a 1G USB Flash drive, with an almost-1G "pupxxx" file on it, and the whole lot will load into the tmpsf ramdisk (= RAM + swap-partition), then get restored at shutdown. In theory, this will work regardless whether the PC has 32M or 512M of physical RAM -- but, the more RAM the better as less will have to be kept on the swap partition hence faster. ...now I'm itching to go and buy a big USB Flash pen drive, just to try it!
At bootup Puppy will automatically find and use a swap partition if it exists, but can't use a swap file -- there's a technical hitch there.
The Puppy HTML file viewer, phv, has been considerably improved. I upgraded tkhtml from 0.0 to 2.0. phv now has forward and back, bigger-font, smaller-font, and text-search buttons. The buttons also have nice images. Font sizes have also been carefully chosen to minimise jagged rendering. There is also copy to clipboard -- this works by simply dragging the mouse pointer over the desired text, and the text automatically appears in the clipboard -- and a window pops up showing the clipboard contents. Keys now work -- page-up, page-down, up-arrow, down-arrow, home and end.
The WYSIWYG HTML editor Amaya has been upgraded to version 8.7. I'm using Amaya right now to write this. Amaya is a powerful application, and large -- the complete package installed in Puppy is about 6.5M uncompressed.
Puppy version 0.9.7 released. Puppy live-CD ISO file with Firefox is 54.0M, or with Opera is 50.2M. Release notes:
- Puppy now has the Gaim instant messenger client, version 1.0.2, with support for IRC, ICQ, Yahoo, MSN and Jabber.
- There is a new paint program called mtPaint.
- Puppy has a new internal HTML file viewer, called phv. This is a Tcl/Tk application, that uses the tkhtml widget.
- Puppy now has limited write support for NTFS partitions. See notes below.
- Screen snapshots can now be taken by a menu selection in the "Graphics processors" sub-menu.
- There is a new game, called tkmines, a minesweeper game.
- There is now a dockapp manager, and a selection of dockapps. These are wmnd (network traffic monitor), wmsm (monitors CPU/memory usage and uptime), wmpower (monitors battery status, fan and CPU temperature), and also the original screen pager that has been in all previous Puppies.
- wmpower requires an APM- or ACPI-enable Linux kernel, which in turn requires an APM- or ACPI-enable BIOS. However, the kernel supplied with Puppy is not ACPI-enabled -- this may happen in the future when some uncertainties regarding reliable bootup and shutdown are resolved. In the meantime, an ACPI-enabled kernel could be made available for download.
- Kernel driver modules for the Atmel at76c503 USB wireless LAN chipset have been included in Puppy. See notes below.
- The ndiswrapper kernel driver module, ndiswrapper.o, is now in Puppy. There is also an executable, loadndisdriver.
- The wireless support tools that I have now placed in Puppy arewavemon, xnetstrength, iwconfig (part of the wireless tools package), xwconfig and xwifibar. HOWEVER, this is just the beginning, and wireless networking is not yet functional in Puppy. Docs can be found in /usr/share/doc/wireless.
- Puppy now has a Keyboard & Mouse Wizard. Previously, the keyboard and mouse setup was only run the first time Puppy was booted, but there is now a GUI Wizard that can be selected from the menu to change the choices at any time.
- I have reorganised the menu structure slightly, grouping the wizards into the same place. There is also a Wizard Wizard, which is a frontend to all the other wizards.
- Puppy now has a script called man, to achieve similar functionality as the original man program. For example, typing "man busybox" at the commandline will open the help page for Busybox.
- ifplugd package has been updated to version 0.25. Only one program from this package, ifplugstatus, is used in Puppy. ifplugstatus is used to test if a network is "alive". Note that this program was previously named ifstatus, however that conflicted with other programs with the same name but different functionality.
- I have added yet another GUI frontend for shell scripts, called gtkdialog. Puppy already has dialog, Xdialog, xmessage and gtk-shell, so why another? gtkdialog uses an XML script to describe arbitrary dialog layout and user interactions, giving it a power not matched by any of the others.
- I have also put in KP, a small process manager. This gives the ability to view and delete running processes.
- The console text editor MP has been updated to version 3.3.7.
- Puppy already has Slidedraw, a (buggy) WYSIWYG presentation creation and player program, however I have now added Imposter, a player for Open Office Impress presentations.
- Help pages for Firefox and Abiword have been created. These are accessed via the Start -> Help submenu, and explain how to add spellchecking, fonts, plugins, etc.
- Hopefully we have got the bugs out of the Roaring Penguin PPPOE Internet connection software.
- Removed from Puppy: Dillo (web browser) and xpuyopuyo (game).
Gaim is not included in the Opera version of Puppy, for three reasons. Firstly, Opera has its own in-built instant messenger client. Secondly, Gaim requires the Mozilla/Firefox SSL libraries to access MSN. Note that Gaim does not use OpenSSL due to licencing issues. Thirdly, size -- the Opera version is intended to remain under 50M, though note it is currently bulging just over.
So far I have only tested IRC, MSN and Yahoo functionality in Gaim. IRC and MSN support seems pretty good, but I found that getting the room list for Yahoo was "iffy" -- only worked sometimes -- perhaps the servers were busy?
One more point about phv, the Puppy HTML file Viewer, to add to comments in 23Nov04 below. There is a bug, if HTML code has href="file:///usr/share/doc/index.html" for example, phv can't handle the "file://" prefix. That will have to go onto the to-do list. If you like the idea of phv and know or want to learn Tcl/Tk, you're welcome to start hacking!
I removed wmwifi, a wireless signal strength dockapp. I don't have any wireless hardware, so I can't really test anything, however when I started wmwifi it ran but gave an error message that modprobe was unable to find module "face". Now, there is no module called "face", nor can I find mention of such a module anywhere on the Internet. So, what's going on, wmwifi author? modprobe keeps trying to load this mysterious module, endlessly.
There are new help pages for Firefox and Abiword. These have information on how to add spellchecking, fonts, plugins, etc., and are based on information posted to the HOWTO section of the Puppy Forum.
phv, the great little Puppy HTML Viewer, now has a "back" button. The poor pathetic thing didn't even have a back button, but I got out my "Graphical Application with Tcl & Tk" book and figured out how to add the necessary code... despite the fact I'm a Tcl/Tk programming newbie. phv is defaulting to using bitmap fonts, which don't scale well, but I haven't yet figured out how to tell it to use a scalable font... will leave that one for now.
I found that at bootup there is a potential logic problem in how Puppy searches for usr_cram.fs. I booted off a CD, a message came up that usr_cram.fs was being copied from CD to ramdisk, however Puppy actually mounted a different copy of usr_cram.fs that was on a hard drive partition. Hmm, watch out for that one, if you do have more than one usr_cram.fs file around the place. You'll know if you bootup v0.9.7, as Gaim and the dockapps won't be there!
I tested booting Puppy live-CD on a PC with only a single NTFS partition, no other partition, and finally we are able to have a "pup001" file on an NTFS partition! What happens at bootup, is Puppy says "Hey, you only have a NTFS partition, so you have to download pup001.zip" (or words to that effect). So you bootup your Windows XP, download pup001.zip, unzip it, then you can boot Puppy from the CD. The reason, incidentally, for this roundabout way of doing things, is that the Linux kernel NTFS driver safely supports using a pup001 file if it already exists, but cannot safely create files (or resize files).
Or, there is another way. After Puppy has said "Hey, ..." and reprimanded you for only having a NTFS partition, Puppy then offers to use a USB drive in which to create the pup001 file. So, you plugin your USB Flash drive, accept Puppy's offer, and you're up and running. Then, if you wish, you can bootup WinXP and copy the pup001 file from the Flash drive to the C: drive (the NTFS partition), remove the Flash drive, bootup the Puppy CD and you're in business!
V0.9.7 is undergoing final testing. Hope to release it soon.
A little while ago on the Forum, GuestToo proposed a little script for taking screen snapshots. I've jazzed up the script somewhat and placed it into the "Graphics managers" menu. This makes it very easy to take a snapshot of all or any part of the screen while Puppy is running.
I've taken out tkcon, well, it didn't even make it into a released version of Puppy. Also, the game xpuyopuyo has been removed. Perhaps either of these can return later, for now I need the room.
A tiny game has been added, tkmines, to compensate for the loss of xpuyopuyo. This is a minesweeper clone.
Yet another graphics creation program has been added: mtPaint. Why another? This one focusses on editing bitmap/raster icon images, a bit more specialised than Xpaint. It is good -- I evaluated it awhile ago and found it to be too immature, but development is rocketting along and version 0.45 looks real good. mtPaint handles png, gif, jpg and tiff image files.
Testing Internet dialup with gkdial, I found that it must have /etc/ppp/resolv.conf, which is a link to /etc/resolv.conf. Roaring Penguin PPPOE seems to have a problem with both of these files existing, and you may have to rename the former if you want to use Roaring Penguin. This is discussed in the Forum.
The kernel driver for the Atmel at76c503 USB wireless LAN chipset has been compiled and included in Puppy. This is a whole heap of drivers: at76c503.o, usbdfu.o, at76c503-rfmd.o, at76c503-rfmd-acc.o, at76c505-rfmd.o, at76c503-i3861.o, at76c503-i3863.o, at76c505-rfmd2958.o. These are to be found in /lib/modules/2.4.27/kernel/drivers/usb/.
I have not placed a probe for this driver into the Ethernet Wizard. For now, it needs to be experimented with and some details sorted out. It seems that it is sufficient to type "modprobe -v at76c503-rfmd netdev_name=eth0" which will automatically load some of the other dependent modules. If the "netdev_name" parameter is left off, it appears that it defaults to using the "wlan0" device, but I think that we should try to use eth0 or eth1 for future compatibility with the Ethernet Wizard.
Goodness gracious, Puppy now has about 4.6M (compressed) of kernel modules. These all sit there in the ramdisk when Puppy is running, just hanging around taking up space, however there is a daemon that monitors free space in the ramdisk and if it gets too low then all the modules get deleted. Once all the modules are loaded by the kernel that are going to be loaded, this should be okay -- in fact, we could consider some automatic mechanism that deletes all the modules after it is determined that the kernel has loaded everything it needs, unless of course the kernel needs to unload then reload some modules later.
The 2.4.27 kernel has been recompiled with a NTFS patch applied. This finally gives us limited write support for NTFS file systems. What this means is that the live-CD will be able to use a NTFS partition to keep the user's personal data file (currently named pup001).
I have also edited the boot script /etc/rc.d/rc.sysinit, to properly handle the situation where a PC has only a NTFS partition, nothing else. Puppy will display instructions to download a pre-existing "pup001" file, while running Windows. The reason for doing this is that the Linux NTFS driver has support for writing to a file but cannot safely create nor resize a file.
I also took the opportunity of compiling the ndiswrapper kernel driver module, ndiswrapper.o, and it will be in the next Puppy. There is an executable, loadndisdriver, also installed in Puppy. Ndiswrapper enables MS Windows wireless card drivers to be used in Linux, so it should be a final solution if Puppy doesn't have a driver for your wireless network card. Ndiswrapper may need some more stuff to get it going -- that's up to you guys with the wireless hardware to sort out!
Another dockapp has been added. It is wmnd, a network traffic monitor. This brings the number off dockapps to five.
The main problem with removing Dillo, is that when you click on the Help menu there is a delay while Firefox loads. Well, we could use Amaya to view help files, as it does load somewhat faster. Anyway, I decided to introduce tkhtml, which is a Tcl/Tk HTML widget. This widget enables HTML viewing and editing to be coded into a Tcl/Tk application, and the package comes with a demo HTML viewer called HV. I have done some work on HV, various enhancements, to get it to work nicely in the Puppy environment, and the new HTML viewer included in Puppy is called phv. This viewer starts instantly and is now the official Help file viewer in Puppy.
You may be interested to know that Dillo is about 450K (including plugins) whereas phv and the tkhtml widget weighs in at just 120K. of course, phv is more limited and is just for local HTML and text file viewing. Note, there have been various enhancements to HV, and much earlier in this News page you will see a note about the Scout web browser, which is HV with stuff like bookmarks, forward/backward, url history and ftp download added.
Finally, decided to remove the web browser Dillo. Although Dillo is small, it has so many limitations and as Puppy has Firefox or Opera a second somewhat dysfunctional browser is difficult to justify.
Continuing the experiment with dockapps, I have put in wmsm, which monitors CPU and memory usage, also wmwifi that monitors wireless network interfaces. So now there are four dockapps, and the default behaviour is that all four will display on the screen, but you will be able to turn any of them off with the Dockapp Manager. Dockapps are still an experiment ...we shall see how useful they turn out to be.
There has been discussion on the Puppy Forum about how to get spellchecking working with Abiword. This has been figured out, and spellchecking will be functional in the next release of Puppy. The Help page for Abiword will have simple instructions for downloading and installing a dictionary to suit your nationality.
The Linux kernel used with Puppy 0.9.6 supports APM-enabled BIOSes (Advanced Power Management), which enables battery status of laptops to be displayed. I have recompiled the kernel to support ACPI-enabled BIOSes, which is the successor to APM and enables monitoring of fan, CPU temperature, and more. To support this, I have placed a "dockapp" into Puppy, called wmpower, which will work with APM-enabled or ACPI-enabled BIOSes.
Puppy users will know that there is a little "page switcher" window at the bottom-right of the screen, allowing choice of four different "pages" or screens. This little application is called a "dockapp" and has a 64x64 pixel window, and I have added wmpower, stacked above it. The "kill" button has been made smaller and moved to rop-right corner of the screen.
Furthermore, there is now a Dockapp manager, selectable from the Control Panel menu. This controls which dockapps will be displayed on the desktop. The default is wmpower and the screen pager are displayed. I wrote the dockapp manager in Ash shell script, with gtkdialog GUI.
Puppy now has a Keyboard & Mouse Wizard. Previously, the keyboard and mouse setup was only run the first time Puppy was booted, but there is now a GUI Wizard that can be selected from the menu to change the choices at any time.
I have reorganised the menu structure slightly, grouping the wizards into the same place. There is also a Wizard Wizard, which is a frontend to all the other wizards.
Thanks to Serge Matovic for figuring out how to use the Roaring Penguin PPPOE commandline tools. There is a GUI frontend, tkpppoe, hopefully now also functional.
The Help button in the rexgrep program should now be functional.
Puppy now has a script called man, to achieve similar functionality as the original man program. For example, typing "man busybox" at the commandline will open the help page for Busybox.
I have included two more utilities for wireless networking, wavemon and xnetstrength. These are in /usr/sbin/, along with the others listed below (iwconfig, xwconfig and xwifibar). Documentation on each is to be found in /usr/share/doc/wireless/.
When version 0.9.7 of Puppy is released, I invite people with wireless hardware to play with these utilities and find out what works and how it works. It is possible that only two or three of these utilities will ultimately remain in Puppy after we have experimented with them.
I am taking the first steps to support wireless networking. Puppy has the following wireless networking kernel modules: airo, hermes, orinoco, orinoco_cs, orinoco_pci, orinoco_plx and orinoco_tmd. These have been there in earlier versions of Puppy, but support tools have not.
The wireless support tools that I have now placed in Puppy are iwconfig (part of the wireless tools package), xwconfig and xwifibar. iwconfig is a commandline configurations tool. xwconfig is a GTK application that has older iwconfig code built into it. xwifibar is a signal strength meter.
So far, there is no Wizard, just these three tools. We need to get some practical experience and work toward some kind of Wizard, perhaps by extending the Ethernet/network Wizard.
ifplugd package has been updated to version 0.25. Only one program from this package, ifplugstatus, is used in Puppy. ifplugstatus is used to test if a network is "alive". Note that this program was previously named ifstatus, however that conflicted with other programs with the same name but different functionality.
I have added yet another GUI frontend for shell scripts, called gtkdialog. Puppy already has dialog, Xdialog, xmessage and gtk-shell, so why another? gtkdialog uses an XML script to describe arbitrary dialog layout and user interactions, giving it a power not matched by any of the others.
The console text editor MP has been updated to version 3.3.7.
The program tkcon has been added, along with its complete HTML documentation. This is a console window, like rxvt, but has features to aid Tcl/Tk programming. I have put this in as an experiment, and if we do find it useful then it can stay ...I would like to get feedback from people into Tcl/Tk programming.
GuestToo and I have considerably hacked the KP process manager program, basically simplifying it right down to suit Puppy.
There is an article on running Linux off a USB Flash drive, includes Puppy:
This article gives the thumb-up for Puppy, but does mention a small problem with network detection -- I'm onto it, and hope to fix by next release.
The next release of Puppy will have Gaim, version 1.0.2, a multi-protocol instant messenger client. I have included plugins to support IRC, ICQ, MSN, Yahoo and Jabber protocols. This is a large program, but I can fit it in, keeping to the objective of the Opera version staying unde 50M. Gaim has been requested often on the Puppy Forum. Puppy v0.9.6 has Gyach, a Yahoo IM client, which is now taken out. Gyach is small, but of course only handles the one protocol.
I have also put in KP, a small process manager. This gives the ability to view and delete running processes.
Puppy already has Slidedraw, a (buggy) WYSIWYG presentation creation and player program, however I have now added Imposter, a player for Open Office Impress presentations. You cannot create these presentations in Puppy, only play them. I think this will be useful, given the nature of Puppy as a portable boot-up-on-anything-and-anywhere operating system. Also, presumably Impress can import MS PowerPoint presentations, so there is a route to be able to play those on Puppy.
Puppy version 0.9.6 released. Puppy live-CD ISO file with Firefox is 52.8M, or with Opera is 49.9M. Release notes:
- Xine-libs plugin backend and Gxine media player is now in Puppy, as well as a plugin for Firefox. Puppy has the full suite of Xine plugins, that support a wide range of audio and video formats as well as streaming audio and video, video DVDs and audio CDs.
- Puppy now has two very powerful vector graphics editor applications: Dia and Sodipodi. Dia is superb for organisational/hierarchical diagrams and Sodipodi is a SVG-native vector editor that can also be used for generic image creation.
- TkDVD and growisofs have been added to Puppy. TkDVD is a GUI frontend to the commandline program growisofs (which is in turn a frontend to cdrecord). TkDVD is for burning files to a DVD/RW or DVD/R. Note, I have not yet tested TkDVD as I don't have a DVD burner drive. Note also that Gcombust can burn to DVDs, however my understanding of this is that it is somewhat of an afterthought.
- I have put the ML tcl/tk-code editor back into Puppy. The reasons are that it is very small and has nice features for developing tcl/tk code, especially jump-to-procedures and syntax highlighting. So, Puppy now has Beaver, Leafpad, ML, MP and vi, each editor having different strong points.
- The Cgtkcalc complex-number calculator has been added. This rounds out a comprehensive selection of calculators in Puppy: Xcalc, Gtkgraph, Gbase, tkconvert and Cgtkcalc.
- Sylpheed has been updated to version 0.9.99. This fixes some bugs, in particular the clipboard sometimes didn't work, and moved messages sometimes got temporarily lost.
- The "Control Panel" menu in Puppy has the entry "GTK theme", which up to now applied a selection of themes to GTK 1.2 apps. I have now extended this so that the themes also work on GTK2 apps, such as Abiword (not Firefox, it gets its theme info from elsewhere). For the technically-minded, the script that does this is /usr/sbin/gtk-theme, and the theme files are in /etc/gtk/ and /etc/gtk-2.0/.
- Some audio/video applications have been removed from Puppy, in particular Gxanim, Xanim and Ogle, as they are superceeded by Xine/Gxine. However, the Snack audio library and support applications XS recorder/editor, play.tcl, Snack player, mixer.tcl remain.
- Upgrading from an earlier 0.9.x Puppy is automatic. For example, if booting from live-CD, the previous data/settings are all retained. To update usb or zip installations, just copy the new vmlinuz, image.gz and usr_cram.fs files, as explained in the relevant Puppy web pages.
- NTFS support is not there yet. So, if your PC has only got a single NTFS partition then Puppy will not be able to create a persistent home file for your data/settings -- the live-CD will still work, but nothing will be saved. Your PC needs a VFAT, MSDOS, EXT2/3 or REISERFS partition. However, I have added a fallback in v0.9.6: if Puppy cannot find a suitable IDE partition, he will ask if you want to use a USB memory device.
- Minimum system is a pentium I CPU. Puppy with Opera should work on a "586" class of CPU, but Firefox requires a "686" class of CPU. Version 0.9.4 of Puppy with Skipstone web browser was found to work on a PC with 48M RAM. Minimum RAM requirement not yet determined for version 0.9.5/6.
- I have fixed a bug with anti-aliased font support for GTK 1.2 applications. If anti-aliased fonts still do not display in Amaya or Dillo, please let me know.
- Other bug-fixes are to the hard-drive install script and using Quisp. Also, the lprshell script has been fixed, to use Abiword instead of Ted in commandline-mode to convert files to Postscript for printing. Firefox now works with Sylpheed. Abiword now works with all the raster image formats recognised by gdk-pixbuf (png, xpm, gif, jpeg, etc.)
- Please also scan through the release notes for puppy v0.9.5.
Puppy-watchers may be wondering how I managed to squeeze in Xine, Dia and Sodipodi, considering that the live-CD is hardly any bigger than the previous version. Xine-lib and Gxine together are over 6M uncompressed. Dia is 2.6M uncompressed, Sodipodi is 2.0M uncompressed. The total size after compression with cramfs of these three apps is about 6M. Well, it wasn't easy...
Note, Puppy has an Xine plugin for RealAudio, however the Xine website FAQ states that Xine will recognise and use the RealAudio codecs out of the RealAudio player. I notice that the Gxine Preferences has an entry in which the path to the RealAudio codecs can be entered.
If you are new to Puppy, after booting up the live-CD and having had a great time playing with everything, follow the simple instructions in the "HOWTO: Internet" page (via the "Help" menu) to get Puppy connected to the Internet, then look at the HOWTO section in the Puppy Discussion Forum, at www.goosee.com/puppy/sforum/ -- this has lots of useful information contributed by Puppy-enthusiasts, such as how to install the Flash and SVG plugins for Firefox, or any of the Firefox Extensions.
The install-to-hard-drive script has had some work on it. It now works even if there is no home partition mounted on /root, and has workarounds for installing to a small partition or to a partition that is currently being used by Puppy.
BUG REPORT: In Puppy 0.9.4 I used a tiny web browser that is frontend to Mozilla to show Quisp in action. That is, choosing "Information managers/Quisp network SQL database" launched this browser and opened Quisp. With Puppy 0.9.5 I went over to Firefox and no longer had the small web browser, so instead used Dillo with Quisp. I have just found that Dillo does not handle CGI forms properly, so the Quisp demos do not all work. So, I am substituting Firefox, and Quisp should be fully functional again by the next release.
I may have fixed the problem of antialiased fonts not working for GTK 1.2
applications. The libgdkxft library does this, or rather is supposed to, but
it is developed for a very old version of libXft, older than the two versions
in Puppy (denoted as Xft1 and Xft2). It is really quite wierd, but I found
that the /root/.fonts.cache-1 file that is automatically created the very
first time Puppy starts sometimes has the "wrong" things in it that upsets
libgdkxft. Why is a mystery, but I "solved" the problem by having a
pre-existing .fonts.cache-1 file that is compatible with gdkxft.
Anyway, if you get Amaya and Dillo starting up with no text displaying, let me know!
Puppy enthusiasts will be drooling in anticipation of these new goodies... Gxine, Dia, Sodipodi. I should be able to get version 0.9.6 out soon. I'm thinking though, I would prefer not to upload the Opera version of Puppy to Ibiblio -- I would like to have some other host just for that, and have FTP access for upload.
Audio and video have received a complete makeover. There have been a
number of requests on the Puppy Forum about this, in particular for streaming
audio and even streaming video.
Up to now, Puppy has a mix of various small applications -- xanim for playing limited video formats, including Quicktime and avi, Ogle for playing DVDs, wavplay for wav files, and Snack for handling various audio formats. Also, there are various applications that use the Snack library, such as XS sound recorder and editor and the Snack player.
I chose Xine-libs as the replacement, as it offers support for a wide range of video and audio formats. There are various frontends that can be used, and I chose Gxine. Now Puppy has a media player that can handle just about anything. So far, I have tested that it plays the common audio files such as au, snd, wav and mp3, and the common video formats such as mov (Quicktime), mpg, and avi. I also tested that it plays video DVDs, audio CDs, and also Internet radio.
More good news is that Gxine comes with a plugin for Firefox, that I have also installed. You can check this out by starting Firefox, then type "about:plugins" into the URL window -- this will show all the plugins and will show the mimetypes that Gxine has registered with Firefox. This is really great -- now embedded media streams in web pages have a plugin to handle them!
Most of the "old" media applications have been removed, replaced by Gxine/Xine-libs, however there is still a need for a sound recorder and editor application. For that reason I have left the Snack library in Puppy, with the XS audio recorder and editor. I also left in the Snack audio file player, snamp.tcl, and the console player play.tcl, as they are so small.
Note that the lame program for handling mp3 files is still in Puppy, as it is used by ripperX (audio CD player and song ripper that saves as wav or mp3).
TkDVD and growisofs have been added to Puppy. TkDVD is a GUI frontend to the commandline program growisofs (which is in turn a frontend to cdrecord). TkDVD is for burning files to a DVD/RW or DVD/R.
When Puppy boots from the live-CD he tries to find a suitable partition in
which to create a file called "pup001" which is mounted on /root and will
then hold all of the user's personal settings and data. However, Puppy does
not yet support writing to NTFS partitions, so if the PC has only got a
single partition and it is NTFS then Puppy is forced to run totally in
ramdisk and personal settings/data cannot be saved.
I have now provided another possibility. If Puppy cannot find a suitable IDE hard-drive partition he will then ask if you want to use a USB memory device to hold personal data. So, you boot off the CD, and personal data is stored in a USB drive.
Note, I have not been able to test the USB-home option yet, as Puppy only offers the option if cannot find a suitable partition. I don't use WinXP so don't have any PC with just a NTFS partition. I need to get a motherboard with RAM and no harddrive to round out my suite of test platforms!
Note also, if you want that to be the default behaviour, that is, you want
to boot off a CD and have a USB Flash drive as home-device, without Puppy
looking at the IDE hard drives at all, you will need to remaster the CD. The
file isolinux.cfg needs to have these parameters added: "PHOME=sda1
The sleep value of 25 seconds is needed for USB1 devices, but it seems, from feedback that I'm getting on the Forum, that for USB2 devices this delay can be greatly reduced.
There was a bug in the install-to-hard-drive Option-1. The file usr_cram.fs was not getting copied from CD to hard drive. Fixed.
Lots of little things have been attended to over the last few days:
I have put the ML tcl/tk-code editor back into Puppy. The reasons are that it is very small and has nice features for developing tcl/tk code, especially jump-to-procedures and syntax highlighting. So, Puppy now has Beaver, Leafpad, ML, MP and vi, each editor having different strong points.
The Cgtkcalc complex-number calculator has been added. This rounds out a comprehensive selection of calculators in Puppy: Xcalc, Gtkgraph, Gbase, tkconvert and Cgtkcalc.
The "Control Panel" menu in Puppy has the entry "GTK theme", which up to now applied a selection of themes to GTK 1.2 apps. I have now extended this so that the themes also work on GTK2 apps, such as Abiword (not Firefox, it gets its theme info from elsewhere). For the technically-minded, the script that does this is /usr/sbin/gtk-theme, and the theme files are in /etc/gtk/ and /etc/gtk-2.0/.
One problem with Abiword was that the default menu font was too small. I added a line in the file /etc/gtk-2.0/gtkrc (the theme file) to make the font a little bigger. Thanks to GuestToo for helping here.
Puppy requires any file to be printed to be Postscript. So, to print any file, text or graphics, it must first be converted to Postscript. Big apps like Firefox, Abiword, Amaya, Xpaint do this internally. Some other applications like Sylpheed need an external program to do the conversion. I setup Sylpheed to print to a program called "lprshell", rather than the default "lpr". lprshell is a simple script that determines the filetype and converts the file to Postscript then calls lpr. Previously, lprshell used the Ted wordprocessor to convert plain text and RTF files to Postscript. I have modified the script so that it now uses Abiword. Abiword can be run from the commandline to convert TXT, DOC, ABW and RTF files to Postscript. Note, Abiword can also import HTML, but I found that it is limited to strict XHTML formatted files -- for HTML files, it is better to open Firefox or Amaya and print from them.
In Firefox, if you clicked on a "mailto" link, nothing happened. Thanks to
GuestToo for figuring this one out. What we want to happen is for Sylpheed to
be launched. GuestToo found out how to do it from within Firefox, and this
information can be found in the Puppy Forum, however I have set it up as the
default. The very first time that Firefox is run, it reads this file:
/usr/lib/mozilla/defaults/profile/prefs.js and I have added a line:
Where "mailto.sh" is a little script in /usr/sbin/ that launches
When Firefox first starts, it creates /root/.mozilla folder and creates a new prefs.js (a copy of the abovementioned prefs.js) somewhere inside there, which is henceforth used.
Sylpheed email and news client has been updated to version 0.9.99.
Another text editor has been added: Leafpad. This is a very tiny MS-Notepad look-alike.
Yes, you can install plugins and extensions in Firefox. GuestToo has installed some Firefox Extensions without any hassles. I have installed the Macromedia Flash player and the Adobe SVG player, and I have placed instructions for doing this in the HOWTO section of the Puppy Discussion Forum.
The next release of Puppy will have Sodipodi, an SVG-native vector editor. This is a very powerful vector editor, and even if you are not interested in SVG as-such, Sodipodi is superb for creating extremely sophisticated graphic images that you can then convert to other formats. Sodipodi has export to EPS and PNG, but you could open an EPS file in GSView and use the pstoedit utility to export to a large range of other vector formats -- untested.
Something else that I have not tested -- Dia can import SVG, however it will not recognise much of the extra SVG functionality of Sodipodi -- it remains to be seen how well this import will work. SVG is like HTML, and a viewer/importer is supposed to ignore any unrecognised tags, so still render an approximation of the original.
In case you are not familiar with SVG, it is the open-source equivalent of Macromedia's Flash, and SVG plugins are available for all the major web browsers. I do not yet have a SVG plugin installed for Firefox in Puppy -- I could install the Adobe plugin, however there is a native-Mozilla open-source SVG plugin under development and I was planning to wait for that to mature.
Okay, I have figured out how to install plugins into Abiword, and have
installed the plugin to support all bitmap/raster image formats (Abiword as
released in Puppy v0.9.5 only supports PNG format). The plugin will be in the
next release of Puppy, but you can install your own -- www.abisource.com has
a link to a download site with RPMs of Abiword 2.0.12 for mandrake 9.2. You
can download a plugin RPM and extract the files from the RPM by the technique
described in the Puppy developer's page. Then, place the plugin files (there
are two of them for each plugin) into /root/.AbiSuite/AbiWord-2.0/plugins/.
Abiword will detect the plugins automatically when it starts up.
Another great item of news -- DIA will be in the next release. This is a vector graphics drawing application similar to Visio. It is superb for drawing organisation, hierarchical and layout diagrams. I cut down the shape libraries to save space. One great feature is that any shapes you construct can be saved and put into a library. DIA will export to EPS, SVG, XFIG and PNG formats. Also SVG and XFIG can be imported, and any raster files inserted. The original full implementation of DIA does have some more import/export options. Note that XFIG is the native format of Figurine, the original vector editor used in Puppy (and still there!).
The Opera version of Puppy is still under 50M, perfect for installation on
a credit-card size CD!
A note for those new to Puppy: there is a script to remaster the CD, so even the Firefox version can be cut down just a bit to fit in 50M. Also, all these apps mentioned here, Firefox, Abiword, Dia, Amaya, Sylpheed, Xpaint, Figurine, Slidedraw, Rox, Gtksee, Bluefish, Ogle, ...the list goes on and on... are all in that 50M not as later add-ons. Puppy even has extensive HTML docs in that 50M!
Puppy version 0.9.5 released. Puppy now comes in two flavours: the live-CD ISO file with Firefox is 52.2M, or with Opera is 49.3M -- choose which one you want at the Puppy download sites. Also new is the very powerful wordprocessor Abiword. Release notes:
- Opera web browser, version 7.54. Remarkably fast and small, with email, newsgroup, contacts, and chat modules. The disadvantage is that it is "adware". OR...
- Firefox web browser, version 1.0PR. Works beautifully in Puppy, but much bigger than Opera.
- Abiword wordprocessor, version 2.0.12. This is the full version, with MS DOC, HTML and RTF import and export. A spelling dictionary may be added separately.
- gtkftpd FTP server with GTK frontend. I plonked this into /root/ghttpd/. There's no docs on it. Untested.
- Ethernet detection has been improved. I added the b44 driver for Broadcom 440X and sk98lin for Syskonnect Gigabyte network cards. Many more Ethernet controllers/cards are now detected at bootup by Antonio Gallo's libhardware system.
- These have been removed: Skipstone web browser, Ted wordprocessor, Antiword MS DOC viewer, Xchat IRC client, Alicq ICQ client, and Tkpaint vector graphics editor.
- Upgrading from an earlier 0.9.x Puppy is automatic. For example, if booting from live-CD, the previous data/settings are all retained. To update usb or zip installations, just copy the new image.gz and usr_cram.fs files, as explained in the relevant Puppy web pages.
- NTFS support is not there yet. So, if your PC has only got a single NTFS partition then Puppy will not be able to create a persistent home file for your data/settings -- the live-CD will still work, but nothing will be saved. Your PC needs a VFAT, MSDOS, EXT2/3 or REISERFS partition.
- Minimum system is a pentium I CPU. Puppy with Opera should work on a "586" class of CPU, but Firefox requires a "686" class of CPU. The previous version of Puppy with Skipstone web browser was found to work on a PC with 48M RAM. Minimum RAM requirement not yet determined for version 0.9.5.
- I have fixed the bug which caused XCalendar to crash.
- I still haven't fixed a bug with anti-aliased font support for GTK 1.2 applications. If anti-aliased fonts do not display in Amaya, a reboot should fix it. See notes further down.
- Please read the note below about the security risk with Quisp and nullhttpd. Also see the contribution by GuestToo in the HOWTO section of the Puppy Forum.
Opera is a very pleasant experience to use, however it is closed-source and "adware". If you need Puppy to fit onto a 50M credit-card size CD, then you will need to use the Opera version of Puppy.
Please give feedback, bug reports, bug fixes, at the Puppy Discussion Forum -- problems as well as success stories are all welcome. I need some help with configuring Abiword -- for example, can only insert PNG images, but I believe there is a plugin that supports more image types? Menu fonts in Abiword are a bit too small. Advice is also needed on Firefox -- how to setup the "mailto" protocol to launch Sylpheed?
I have uploaded a special version of Puppy, cd-puppy-128RAM.iso, on the ibiblio.org site in the cd-puppy-0.9.4 folder. This version has the file usr_cram.fs inside image.gz, not as a separate file. The disadvantage of this is the live-CD can only bootup on a PC with at least 128M RAM (with no more than 8M shared video). There are likely to be two categories of users who will use this version:
- Booting Puppy over a network. The PXE method is discussed on the Puppy Forum. It may be more convenient if there are just the two files, image.gz (Puppy himself) and vmlinuz (the Linux kernel).
- One person reported on the Forum that booting from the live-CD Puppy was unable to locate usr_cram.fs, although it was on the CD. This is a hardware compatibility problem, but at least this special version will be able to bootup into X.
Note that if for whatever reason Puppy is unable to locate the usr_cram.fs file during booting, you will not be able to start X graphics mode, but you will be able to get the commandlne.
Note also that structurally this special version is the same as v0.9.2, and Puppy will run in /dev/ram0.
The file cd-puppy-0.9.4/cd-puppy-128RAM.iso is in fact version 0.9.4-and-a-bit, as it has the extra features described below on 25 and 28 September 2004.
Ethernet detection has been improved. I added the b44 driver for Broadcom 440X and sk98lin for Syskonnect Gigabyte network cards. Many more Ethernet controllers/cards are now detected at bootup by Antonio Gallo's libhardware system.
NTFS write support is on hold for now. I need to wait until the latest driver is available as a "backport" for the 2.4.27 kernel, which should be soon. At that time, I will re-evaluate and try to determine if it is safe enough to use.
Okay, I have fixed the bug with XCalendar crashing. The problem was the "xcalendar.hol" file, which contains a list of annually recurring holidays (or anything annually recurring that you want to be reminded of). I have placed this file in /root/Calendar/ folder, and if you want to edit this file you have to do it with a text editor, not from within XCalendar. I have put one example holiday into the file to show how it's done.
Note: XCalendar could quite easily be extended to write to xcalendar.hol -- a C/Xlib/Xaw programming project for anyone who wants it!
UPDATE NOTES FOR V0.9.4:
- Soon after uploading the file cd-puppy.iso, a bug was discovered and I quickly uploaded it again with a fix. If you downloaded Puppy soon after release, check that the cd-puppy.iso file has a modify date of 24th September, not 23rd September. Also check the md5sum code. The correct file is now on ibiblio.org and the nlug mirror.
- One point that I should have made in the release notes, is that as Puppy currently only has root login, running the web server should be considered as a security risk. It should not be setup operating over the Internet. For now, nullhttpd and Quisp are provided for evaluation and intended for local and trusted LAN use. It is planned that we will look more closely at the security aspect of running servers in Puppy, which is something that Puppy was originally not intended to be used for.
- With regard to the font antialiasing problem, I have created duplicated menu entries for Ted, Amaya and Dillo, with and without antialiasing. I intend to fix this problem by the next release, but for now it is very interesting to see the with and without scenarios. Ted and Amaya have woeful text rendering without antialiasing -- it is a bit like putting nice wallpaper over an old stained and pitted wall. Dillo on the other hand scales the Type1 fonts very nicely and looks good with or without antialiasing.
Puppy version 0.9.4 released. The live-CD ISO file is 49.5M. Release notes:
- The big news for this release is the shsql SQL database backend with Quisp cgi program for use with a web server. Puppy currently has the nullhttpd web server. Quisp is setup and ready to go in Puppy, and example databases with mini-tutorial can be run directly from the "Information managers/Quisp network SQL database" menu. Some documentation is to be found via the "Help" menu, as always, including a "HOWTO-database" page that introduces Quisp and explains the layout of the Quisp/shsql/nullhttpd installation in Puppy.
- Another excellent new program is GTKSee, an image viewer, manager and slideshow. Although Rox file manager displays thumbnails of images, which GTKSee also does, the latter offers far more convenient features for managing images. The guys on the Puppy Forum have been asking for something like this, in particular for a slideshow program.
- Various scripts have been improved. The Puppy mount/unmount drives pmount program now detects more partitions. The install-to-hard-disk no-ramdisk option install-hd2.sh program has a bug-fix. The remaster-cd.sh script has been fixed to work with v0.9.3+.
- Puppy now has Netcat. It is the lightweight version in Busybox that I have now enabled, and the application is actually called nc.
- Pudd, the drive/partition/image-file copy application, has received a makeover. Thanks to suggestions from guys on the Forum, I have put in the capability to copy to a remote computer over a LAN or the Internet, using nc. The image is transferred gzipped to minimise transmission time. Remote copying is not yet tested. Another enhancement to Pudd is when copying a partition to an image-file (on local PC), there is an option to zeroise the unused space in the partition, potentially greatly enhancing compression of the file (the destination file is gzipped).
- A bug in the ABS spreadsheet has been fixed. List-boxes and edit-boxes did not display text.
- The game Xbubble is great, but it has now gone, replaced by Bubbles.
- Gequel, the mySql client, has been removed. See notes on this below.
- Puppy requires a PC with Pentium 1 CPU (and probably any "586" type) and 48M RAM minimum. This lower RAM requirement is due to the restructuring introduced with version 0.9.3. See the Forum for discussion of Puppy running on even less than 48M.
- NTFS support is not quite there yet. We need to do some final testing.
- BUG REPORT: There is a temporary problem with the font antialiasing support for GTK applications. Font antialiasing is applied to Amaya, Ted and Dillo when started from the menu. The applications start, but no text displays. I can only get this to happen when Puppy is first installed -- after rebooting it goes away. Please let me know if this bug persists on your PC. Note, if it does, you can still run Amaya, Ted and Dillo direct from the commandline, or edit /root/.fvwm95rc and remove the text "LD_PRELOAD=/usr/lib/libgdkxft.so" (then restart Fvwm95) but of course you then won't have the antialiasing.
Some of the guys on the Puppy Forum expressed interest in an image viewer/manager. I reviewed some of the offerings out there, and found GTKSee. This program is lovely. Okay, it has a thumbnails view of images, which is what Rox also does. However, GTKSee does a lot more. You can tell it to hide all files that are not images. You can see the specs of an image, such as its dimensions, just by passing the mouse pointer over the thumbnail. There is a very nice slideshow feature, which will present all images that are in the same directory. There's heaps more features that I haven't investigated yet.
The Puppy drive mount/unmount program pmount has been improved. It now detects more partitions.
There was a bug in the install-to-hard-drive script, no-ramdisk option. The bug caused very slow bootup. Fixed.
A bug in the ABS spreadsheet has been fixed. List-boxes and edit-boxes did not display text. I traced this to the Xaw95 library used in Puppy. The original Athena Xaw library is called just Xaw, and Xaw95 is compatible with improved appearance of the widgets. I have compiled ABS statically with Xaw3d, which looks better than Xaw though not as good as Xaw95.
Puppy now has Netcat. It is the lightweight version in Busybox that I have now enabled, and the application is actually called nc.
Pudd, the drive/partition/image-file copy application, has received
a makeover. Thanks to suggestions from guys on the Forum, I have put in the
capability to copy to a remote computer over a LAN or the Internet, using nc.
The image is transferred gzipped to minimise transmission time. Remote
copying is not yet tested. Also, I have only implemented copying from local
PC to remote PC, not the other way -- that will come, after the current
version of Pudd is fully tested.
Another enhancement to Pudd is when copying a partition to an image-file (on local PC), there is an option to zeroise the unused space in the partition, potentially greatly enhancing compression of the file (the destination file is gzipped).
Another enhancement is that Pudd will not allow copying to/from mounted partitions, nor will fdisk be allowed to edit any drive with mounted partitions.
Puppy has a new Discussion Forum. The links are updated.
The old forum is at http://www.goosee.com/puppy/dforum/
The new forum is at http://www.goosee.com/sforum/
The web server saga continues... I have thrown out ghttpd as it has a bug: parameters on the end of a URL for a cgi program are not always correctly handled. Then I tried Xweb, but it has some peculiar code in it. Finally, I found nullhttpd, that simply works, no fuss whatsoever.
Steve has put together an excellent collection of examples to show what Quisp can do, and I have put them all into Puppy. Running the examples is achieved by a menu entry "Information managers/Quisp network SQL database". It's all setup and runs immediately, and anyone could easily substitute their own database backend with GUI interface.
The game Xbubble is great, but it has now gone, replaced by Bubbles. The reason is size. Xbubble occupies about 900K uncompressed, which translates to a reduction of the live-CD iso file from 49.8M to 49.4M. Xbubble uses a lot of PNG graphic images, whereas Bubbles uses a minimal set of bitmap images and uses Tk's graphics facilities to create further graphical effects. Bubbles is a great game, kind of similar to Xbubble, but is only 50K.
For some time I have been thinking about the database situation in Puppy. Up to now, Puppy has Gequel, a mySql client. One problem with a client program for one of the major databases is that the client is compiled against one version of the database server and may only work properly for a small range of versions. A second problem is that the large databases like mySql and Postresql are just that, large, and very complicated, and it is not viable to put such a server in Puppy. A third problem is that Gequel is not a database/table creation tool -- such applications do exist, but they are large, with many dependencies (for example, Pgaccess for Postgresql).
Myself and some of the guys on the Forum have been thinking that a network of Puppies would be fun to setup, and it would be great if Puppy could have a networkable database system. I considered sqlite, but together with client tools that is also too big. Besides, sqlite seems to have inadequate locking capability for networking.
I have a solution, its name is Quisp. This is based on a relational SQL database called shsql, and is designed as a cgi that can work with any cgi-capable web server. For now, I am running it in Puppy with ghttpd, as xshttpd mentioned below isn't working properly -- hopefully the developer will help me sort out the problem. ghttpd is more basic, but does the job.
Quisp is developed by Steve Grubb, and the project page is quisp.sourceforge.net.
Interestingly, after removing Gequel and Wish mini-console (which wasn't working properly either), and putting in ghttpd, Quisp and shsql with all its creation and editing tools, the size of the Puppy iso file is still the same as before, at 49.8M.
Some of the guys on the Puppy Forum have requested a FTP and/or HTTP server for Puppy. Well, I have found just the thing!
xshttpd is a great little web server. Really tiny but has all the goodies: SSL, SSI, basic authentication, CGI, umm, lots more. It also comes with a hit counter. Homepage: http://www.stack.nl/~johans/xs-httpd/
A web server is a great way to share information. What is needed now is a CGI database management thingy... that is likely to be announced soon.
I think the FTP/HTTP server in Puppy will be very useful for local area networks. The possibility is a network of Puppys (shiould that be Puppies?). There are some exciting developments ahead here.
Dan Leffingwell has been testing booting the live-CD on a PC with only a single hard drive partition, which is ntfs. It is not yet working but thanks to Dan we think we know what the problem is and hope to support ntfs in the next release (see discussion on the Puppy Forum).
Tg, also on the Forum, has reported success with booting Puppy on a HP Pavillion 380MHz PC with 64M RAM, and Puppy runs very fast, breathing new life into an old PC. Tg tried a 32M PC, but Puppy only boots to the commandline. Anyone got a 48M PC to test Puppy?
Puppy version 0.9.3 released. The live-CD iso file is 49.8M. Release notes:
- Puppy is now upgraded to the 2.4.27 Linux kernel. A lot more driver modules are now in Puppy, especially Ethernet card drivers, and the Ethernet/network Wizard has been updated. Wireless networking drivers are also included, with a view to future support.
- There has been a major structural change in Puppy since v0.9.2. Previously, the file image.gz contained all of Puppy (and file vmlinuz is the Linux kernel operating system), however image.gz is now split into two files, image.gz and usr_cram.fs. The latter was previously inside image.gz. File usr_cram.fs is the compressed contents of the entire /usr folder. Web pages will be updated, but basically anywhere that you see file image.gz mentioned, now think of two files. Note that technically Puppy can still handle the situation where there is just one file with usr_cram.fs inside image.gz, in case that is ever required.
- At bootup, Puppy now detects the amount of RAM in the PC and adjusts the size of the ramdisk accordingly. If there is at least 128M RAM (and no more than 8M shared video) then Puppy will create a 61440K ramdisk filesystem and will load everything into it, including usr_cram.fs. If the PC has 64M RAM, Puppy will create a 16384K ramdisk f.s., and below that the ramdisk f.s. will be 11264K -- in these two cases, file usr_cram.fs will not be copied into the ramdisk, slowing execution slightly. I have not yet tested booting on PCs with less than 128M. Note that the 61440K maximum ramdisk size can be overridden by the "ramdisk_size=" boot parameter in the syslinux.cfg and isolinux.cfg configuration files.
- If your PC has only one ntfs partition, which is often the case for WinXP installations, previous versions of Puppy were unable to create a permanent storage for your personal data. There is now tentative support for ntfs, however a volunteer is required who is prepared to risk his/her ntfs partition to test it. If testing is ok, instructions will be posted on this web page how to activate Puppy's support for ntfs.
- Puppy now has drag-and-drop desktop shortcuts, courtesy of the Rox file manager. It is very simple: from Rox drag any file onto the desktop, and right-click to choose a title and icon. Icons have to be XPM images and there are lots of them in various folders under /usr/share and /usr/local/share.
- I have written a new script called Pudd. This is for copying drives and partitions. No where near as sophisticated as other products, but will suit many needs, even basic partition/drive rescue. Pudd can also resize ext2, ext3 and fat12/16/32 filesystems to fill a partition (fat resizing is beta code so be warned).
- The install-to-usb and install-to-zip scripts (see the Utilities menu) have been updated. They now have two installation options. Option 1 is the original option, which uses the umsdos filesystem and mounts the entire usb/zip partition on /root. Option 2 uses the PFILE boot parameter and works just like the live-CD and the install-to-hd Option 1 (for hd install, option 2 is a no-ramdisk installation). Usb/zip Option 2 is now preferred as the entire personal data is in just one file. The install scripts have further explanation. Option 2 still needs to be tested on PCs with low RAM.
- Syslinux has been updated to the latest, v2.11. This is used in the usb/zip installations.
- When the live-CD boots, a personal data file named pup001 is created on the hard drive (if a suitable partition is found). Earlier versions of Puppy used a file named pup080. I have not quite got my act together with automatic updating of the personal data file, so if you have been using an earlier version of Puppy, keep that CD and use it to access the pup080 file. Don't just rename pup080 to pup001 (it may work, but not guaranteed).
- There is support for a security feature, enabling encryption of the "pup001" file. See notes below. This is not yet tested. The usb/zip install scripts have a note on how to implement this.
- The lua scripting langauge, and tklua adding Tk support to lua, is an external package.
- Support for Smart Link winmodems is provided as an external package, and the Modem Wizard is updated.
- A new small application called TkVNC, which is a Virtual Network Computing (VNC) client.
- Have added MasqMan, which displays the status of masquerading on a LAN.
- A tiny application called Countdown, which does just that. Times out and beeps the PC loudspeaker.
- I have improved the Puppy Axel download accelerator slightly, added more options to the GUI.
- The script to remaster the live-CD has not been fully updated for the latest version of Puppy. Preferably don't use it until I have done some more testing.
- The very first time that Puppy is started, Puppy tests if there is a USB keyboard (note: this is in script /usr/X11R6/bin/xwin). I found though that there is a conflict if Puppy is booting off a USB drive (hangs the system just as X is starting), so have had to disable USB-keyboard detection in that case. Therefore, if booting from USB, use a ps/2 keyboard.
Here is the complete to-do list for Puppy:
- Fully update remaster-cd script for Puppy 0.9.3.
- Upload instructions for ntfs support. Update web pages.
- Upload latest source tarballs for compiling Puppy.
- Keyboard/mouse wizard.
- True auto-detection of mouse/keyboard, for portability.
- Update pmount, the drive mount/unmount script, with probing USB/Zip improvements from Pudd.
- SQL database application, prefer with creation tools, replace Gequel.
- Fix ABS spreadsheet app.
- Programming HOWTO: compare Bash and Ash.
- rexgrep app help button doesn't work.
- wishmin Wish mini-console not working properly. If cannot fix, remove (it currently isn't in menu).
- Live-CD Puppy version that does not use hard drive at all. Appends /root to CD at end of session.
- Evaluate http and ftp servers, for inclusion in Puppy.
- GUI for xli image slideshow.
- Slidedraw, fix bugs.
- At bootup, there is an error msg when load a fontset (part of the keyboard country-selection code in xwin).
- Flash plugin for Skipstone.
- Support wireless networking.
- bzip2/bunzip2 missing from Puppy.
- Reevaluate gtk-fmradio.
- Streaming audio, evaluate Wavesurfer.
- Mozilla 1.7 password manager, reinstate with Skipstone.
- Efax support. Note, PDQ supports print to Efax.
- Figurine, problem export to gif file.
- Gtkballs, great game. Put in Puppy?
- DVD detection, improve at bootup. Some DVD drives do not have text "dvd" in their id string.
- Gaby, need to setup printing.
- Printer Wizard needs more work.
- Xcalendar crashes when click the "holidays" button.
- Sylpheed does not seem to be using /etc/mailcap.
- Login as a non-root user.
- Integrate Axel frontend with Skipstone?
- Calculator xcalc cannot find correct font at startup, so some keys look wrong.
- Bug in Beaver: some files do not display, window is empty.
- Checkout tkgoodstuff for Fvwm95
- Problems with hotplugging flash devices. "modprobe -r usb-storage" may hang.
- Investigate need for badblocks program when creating a ext2/3 f.s.
...that's enough for now!
A progress report for those interested in the underlying technical aspects
I have been struggling with ramdisk filesystem resizing at bootup. The ext2online kernel patch doesn't work properly, so I gave up on it. I have developed a technique that creates a clone of the ramdisk filesystem on /dev/ram3, resizes it, then mounts /dev/ram3 on /. The first script that executes in Puppy is /sbin/init, which is just a symlink to /bin/busybox. I created my own init script. I got it to work, then found that Puppy could not shutdown. Finally solved that one. At bootup, my init script runs, then passes control to Busybox's init. When Puppy is running, he is actually in /dev/ram3 rather than /dev/ram0, but that should not affect anything, as long as no scripts try to use /dev/ram3.
It has been a struggle over more than six weeks, but Puppy version 0.9.3 is getting much closer ... hopefully just a few more days.
Puppy version 0.9.3rc1 has been uploaded. This is not an official release. It is for the guys contributing to development of Puppy, to test and provide feedback. The official 0.9.3 release should follow soon.
There is a holdup with resizing of the filesystem in the ramdisk. This is
supposed to happen at bootup, to adjust the ramdisk to suit the available RAM
and operating requirements. It required a kernel patch. Unfortunately it
works sometimes, sometimes not. For now, I have fixed the ramdisk f.s. at
16384K, which means that the live-CD should bootup on PCs with less than 128M
RAM, but how low I don't know.
Over the next few days I will be investigating an alternative technique for adjusting the f.s. in the ramdisk, by means of an application called pivot_root.
If this is to be your first encounter with Puppy, I recommend try version 0.9.2!
George Boudreau sent in this picture (he added the captions):
Oh wow! We now have drag-and-drop shortcuts on the desktop, thanks to the wonderful Rox file manager and a little bit of detective work by GuestToo. I'll turn on this capability for the next release of Puppy. Basically, all you have to do is start Rox and drag a file onto the desktop, then right click to choose title and icon. So simple.
Syslinux has been updated from version 2.08 to 2.11. The latest has various bug fixes.
Puppy-enthusiasts who have messed around with the syslinus.cfg and isolinux.cfg files, will know about the PFILE parameter. This is of the form "PFILE=filename-password-size" and specifies the file that Puppy will create for your personal data. So far, we have set password to "none", for example PFILE=pup001-none-262144, but part of my master plan for security is that pup001 can be encrypted.
I am now opting for use of PFILE in USB and Zip drive installations, as
well as booting from the live-CD. So, even if you boot off a USB Flash card,
your personal data on the card can be encrypted. Of course, that's great in
the case of live-CD, where you have pup001 permanently left behind on the PC,
but in the case of a Flash card, where is the security if the password is
given inside the syslinux.cfg file? In that case, set password to "ask", and
you will have to enter a password every time you bootup.
So, if your Flash card is stolen, the file pup001 is on it, but all your personal data is locked safely inside the file.
As a side note, think about this: your entire personal home folder, the /root directory, is in pup001 (or whatever name you give it), which makes backup a snap -- just copy pup001 somewhere and zip/gzip it -- a complete snapshot of your system, optionally encrypted, is saved! (even if unencrypted, it is an ext2 filesystem, which will bamboozle Windows users).
The install-to-hard-drive scripts, /usr/sbin/install-hd.sh and install-hd2.sh, have been updated.
The scripts for installing Puppy to USB memory and to Zip disk, the files /usr/sbin/install-usb.sh and install-zip.sh, have been rewritten. I needed to do this due to structural changes in Puppy, in particular, there is no longer a separate "low-ram" install option as at bootup Puppy is now intelligent enough to handle the situation depending on the amount of RAM detected (this is handled in the first bootup script /etc/rc.d/rc.sysinit).
Some of the guys on the Puppy Forum have expressed an interest in having some kind of drive/partition copy/recovery program in Puppy. As I always like to reinvent the wheel, I wrote a script, called Pudd, which means "Puppy universal dd".
Pudd can copy a partition, an entire drive, or a file that contains a drive/partition-image, to another drive/partition/image-file. Pudd is highly intelligent and probes all your hardware and offers choices in menus. The actual copy is done with the dd program, and there is a fallback: if the source is faulty it will still continue and copy all of the source.
Uses? It could be used for copying floppy disks, flash disks, Zip disks, or cloning hard drives. A failing hard drive or partition could be rescued. This is just the first version of Pudd -- I will welcome ideas about what more features would be useful.
I have converted lua and tklua into an external package. It will be the same deal as with other external packages: download lua.tgz, place it in /root/my-applications folder, then reboot Puppy. Nothing will appear in the menu in this case, as lua, tolua, luac and tklua are console applications. The docs are in the package and will be accessable via the "Start/Help..." menu.
Puppy now has the WISH mini-console. This is a brilliant terminal window that is a combination of an X terminal and a tcl console. It can be used as a replacement for the rxvt X terminal or as a tcl console for developing tcl/tk code. The console is fully mouse-aware and there are nice menu items like "cut" and "paste" and "save selection".
I also threw in a very small program called TkVNC, which is a Virtual Network Computing (VNC) client. This is like the Microsoft Remote Desktop Protocol (RDP) server (for which Puppy has rdesktop, a RDP client), but VNC is more generic. For example there is TightVNC server for Unix/Linux machines.
The Puppy Ethernet/network Wizard (file /usr/sbin/net-setup.sh) has been updated for the many new Ethernet driver modules in the 2.4.27 kernel.
Puppy should now be supporting the vast majority of Ethernet cards. Antonio Gallo's libhardware autodetection at bootup still does not detect many cards, however when you run the Ethernet Wizard it should find the right driver for you.
The Modem Wizard (file /usr/sbin/modem-wizard) and a startup script (file /etc/rc.d/rc.network) have been updated to handle the Smart-Link range of soft-modems. I also updated the "Internet getting started HOWTO" page in Puppy.
I have tentatively added support for ntfs partitions when booting Puppy from a live-CD. Previously Puppy looked for vfat, ext2/3 and reiserfs partitions, in that order, and if found created a "pupxxx" file which is a complete ext2 f.s. that is mounted on /root and provides permanent storage for Puppy. Ntfs is now added, except that Puppy will not create the pupxxx file; it must be pre-existing on the ntfs partition (I will provide it as a separate download).
Just a short report to let you know that something is happening...
I have upgraded Puppy to the latest Linux kernel in the 2.4.x series, which is 2.4.27. Lots more drivers, and I am also intending to support Smart Link soft-modems (also known as winmodems).
The bootup of Puppy, in particular the rc.sysinit script, is getting a major overhaul. I am attempting to build-in more intelligence so that Puppy will be able to boot from the live-CD into a wider range of environments, in particular older PCs with less RAM. There was a stumbling block for awhile, as I needed to resize the filesystem in the root ramdisk while it is still mounted. This required a kernel patch, and there was difficulty in getting it to work. The patch is called ext2online, and the developer Andreas Dilger assisted me, and after much experimenting and hacking there was success.
Ok, I'm having fun here...
Puppy now has the Lua scripting language, inluding the interpreter lua, byte-code compiler luac, easy C/C++ integration with tolua, and binding of the Tk widgets with tklua.
Why another script language? Puppy already has Tcl and Ash. Here are some answers:
- Lua is tiny, really tiny. It's no problem whatsoever to throw Lua into Puppy.
- Lua has a very clean Pascal-like syntax, very easy for beginner-programmers.
- With tklua, we can leverage off the existing Tcl/Tk installation and easily write sophisticated GUI apps in Lua.
- Lua is gradually gaining in popularity.
- Lua, despite the tiny size (under 100K total), competes with Python in functionality.
- Lua can easily use all the shared library files in Puppy.
- More choice for Puppy-users.
- "Down the track" (Australian idiom, meaning sometime in the future), Puppy may migrate to the elinks web browser, which uses Lua as its scripting language.
- Lua is just too cool, I couldn't resist it.
Those of you who have been in the Linux scene for a long time will probably know of "Tom's boot disk". Tom has a repair/diagnostic boot floppy disk that packs an amazing amount of stuff into just one floppy disk. I recently discovered that the floppy also has a Lua interpreter and Tom wrote all the basic Linux utilities, such as head, grep, ls, etc. in Lua.
Note that I have installed Lua version 4.0.1, not the latest which is v5.0.2. The reason for this is that tklua has not been updated -- I intend to put pressure on the developer to hasten an update!
Will Lua be a permanent feature of Puppy? I don't know. For now, it's there to play with ...well, Lua will be there when I release Puppy v0.9.3. There will also be heaps of Lua docs in Puppy.
I have removed the tix Tcl/Tk widget library, as it is not used in Puppy and is just dead weight.
I have improved the Puppy Axel download accelerator slightly, added more options to the GUI.
Puppy already has tkMasqdial, a masqdialer client. I have now added MasqMan, which displays the status of masquerading on a LAN. This is a topic that I know nothing about, but both of these do seem like useful apps.
I found a problem with the Firewall Wizard. This is a console
application that uses the dialog program for user interface. When it
gets to the end, it outputs some final messages to the console, but the
terminal window closes immediately and you don't get to see the messages. It
is important to see them because they report success or failure in installing
I have created a shell /usr/sbin/firewallinstallshell, that waits for the user to press the ENTER key before closing the console window.
I successfully used the Axel download accelerator to download a 50M file while in the Puppy ramdisk environment. This works because Axel writes directly to the destination file, whereas the Mozilla downloader caches the file in /tmp. The problem is that the ramdisk only has about 8M free space, limiting what can be put into /tmp.
A note for Puppy-watchers: I've started work on getting the live-CD to boot up on PCs with less than 128M RAM.
This is a very trivial little program, but maybe useful also. The author
David Welton has an interesting collection of Tcl/Tk apps. I already have his
regexpviewer in Puppy, for evaluating/learning regular expressions. Now I
have added Countdown, which is an "egg timer". You just enter
minutes and seconds, then it counts down and beeps the PC loudspeaker at you
when it times out. Could be useful if you know that you lose track of time
while sitting at the computer and need to be reminded when you have to do
Apologies to david, I hacked his program somewhat and reduced it down to just one small file.
The Network menu had "Monitor modem traffic" and "Monitor network traffic" entries, that monitored traffic flow on ppp0 and eth0 respectively. There is now a single entry, "Xnetload network traffic", for which I have written a frontend. This frontend tests which interfaces are currently "up" then offers a choice of those. The frontend tests eth0, eth1, ppp0 and ppp1.
Puppy version 0.9.2 released. The live-CD is 48.9M. Release notes:
- Please also scan through the release notes for versions 0.9.0 and 0.9.1 as some may still apply.
- Puppy now has Greyboard, which is a "blackboard" that several users can share over a network.
- Puppy now has the Axel download accelerator, and a GUI frontend, called the Puppy Axel download accelerator.
- GKdial is joined by another analog modem Internet dialup program, called eznet, with Xeznet GUI frontend.
- Login usernames in GKdial have been increased from a maximum size of 20 characters to 28.
- Turma is joined by another text search program called reXgrep, which is a GUI frontend to grep. Available via the "Find..." menu. Also, Busybox grep has been replaced by the full grep and egrep program.
- Puppy now has xhost and GUI frontend Gxhost. This controls access to the X server, and is useful in conjunction with Greyboard.
- There is another little game, called Gemgame.
- Sockspy is a GUI network utility program that monitors TCP conversation between a server and a client. Can be used to debug the conection.
- Gnotepad text editor has been removed and replaced by Beaver. One of Beaver's many nice features is color syntax highlighting for a great many file types.
- Ggradebook has been added for teachers/lecturers.
- Gtksamba is a GUI program for configuring /etc/samba/smb.conf, the Samba configuration file.
- The ntfsresize program is now in Puppy. For experts only, as there is not yet a friendly safe frontend to use it.
- There was a bug with Puppy not recognising ext3 partitions, now fixed. Other bug fixes include can now print from Sylpheed, fixed file-associations in ROX and a little bug in the Ethernet/network Wizard.
- There is now a primitive mechanism to create desktop shortcuts, located in the "Control Panel" menu.
- Gwget download manager has been removed.
- The Printer Wizard supports about 200 printers, however there are about 600 "compatible" printers, and the complete list is now in the Wizard.
- The Agenda event manager has been installed, for reminding of appointments, birthdays, etc. and as a basic execution scheduler.
- The calendar program Xcal is now replaced by Xcalendar.
Yes, Puppy is slightly smaller than the previous release!
For Puppy-watchers, these are the items highest on the to-do list:
- Support parallel-port Zip drive.
- Support for NTFS partitions.
- Sylpheed does not seem to be using /etc/mailcap.
- DVD drive detection needs to be improved.
- Mouse/keyboard Wizard
- Move away from using umsdos for usb installations.
- Login as a non-root user.
- Integrate Axel frontend with Skipstone?
- Kernel 2.4.27 and more hardware detection.
- Flash, Java plugins for Skipstone?
Puppy has acquired Agenda, an "event manager". I did consider at and crontab packages plus a GUI frontend for them, but decided they are too complex and large. Agenda can be used for simple reminders, for example, birthdays, or can run commands at specified dates, one-shot or repetitively. Agenda is a GUI application and I have placed it into the "Information Managers" menu.
The problem with the calendar program Xcal crashing whenever a help button is clicked, never got solved. Instead, I have looked around for a replacement. Considering that Xcal was last updated in 1993, I was looking for something more recent. I found Xcalendar, a very simple calendar program.
Some Puppy-testers have expressed a desire to be able to create desktop shortcuts. The Fvwm95 window manager does not support drag-and-drop creation of desktop shortcuts, however it may be possible to implement that using ROX. For now, the window manager does have a basic mechanism for displaying shortcuts, and I have created a primitive script for creating a shortcut -- it is to be found in the Control Panel menu.
As mentioned below, the last release of Puppy was not recognising ext3 partitions. This problem occurred during bootup from the live-CD and also when running the Puppy drive mount/unmount utility (in the File managers menu). I have now fixed this.
I have installed a fascinating little application in Puppy called Greyboard. This provides a "blackboard" that several people on a LAN can collectively scribble on. It has basic graphics and text drawing tools, and each person can choose a different color. Greyboard should work on any Linux or Unix system, though one very peculiar problem is that text input doesn't work on Mandrake 9.2. I presume Greyboard could be made to work over the Internet also.
A utility for experts only is now in Puppy: ntfsresize. This may get incorporated into an installation script at some stage, but for now there is just the utility and a documentation page.
BUG REPORT: When the live-CD boots, the startup script looks for a
partition in which to create a file for permanent storage of your data. It is
supposed to look for msdos, vfat, ext2, ext3 and reiserfs partitions, but
there is a problem with the way the latest "probepart" program works and ext3
partitions get overlooked. I have put this at the top of the to-do list and
will fix it before the next release of Puppy. Thanks to the guys on the Forum
for reporting this.
The bug is only going to affect you if your PC has only a ext3 partition and none of the others -- then Puppy will not be able to create the persistent storage file.
Puppy now has the Axel download accelerator. This is a console application, however I have also whipped up a little GUI for it, called the Puppy Axel download accelerator.
Axel is very interesting. As well as enabling multiple connections to the same server, it also allows simultaneous connection to different servers. For example, if the Puppy live-CD iso file is on two different servers, you can use Axel to download each half of the file simultaneously. Axel writes directly to the destination file and does not buffer the segments, so it should be able to download large files in the restricted Puppy ramdisk environment, though this is yet untested.
<rave>Huh! I was booting Mandrake via a floppy disk, as the installed Grub boot manager was out of action. I kept thinking that I should make a copy of the boot floppy, but kept putting it off. Floppies are so darn unreliable, and today it wouldn't boot. I did manage to boot into Mandrake by another means and ran the Mandrake manager program to create another boot floppy -- but the darn thing told me that it can't -- there isn't enough room on the floppy! -- what kind of boot-disk-creation program is this, that tells you it is going to create a boot floppy then tells you it can't? Stupid Mandrake. What I did was use the humble little Puppy hard drive boot disk -- real easy, just edit the AUTOEXEC.BAT file so that it has "tiny.exe a:\vmlinuz - root=/dev/hdb2 devfs=mount" where /dev/hdb2 is where Mandrake is installed in my case. I also got the vmlinuz file out of Mandrake /boot folder. Boots Mandrake fine.</rave>
A problem with GKdial was reported on the Forum. The login username was limited to 20 characters, and some people wanted 22 - 26 characters. I have modified the source code so it is now 28 characters max.
The problem with GKdial has prompted me to offer an alternative. Puppy now
has eznet and a GUI frontend Xeznet. If GKdial
doesn't do it for you, then try Xeznet. I will leave both of these in Puppy.
I have also put in a nice documentation page on eznet.
Note, there are other Internet modem dialup programs, but I chose eznet as it appears from the docs that it won't interfere with the config files for GKdial -- this is an issue with the others, meaning that it restricted you to using one or the other but not both. It seems, untested yet, that you can happily move between GKdial and Xeznet, perhaps if one ISP likes one of them, another ISP only likes the other. Or, you just like to play.
The last release of Puppy has a bug in ROX, the file manager. The file-associations for HTML and RTF files were messed up. Left-clicking on a file in ROX is supposed to open the associated program that handles that file type, but in those cases it didn't. Now fixed.
I have removed the Gwget download manager, for the simple reason that I find it confusing and very limited in the way it works. This is version 0.5.2 that uses GTK 1.2, and the author has moved on to GTK2 -- his recent versions have major improvements. Gwget 0.5.2 doesn't even accept a URL on the commandline, which is not so good.
There is a utility program called xhost that is part of Xfree, now installed. I also installed Gxhost, a GUI frontend for xhost. This restricts connections to the X server, and has some usefulness with networks.
For searching for text strings in many files, Puppy already has
Turma, which also does text-replace. A nice product, however I have
taken a liking to reXgrep which is a frontend to grep
and is also a very nice text search program, a bit simpler than Turma and
with some slightly different (and complementary) features. As both apps are
very small, they are now both in Puppy, and launch from the "Start/Find"
Puppy was using the Busybox grep, however I have now installed the full grep and egrep from Mandrake, to ensure that reXgrep works properly.
Puppy has acquired a new game, called Gem game. Very small and simple. A little while ago someone complained that all the games in Puppy are keyboard-driven, whereas he prefers to use the mouse. Well, Gem game is mouse-driven.
Puppy has also acquired another GUI network tool. This one is called Sockspy and it monitors the TCP conversation between a client and a server. The guy who wrote it reckons that it is "indispensable" for network administrators.
Our old friend Gnotepad has gone, replaced by Beaver.
Gnotepad does have a bug: under certain circumstances it can truncate or even
zeroise a file. One nice feature of Gnotepad is the HTML tag insertion. A
disadvantage of Gnotepad is the current line number is not shown.
Beaver has worked perfectly so far, and does display current line number. The greatest feature of Beaver is the UltraEdit-compatible syntax highlighting -- I chose syntax highlighting for the languages used in Puppy, such as Ash, Tcl/Tk, CSS, Postscript, HTML and XML. For editing HTML code, Puppy has Bluefish, so that feature of Gnotepad will not be missed.
I have removed ML. This is a text editor with syntax highlighting for Tcl/Tk only, and Beaver now covers that.
Another application that I have put into Puppy is Ggradebook. Teachers/lecturers can now keep records of student marks. Puppy could very well now have everything that a teacher needs.
I mentioned below that Gimp-print supports about 200 printers. Actually, there is support for over 600 printers, as the drivers do work more or less with many "compatible" printers. What I have done is put the complete list into the Printer Wizard, so if your printer is not an exact match, then it may be listed as a compatible printer and you can quickly find the right driver.
It was reported on the Forum that could not print from Sylpheed. I've fixed that, in a rather peculiar way. I had setup the printer filtering so that plain text files get passed straight through to the printer, however this isn't working. So now they get filtered by Ted, the wordprocessor. Ted has various commandline features, one of which is to convert text and RTF files to Postscript. By filtering the Sylpheed email message through Ted, it automatically gets Ted's default page layout and font settings.
A little bug in the Ethernet/network Wizard. When you choose the option to configure the network interface by DHCP, a little window pops up telling you to wait for up to 60 seconds. The problem is, this window stays there forever, stalling the script at that point, but it is supposed to go away on its own. So don't be patient, click the close box, then wait patiently for up to 60 seconds.
This bug is fixed for the next release.
I've installed GtkSamba, a little GUI program for configuring /etc/samba/smb.conf, the Samba configuration file. Puppy is only a Samba client, but I thought this app would be nice. Note, I could put all the rest of the Samba apps into Puppy as an extra package, if anyone is interested in setting up Puppy as a Samba server. I never intended Puppy to be a server environment, especially as Puppy runs as root, but this could be explored if there is interest (logging in as a user is on the to-do list though).
Dan Leffingwell has done a lot of work getting LinNeighborhood, the Samba client GUI application, to work just right, and he has created a web page:
I will update the Puppy networking docs with a link to his page. Dan's input, especially his helpfulness to many newbie enquiries on the Forum, is greatly appreciated.
Puppy version 0.9.1 released. The live-CD ISO file is 49.0M. Release notes:
- Mozilla has been upgraded to version 1.7, with Skipstone as the GUI frontend. Skipstone displays as version 0.8.4 however it is actually a hybrid of 0.8.4 and 0.9.3. The problem with Skipstone crashing when flipping tab-views is now fixed, however there are still some minor problems with tabbed-windows view.
- GTK applications in Puppy can now have antialiased fonts, courtesy of the libgdkxft package, and this is applied on a per-application basis. Font antialiasing is applied to Skipstone, Dillo (web browser), Amaya (HTML editor) and Ted (wordprocessor).
- Puppy now has the IJS drivers of Gimp-Print, bringing support for over 200 Canon, HP, Epson and some Lexmark printers. I have also written the Puppy Printer Wizard that eases configuration of a printer. So far I have successfully tested printing from Ted, Amaya, Xpaint and Skipstone.
- The nmap network discovery tool, with Xnmap GUI frontend, has been installed.
- Gyach, the Yahoo chat program, is updated to the latest version 0.9.8, to fix a login problem.
- The wordprocessor Ted has been taken back to version 2.14 from 2.16, as the latest version has font problems.
- Some networking configuration problems have been fixed, with help from the guys on the Forum.
- The Light web browser has been removed.
- UPGRADING: if upgrading from an earlier version of Puppy, please delete the /root/.mozilla and /root/.skipstone folders and the file /root/Ted (if it exists) first -- for example, if have booted up from the live-CD, delete the folders and file, then reboot from the 0.9.1 CD. When Puppy boots, if these folders and file are absent then Puppy will replace with the latest versions. Puppy normally does upgrading automatically at bootup, but I this is a one-off exception.
- BOOTING: if planning to run Puppy on a PC with only 128M RAM, that uses shared-RAM for the on-motherboard video, please go into the BIOS and adjust the shared RAM to no more than 8M. PCs often have a default shared RAM setting of 16M or 32M which is too high and Puppy will not boot. For PCs with 256M RAM there is no problem.
Note that if you have installed the previous version of Puppy to hard drive, using the "no ramdisk" option, there is not yet an upgrade mechanism for that mode of installation. You will need to do a full install from the live-CD.
Printing is still a work-in-progress, and the Puppy Printer Wizard script, located at /usr/sbin/printerwizard.sh, will need to be further refined. I have placed some docs on the website as reference for anyone interested in this, in the Puppy Developer's page.
If you want to print from Puppy, you must run the Printer Wizard first.
The installation of Mozilla 1.7 is cutdown, with non-essential files removed. It is possible that some unforseen requirement of web browsing with Skipstone will expose the need for one of these absent files. If you find that Skipstone does not do something that you would normally expect Mozilla to be capable of, try running Skipstone from the rxvt terminal commandline and repeat the exercise and see if it outputs any error message to the commandline. Then, let me know, via the Forum.
For Puppy-watchers, the highest-priority to-do list for the next release of Puppy is currently:
- There seems to be a problem with launching the file manager from LinNeighborhood.
- Resize ntfs partitions, so that Puppy can be installed on systems with only a ntfs partition.
- Write a download manager, to replace Skipstone's skipdownload, one that works the way I want.
- Clicking the help button in Xcal, the calendar program, crashes it. Will fix.
- Upgrade to Linux kernel 2.4.27, and improve hardware auto-detection.
I've written the Puppy Printer Wizard. This script asks simple questions and generates a configuration file for your printer, to suit the PDQ printer management system. The Wizard provides basic printer configuration for the over 200 printers supported by Gimp-Print -- Canon, HP and Epson, and a few Lexmark models.
So far, I have tested printing from Amaya, Xpaint and Ted, works perfectly, except can only get greyscale printing from my S200.
Great news! I have got the PDQ printing system working. Early days still,
but I got it to print plain text and Postscript files, to a parallel-port HP
Deskjet and to a USB Canon S200 printer. For the S200 printer, I installed
Gimp-Print v4.2.7pre1, which has a huge number of printer drivers.
Lots of details to work out, but it's looking good.
There's lots of things happening!
The next release of Puppy may have Mozilla 1.7, or rather its
"guts", with Skipstone as the GUI frontend.
The crashing bug has gone away, replaced with a new set of bugs, and I'm currently communicating with the author of Skipstone to see if any of them can be resolved. There is one main bug, that if it can be fixed, then Moz 1.7 will definitely be in the next Puppy. Font anti-aliasing works well.
The guys on the Discussion Forum have been helping enormously with debugging the Ethernet/network Wizard. It's looking good. Thanks especially "GuestToo".
I have put nmap into Puppy, which has nmapfe (also known as Xnmap) GUI frontend.
Puppy 0.9.0 has Ted wordprocessor v2.16, however I have taken it back to v2.14 as there is a problem with font handling in the latest version. V2.14 has font problems also, but less so!
I have uploaded the sources for compiling your own Puppy. Go to ibiblio and look in puppy-0.9.0/sources folder, and you will find files puppy.tar.gz, sources0.tar.gz and sources1.tar.gz. The first file has the basic infrastructure and must be uncompressed first, then read the README.txt file inside it. File sources0.tar.gz has all the packages needed to boot Puppy up to the commandline only, whereas sources1.tar.gz adds packages to get X going and some basic X applications such as desktop, file manager, text editor and terminal emulator. So far, have not uploaded sources for building the entire Puppy system.
Compiling Puppy from source is not a trivial exercise and is for experienced Linux developers only. So far only tested on Mandrake 9.2 and this is the recommended host platform. Also the host must not be a mission-critical system, as the Puppy build scripts perform many modifications to the host.
It has come to my attention that Puppy featured on the front cover CD of the UK "Linux Format" magazine, March 2004:
A great mag. I just bought the latest edition from my newsagent, with all three mandrake 10 CDs on the front.
Oh wow, I now have anti-aliased fonts working in Puppy! There is a misconception that only GTK-2 apps can have anti-aliased fonts, not GTK-1.2 apps. However, there is a little library called "libgdkxft", hosted on Sourceforge, that bolts anti-aliasing onto GTK-1.2 apps.
It's not perfect, and doesn't work quite right with some apps, such as Gnotepad, however I am able to turn it on on a per-application basis. I've got it turned on right now for the Ted wordprocessor and for the Amaya HTML editor, and it has transformed those apps from disgustingly crappy font rendering to absolutely beautiful.
...but, you have to wait for the next release of Puppy!
Note, I cannot yet apply anti-aliasing to the Skipstone and Light web browsers, as Mozilla already has its own anti-aliasing mechanism. As this new system works so well, I intend to recompile Moz with its own anti-aliasing turned off, so can use this new technique.
Puppy version 0.9.0 released. The live-CD iso file is 48.7M. This is a new complete rebuild, compiled on Mandrake 9.2. Release notes:
- For anyone upgrading from an existing USB, Zip or hard drive installation of Puppy, please upgrade both image.gz and vmlinuz files. Puppy is still using the Linux kernel version 2.4.22 but I recompiled it for a default ramdisk size of 61440 Kbytes. If your isolinux.cfg or syslinux.cfg file has a "ramdisk_size" entry, either change it to 61440 or delete it entirely. Puppy users booting off the live-CD can ignore this advice.
- For anyone upgrading from an earlier version and who has installed the Links or SANE external packages, please go into /root/my-applications and delete them. They are compiled for the uClibc library and will not work in Puppy v0.9.0. You can obtain the latest external packages from the download site. Note, the F-Prot external package is ok and does not need to be updated.
- The main web browser is now Skipstone. This is a fast frontend for Mozilla. There is one very important issue: do not use Skipstone in tabbed-window mode, or if you do, don't zoom the display. There is currently a problem with the combination of tabbed-view and font zoom that causes Skipstone (and Mozilla) to crash. I know this is a hassle: I personally love the tabbed-view, so I will be giving it a very high priority to fix!
- Handling of sound is now very well catered for, with the Snack audio library that handles many formats including AU, SND, WAV, MP3, and AIF, and various GUI applications. There is play.tcl, a console player, snamp.tcl, a GUI player, and XS, a sound recorder and editor.
- The ICQ chat client Gicq has been replaced with Alicq, as a report on the Forum was that the former didn't work properly. I am not into ICQ, so haven't tested Alicq -- let me know how it goes!
- Puppy now has Cheops, a network exploring and monitoring tool, a kind of "Swiss army knife" for networking.
- The Samba client application nmblookup was missing from the previous version of Puppy, seriously compromising the operation of LinNeighborhood. Now the "network neighborhood" should be fully functional.
- Removed applications are Mozilla, Mozilla Composer, specTcl, visualTcl. Note that the "guts" of Mozilla is still there, to drive Light and Skipstone. There are still three HTML editors in Puppy, the WYSIWYG Amaya, Bluefish and Gnotepad. specTcl and visualTcl are GUI-builders for Tcl/Tk programming, a bit too much of a luxury for Puppy, but maybe I'll bring one of them back, if there's room.
- Ogle, the DVD video player, now has a nice GUI frontend, called Ogle_gui.
- There was a problem with the Network Wizard when doing manual setup of a gateway. I think that is now fixed.
- The first time you run Puppy, there is a selection of keyboard layouts for you to choose from. Previously, you had to type a two-letter response, such as "us" ("us" was also the default). Now, there is a much larger selection, and a window displays allowing selection by arrow-keys then ENTER key, which hopefully any keyboard layout can handle (as Puppy initially boots up with "us" layout).
- Some applications have been updated to the latest versions: Sylpheed v0.9.11, Dillo v0.8.1 and Amaya v8.5.
- The install-Puppy-to-hard-drive script in the Utilities menu now has an option for a conventional installation without a ramdisk. This is recommended for those who want to hack/develop Puppy, as /usr folder is read/write.
For Puppy-watchers, just to let you know what is planned, I have this highest priority to-do list planned for v0.9.1:
- Resize ntfs partitions, so that Puppy can be installed on systems with only a ntfs partition.
- Write a download manager, to replace Skipstone's skipdownload, one that works the way I want.
- Investigate the Mozilla font problem that causes crashing, and get anti-aliased fonts to work better.
- Investigate using a later version of Mozilla.
Other items planned for the near future:
- Clicking the help button in Xcal, the calendar program, crashes it. Will fix.
- Upgrade to Linux kernel 2.4.27, and improve hardware auto-detection.
- Fix printing.
- Improve font rendering in Amaya.
When you test v0.9.0 and anything urgent turns up, let me know, preferably via the Forum, and I'll consider adding to this to-do list. As this is a complete rebuild, there could be some problem there that I missed while testing.
Various external packages, including Links and SANE will be uploaded soon.
Source code and scripts for compiling your own Puppy, so far tested on Mandrake 9.2 only, will also be uploaded soon.
There is a problem with Mozilla crashing. Strange, never ever had this
The fonts are setup so that Mozilla is using bitmap fonts to display on the screen, and the main font, that you will be reading right now if you're running Puppy, is Adobe Times pcf size 14. Fine, but if you go to the View menu or into Fonts in the Edit/Preferences menu, and change to a larger zoom factor, again fine, but... if Mozilla is in tabbed-view mode and you flick to another tab, Moz crashes.
The error is that the GDK reports a "badmatch", which means that it could not find the font. Adobe Times pcf fonts are sizes 8, 10, 12, 14, 18 and 24, so if Moz is displaying at size 16, you get the badmatch.
To immediate "solutions" are to either not zoom the display, or do not use Moz in tabbed window mode. Another solution is to use scalable fonts for the display, but the URW Type 1 fonts used in Puppy look rather awful rendering web pages.
Another problem with Mozilla is the odd behavior with anti-aliased fonts. Moz v1.0.2 will only display bitmap fonts with anti-aliasing, not the Type 1 fonts. Forthermore, Moz will not apply anti-aliasing to bitmap fonts for which it has an exact match. For example, Times Adobe pcf has a size 14, so that will not display with anti-aliasing. However, if Moz wants to display that font at size 16, it will be anti-aliased.
I want to get Puppy v0.9.0 out the door, and this issue is holding things up! Hmm, maybe I will just tell you not to use tab-mode or not to zoom the display, then target solving the font problem in the release after that, 0.9.1.
Heh, heh, you loose one way, gain another... the uClibc build of Mozilla could not connect to FTP sites, but the new Mandrake glibc build can. This was an annoying problem right through the 0.8.x series. On the other hand, all previous builds didn't have this font crashing problem (sigh).
A fundamental problem with Mozilla is that it cannot launch an external
email program. This means that if there is an email link on a web page,
clicking on it has no effect. This problem has been known about for ages but
the Moz developers never bothered to fix it -- as far as they are concerned,
you should be using the mail/news module that comes with Moz.
The good news though is that Skipstone does allow a user-specified external email handler, so I have set it up for Sylpheed.
Fascinating, I finally managed to compile Skiptone. This is a web browser, or rather a fast frontend to Mozilla. Skipstone has all the features that Moz does, but starts up in 1 - 2 seconds and responds to everything faster. I tried many times to compile the source code, but failed, and got no response from the author. It looked like a dead project, but recently the author has revived it and is now working on a GTK2 version.
Anyway, I got it to compile, the GTK1 version that is. I am seriously considering making Skipstone into the main browser for Puppy.
Well, Gnoise had a short life! As mentioned below, I found it to be too limiting. It is now replaced by XS, which is a GUI application that uses the Snack audio library. As Puppy now has Snack, it is good to find a reasonably powerful sound recorder and editor that uses Snack. XS is the younger brother of WaveSurfer, but still has heaps of features, and can open and save in all the file formats that Snack supports, including WAV, AU and MP3. There are lots of sound processing features. Best of all, XS is very small. Incidentally, XS is written in Tcl/Tk, like many of the GUI apps I'm now discovering.
A note for Puppy newbies: the first time that you boot-up Puppy, if the time displayed at bottom-right of the screen is wrong, set the timezone. You'll find it in the Utilities menu. Puppy reads the hardware clock at bootup and treats it as localtime, however something goes wrong if the file /etc/TZ has the wrong timezone set in it. Running the timezone-setting script will fix that.
I have removed Gicq and replaced it with Alicq, as it has been reported on the Discussion Forum that Gicq doesn't work properly. I have not yey tested Alicq.
I have removed tkXMLive, an XML editor, as I cannot figure it out. Maybe it works, but I find it very confusing. If anyone else has used it and thinks it's good, let me know.
I have installed Snack, an audio library. This library supports editing and playing of WAV, MP3, AU and other sound file formats. I have removed mpg123, previously used to play MP3 audio files. There are various applications supporting Snack, and I have installed play.tcl, a commandline player, and snamp.tcl a GUI player.
Gnoise has an annoying feature: it seems that it can only open WAV files that it has created, not other WAV files. Gnoise is good for recording from a microphone and saving as a WAV file. It would be nice if other existing WAV files could be opened also. Well, I'll leave Gnoise in for now, as don't know of any other compact alternative.
I've been reminded, Puppy is now one year old!
Thanks for the forum feedback guys!
I've fixed LinNeighborhood. It needed nmblookup to work properly, which is part of the Samba client application suite. Now we can look forward to a fully functional "network neighborhood" app, and also the nice Cheops for exploring the network.
I have added GNoise, an audio recording and waveform editor. Great for recording your voice then cut out just the bit you want, and play with its characteristics.
The big news is that I have yet again completely recompiled all of Puppy, this time on a Mandrake 9.2 system. This build is no longer using uClibc, just the standard glibc, which means that any executable from Mandrake and many other distros will run as-is in Puppy, no need to especially compile. Here is a summary of what has happened:
- I have been writing a "super script", to more fully automate the rebuilding of Puppy. I will be bundling this with source tarballs, so anyone will be able to compile their own Puppy. This will be in a modular form, so the first source package, called "sources0", will build a Puppy that just boots into the commandline, "sources1" will add applications to get Puppy into X with basic X apps such as window manager, file manager, xterminal and text editor. Etc. ...there's 8 of them! So far only tested on Mandrake 9.2.
- Cheops has returned. I wasn't able to compile it on uClibc. This is a GUI network probing/exploring/monitoring tool, a "Swiss army knife" of networking.
- I had gtail for real-time monitoring of changes in files, now replaced by Sportal.
- Ogle, the DVD video player, now has a nice GUI frontend, called Ogle-gui.
- There was a problem with the Network Wizard doing manual setup of a gateway. I think that is now fixed.
- The first time you run Puppy, there is a selection of keyboard layouts for you to choose from. Previously, you had to type a two-letter response, such as "us" ("us" was also the default). Now, there is a much larger selection, and a window displays allowing selection by arrow-keys then ENTER key, which hopefully any keyboard layout can handle (as Puppy initially boots up with "us" layout).
- Some applications have been updated to the latest versions: Sylpheed v0.9.11, Dillo v0.8.1 and Amaya v8.5.
- I had to remove specTcl and VisualTcl due to lack of room.
Note that the new glibc-based mandrake-9.2-based Puppy will be version 0.9.0. Thus, the entire 0.8.* range is uClibc-based, and all Puppy versions up to 0.7.9 are Redhat-8.0-based.
I've expanded the install-to-hard-drive script, to have the option of a "conventional" installation. What this means is that there is no ramdisk, and Puppy requires an entire partition. The script does not create the partition, so there has to be a pre-existing spare partition. Also the script does not install a boot manager, but does create a boot floppy disk.
An advantage of this conventional installation is that every folder is read-write. The installation of Puppy that runs in a ramdisk has a compressed read-only /usr folder. This is really good news for people who want to hack Puppy, as there is no need to reconstruct image.gz whenever a change is made, and any file can be changed.
Another advantage is that as there is no ramdisk, there is no problem running in PCs with less RAM, perhaps as low as 32M. The catch though, is that you have to bootup Puppy somehow to be able to run the hard-drive install script, and the live-CD still needs a PC with 128M RAM. ...I'm planning to tackle that one soon. There are probably workarounds, such as install Puppy to USB Flash lo-ram option, then bootup on the PC with less RAM, or physically move a hard drive from one PC to another.
Great news! Many people have slightly older, even newish, PCs that cannot boot from USB drive or from CD. Hence, they cannot boot Puppy from those media. The problem is now solved, as I have created a universal floppy boot disk for Puppy, and a page that explains it all: www.goosee.com/puppy/boot2pup.htm.
Puppy version 0.8.6 released. Live-CD ISO file is now 49.4M. Release notes:
- For those who already have Puppy installed on Zip, USB storage, or hard drive, just copy the image.gz file from the CD (after burning cd-puppy.iso to CD) to replace the previous one. For those people who have been following Puppy development by booting up from the live-CD, no problem, just boot up from the new CD and all your old data will still be there. Note that the ramdisk size is now 57344 Kbytes.
- Puppy now has the Tcl/Tk programming langauge, and BWidget, tix, FTP, Tkhtml, Img, combobox extension libraries.
- VisualTcl and specTcl, GUI builders for creating Tcl/Tk applications. I intend to keep only one of these, whichever is voted as the best.
- ML, text editor with syntax highlighting of Tcl code, with procedure jump-to.
- tkConvert, units converter.
- regexpviewer, regular expression evaluator. The Help menu also has a regular expression HOWTO.
- Slidedraw, slide presentation program, like Powerpoint.
- CDTAR, another backup program (Puppy already has bkup2cd).
- TkZip, another archiver program, handles bzip2, tar, gzip, zip, cpio archives (Puppy already has Xtar).
- setvol, console utility to set and get the audio volume.
- mp3shell, mp3 audio player, frontend for mpg123.
- tkXMLive, WYSIWYG XML editor.
- tkmasqdialer, share a modem on a network for Internet access (client only).
- Roaring Penguin PPPoE frontend, PPP-over-Ethernet ADSL Internet access. Not yet tested.
- tkPaint, vector graphics editor (Puppy already has Figurine).
- Help menu HOWTO programming and multimedia pages updated.
- There was a problem with the manual configuration option of the Ethernet/network Wizard. Hopefully that is now fixed.
- The anti-virus program F-Prot can now do download of the latest signature-files, if you are connected to the Internet.
- You wheel/scroll mouse should now work. The guys on the Puppy Discussion Forum report that the mouse needs to be moved slightly while rolling the scroll wheel.
Vppp and Scout are also in Puppy, but not in the menu. Vppp is a analog modem Internet dialup program, but needs some work, hence is included for experimental purposes. Scout is a web browser, written in Tcl/Tk, also not fully functional and included for experimental purposes.
Do you have any Tcl/Tk programming skills?
Maybe I could interest you in getting involved with Puppy:
Scout is a tiny web browser, that uses the Tkhtml and FTP
libraries. Basically, Scout works, but not properly. I am interested in using
Scout as Puppy's internal HTML help viewer, but when I open a HTML file, only
the first graphic image displays. Also, there is a problem with relative
links, and I need to change into the directory with the HTML file before
invoking Scout for the relative links to work. Scout is supposed to store
stuff into /root/.Scache/ folder, but doesn't. Scout can be found at
/usr/local/bin, and would need to be copied elsewhere for editing as all of
/usr is read-only. Fonts are jagged, as not using a scalable font -- maybe
get the font selection capability out of Slidedraw to fix this.
If you want to see how good a web browser written in Tcl/Tk can get, look at BrowseX.
Slidedraw is a presentation program, like Powerpoint, but nowhere
near as sophisticated. Slidedraw has enormous potential. I have already
modified Slidedraw to use the netpbm package rather than ImageMagick
for manipulating and importing images and also for creating a background
pattern (so doesn't use the libsld.so library file). It may seem very
ambitious, but I can see Slidedraw evolving into a nice desktop publishing
system and also a wordprocessor -- what about incorporating the WYSIWYG XML
capability of tkXMLive into Slidedraw, or maybe the Tkhtml widget?.
Slidedraw is to be found at /usr/lib/slidedraw/ folder, which is readonly so not possible to edit. I suggest install Slidedraw on a host Linux system and edit it there -- Slidedraw should even work on MS Windows. Note that Slackware 9.1 has a very old version of netpbm that is not suitable -- peculiar that they haven't updated it.
The Slidedraw website is www.pragana.net/slidedraw.html
If you want to do any development on a host Linux or even Windows system, and your distro doesn't have Tcl/Tk installed, or is missing some extension libraries, I suggest download the package from ActiveState. This is a binary package complete with all the extensions. Puppy is using Tcl/Tk version 8.4.6. The ActiveState site is: www.activestate.com/Products/ActiveTcl/. Otherwise, individual packages should be locatable via sourceforge.net.
I have successfully used the Netpbm programs to import images into Slidedraw. Netpbm is a suite of a couple of hundred tiny image manipulation programs, and has been in Puppy since the beginning. Some apps in Puppy (ABS? Figurine? Xpaint?) use the Netpbm programs to export to different image formats. So, ImageMagick is definitely not required.
In the next release of Puppy, you will want to try out Slidedraw, and there are a couple of things that you must know. Slidedraw starts up with a blank "slide" and you can draw stuff on it. You click on an icon, say the rectangle icon, then use the left mouse button press-drag-release to draw the image. What was not explained anywhere was how to move an object or modify its properties, and I eventually found that you double-click with the right mouse button (button 3) to bring up an object's properties box, and you right-button press-drag to move an object. I dunno...maybe we need to rethink the wisdom of this.
A couple of bugs in Slidedraw: The filled oval doesn't draw. Setting a graduated background colour pattern crashes the program (actually, Netpbm can be pressed into service here also, so I should be able to readily fix this bug).
Puppy's Type1 scalable fonts work very well, but there is no anti-aliasing. For a slide presentation program we really would like anti-aliased fonts, and there is good news on the horizon. The development (alpha) release of Tcl/Tk does support anti-aliased fonts under X11, so this is something to look forward to.
ImageMagick added about 2.5M (uncompressed) to Puppy, which I was not at
all pleased about, so I have removed it. For now, images cannot be imported
to Slidedraw, but I am intending to develop an alternative import technique,
maybe using the Netpbm or Img packages, that are already in
Puppy ...when my Tcl/Tk coding skills get up-to-speed that is!
Slidedraw has many "issues" (ok, bugs) that I intend to work on, or maybe this will interest someone?
The new stuff:
- VisualTcl. This is another GUI-builder.
- tkhtml, Img, combobox. These are libraries for tcl. Puppy already had BWidget, Tk, tix.
- tkConvert. This is a units converter, for example, acres to hectares.
- regexpviewer. This replaces visual Regexp, which seemed a bit too complicated.
Hmmm, the iso file has climbed to 49M, which is near the limit if Puppy is to fit on a business-card-size CD. I still have some tricks up my sleeve for making it a bit smaller.
The tcl/tk bandwagon rolls on. These GUI apps have now been added:
- Slidedraw. This is a presentation program. You construct slides visually. I have put it into Puppy although it is buggy. I see enormous potential though, and intend to work on it.
- CDTAR. This is an alternative backup program. Puppy already has my own bkup2cd, but it is nice to have choice.
- TkZip. This is an archiver program that handles zip, gzip, bzip2, tar, cpio, and can potentially handle more compression formats. Puppy already has Xtar, which only handles tar and gzip, so now choice is greatly expanded.
- VPPP. This is an analog modem Internet dialup program. Puppy already has Gkdial, but as Internet dialup can be troublesome, it is nice to have choices. VPPP has more configuration options than Gkdial, but has one bug that I have found so far -- the Quit button hangs the program (you have to click the close-button top-right of the window) . TclTutor also has this "feature" and I think the cause may be because Puppy has the latest tcl/tk libraries (v8.4.6). I hope to fix it soon.
And there are some new non-tcl/tk apps also:
- ImageMagick. This is an image conversion and display package, with a suite of applications. Slidedraw needs it, but I'm in two minds about it, as it is rather large. I intend to hack on Slidedraw, and maybe will be able to achieve the required functionality without needing ImageMagick. I had to put in libdps, libdpstk, and libwmflite just to support ImageMagick, so I'm not too pleased with the bloat.
- setvol. This is a tiny console application to set and get the sound volume. This is used by mp3shell.
- gtkcat. This is a GTK file find and cdrom cataloger. It was supposed to be already in Puppy, and was launched via "Start/Help/Find file". It got left out accidentally, and seems to have been missing ever since v0.8.0.
I am fascinated by Slidedraw. There is an alternative presentation app
called Impress, also written in tcl/tk, and it is an active project
whereas Slidedraw is languishing. I'm a champion of old software, and in the
case of Slidedraw I see potential.
I considered another product called MagicPoint, but this is not a true GUI application as slides are designed by a text configuration file -- very powerful though.
I have reconfigured and recompiled Samba. The problem is that the /usr folder in Puppy is readonly, and there were some folders in /usr that Samba apps may try to write to. I have reconfigured so that hopefully all writing will go to /etc/samba/ and /var/locks/.
A fascinating new development! Puppy has Eciadsl and Roaring
Penguin PPPoE installed, and I was disappointed that the GUIs supplied
with those packages are written in Tcl/Tk. A few days ago I
looked around on the Internet and was very surprised just how many Tcl/Tk GUI
apps there are. I've been like a little boy let loose in a lolly shop,
downloading and trying package after package!
So, I decided that Tcl/Tk is a very good direction for Puppy to go in.
The Tcl/Tk installation is small, which is good for Puppy, and I have also added tix and BWidget, which are extra widget libraries. This is the stuff that I have put into Puppy so far:
- mp3shell. This is an mp3 audio file player.
- GUI for Roaring Penguin PPPoE ADSL connection.
- tkXMLive, WYSIWYG XML editor.
- tkmasqdialer, client for masqdialer daemon (share modem over network).
- ML, text editor with tcl/tk color syntax highlighting (mp has this also).
- SpecTcl, visual GUI-builder for tcl/tk programming.
- tkPaint, a vector/bitmap paint program.
- visual Regexp, evaluate regular expressions. I have also put a reg. exp. howto into Puppy.
I have for now removed Eciadsl, as it has a bug. I have to rationalise things a bit on the programming front -- have removed X11-Basic, but can make it available as an external package if needed.
Another good thing about tcl/tk is that it is an interpreter, so you can download a tcl/tk program and run it on Puppy right away, no compiling needed. If you want to get into writing GUI programs, tcl/tk is easy to learn, and I have put excellent development tools into Puppy. SpecTcl has a large tutorial, also included in Puppy.
There's a lot happening on the Puppy Discussion forum, and I would
especially like to thank Udo, Guest, 3133 and danleff for their input. Lots
of other people also have made valuable contributions -- thanks guys!
The new forum has a few teething problems, and Udo has hacked the Perl code a little bit -- it fixes the immediate problem, but I may have to consider a more sophisticated forum soon.
3133 has solved the wheel/scroll mouse problem, that is, we had no scrolling. I should be able to get this fix into the next release.
Puppy version 0.8.5 released. The live-CD ISO file is 45.2M. Release notes:
- For those who already have Puppy installed on Zip, USB storage, or hard drive, just copy the image.gz file from the CD (after burning cd-puppy.iso to CD) to replace the previous one. For those people who have been following Puppy development by booting up from the live-CD, no problem, just boot up from the new CD and all your old data will still be there.
- Puppy now has X11-Basic, a surprisingly powerful yet simple and compact programming environment. See notes below.
- Puppy now has mp v3.3.0 console text editor, the latest. See notes below.
- There is now a script, Install Puppy hard drive, in the Utilities menu. See notes below.
- The Puppy drive mount/unmount script has been improved.
- USB keyboard and USB mouse should now work.
- Ethernet/network Wizard has been improved. It should be better when used with two network cards. It may now work for a PCMCIA network card.
- There is now ssh-gui, a secure telnet program.
- MToolsFM is a file manager, in the File Managers menu. MToolsFM is a GUI frontend for MTools, and has now been expanded to access floppy, Zip, USB and vfat/msdos hard drives, all without needing to mount (or unmount them). An absolute delight to use. As this is new, if anything needs tweaking let me know.
- A newcomer is Gtimer, for timing the duration of anything. See notes below.
Wonderful news! Puppy now has a "proper" programming language, for those who don't consider Ash shell scripting to be real programming. I needed something small yet powerful, and I found it: X11-Basic. A brief introduction is to be found in "HOWTO write programs for Puppy" via the Help menu. Any app that you write for X11-Basic will run on all flavours of Linux, Unix and MSWindows. The website is x11-basic.sourceforge.net.
The mp console text editor is back. From Puppy v0.8.0, mp did not work and I substituted aee. However the latest version of mp (v3.3.0) does work, at least the curses version does. I am currently corresponding with Angel Ortega, the author of mp, and I hope to get color syntax highlighting for X11-Basic, but it won't make it into Puppy v0.8.5.
I have written a script to install Puppy to a hard drive. This is my first attempt, and it is very simple. If your PC has only one big ntfs partition, it won't work, and you will have to go away and get some tool to reduce the size of the partition and create another, say a vfat or ext2 partition. I have erred on the side of caution, and the script does not mess with the existing partitions at all, nor the MBR (Master Boot Record). The script creates a boot floppy to launch Puppy -- thanks to guys on the Forum who helped me with this. The boot disk is an MSDOS clone, freeDOS, and the bootloader is tiny.exe, from the Gujin package.
I did a bit of work on the Puppy drive mount/unmount script. The script still may not detect all of the partitions in your PC, but there is an improvement. In particular, many systems have more than one ext2/ext3/reiserfs Linux partition, and the script will detect up to two Linux partitions. Also up to two vfat/ntfs partitions and one msdos partition. The script will detect an ntfs partition but only allow it to be mounted read-only.
I have included support for a usb keyboard. The first time you run Puppy, you will be asked about mouse and keyboard. Subsequently, delete /etc/mousedevice to be re-asked when the "xwin" script is run.
Oh joy, my USB mouse now works in Puppy!
Thanks to danleff (see Forum), I got some vital clues on how to get the mouse working. Danleff has also got his USB keyboard working, but I still need to figure out how to autodetect the presence of a USB keyboard when Puppy boots.
The Ethernet/network Wizard had a problem auto-probing driver modules when there are two ethernet cards. It just stopped at the first module that loads successfully, even if that module has already loaded for the previous card. I think I have fixed that problem.
Secure telnet has changed again. I am now using ssh-gui, a nice little frontend to ssh that is a bit better than my own effort.
I have removed madplay, replaced it with mpg123. These console utility apps play mp3 sound files, but madplay is playing them highly distorted.
A small thing, but important for me. I am accustomed to using the shift key in conjunction with the arrow keys and the home and end keys, for selecting text in editors. However, Fvwm95 had taken control of the shift key, preventing this. I have disabled Fvwm95's control of the shift key, so it now works in applications as it should.
MToolsFM is a file manager, and is in the File Managers menu. It
accesses msdos and vfat partitions without having to mount them. So far,
MToolsFM has been setup to access the floppy drive only, however I have now
created automatic configuration for all floppy, USB flash card, Zip disk, and
vfat hard drive partition, so when MToolsFM starts up, any of these present
in the system are detected and assigned drive letters.
This is absolutely fantastic -- none of these need to be mounted. Puppy doesn't have hot-plugging support, nor auto-mounting, but they are not needed.
Puppy has acquired Gtimer, an activity timer. This is for very busy people who want to time how long tasks take to complete -- by "tasks" I mean your personal activities, like how long are your morning and afternoon tea breaks. It can also generate reports.
Secure telnet, in the Internet menu, is back again. I created a simple GUI for ssh, but in the longterm there is another program that I am planning to use, called gtksshlogin, which currently has some bugs, but it does have very sophisticated handling of keys.
The Floppy format script in the Utilities menu was a bit peculiar (buggy), now fixed.
The Puppy driver mounter in the File Managers menu has been improved. One thing it now does is detect if partition probing has failed, and may offer a solution.
I've written a basic GUI frontend for rdesktop, the Remote Desktop Protocol client.
Puppy version 0.8.4 released. live-CD ISO file is 44.8M. Release notes:
- Please be sure to read the Release Notes for v0.8.3 below, as many still apply.
- More ethernet, sound and USB chips detected.
- The Utilities menu now has a script to resize the file mounted on /root (created when live-CD Puppy first boots) ...for now, treat it as experimental. It's called Resize PFILE.
- The Lucent Linmodem (software modem) now works. The Lucent DSP software modem chip range is popular in internal PCI analog modems, so it is very good news that Puppy can now use these modems.
- We have a new game! It's name is Xbubble -- great fun.
- Puppy also has acquired an outliner, called Knowde. Great for jotting down notes, ideas, phone numbers, brainstorming, etc.
- Puppy has a new Ethernet/network Wizard, available in the Networking menu. If your network card did not get detected at bootup, this script may be able to find the right driver. Furthermore, this script can configure the network connection, with simple questions.
- Refinement of automatic backups of some config files when updating Puppy to a later version (see notes below).
- LinNeighborhood should now work, as the awol Samba client programs have been put back in.
- I have temporarily removed the "Secure telnet" entry in the Internet menu, as it was not working properly. This used the host-connect program. Note, you can still run ssh from the commandline.
- I have added Gtail to the Utilities menu. This can monitor the tail-end of any file in real-time, and can also monitor stdout of a program.
- I have added a small console application called disktype. This identifies the filesystems on a drive. I plan to use this in the wizards.
- Also have added some networking applications. LinPopUp is a clone of WinPopUp and can send messages over a network, using Samba. mpcb is an application for sharing the clipboard over the network -- there is also a Win32 version available. Both of these are untested.
- For the live-CD, the kernel driver module usb-storage.o doesn't get automatically loaded. If you wish to access USB memory devices, such as a flash card, first type "modprobe usb-storage" at the commandline. Then, the Puppy mount/unmount utility will recognise any USB storage partitions. There is a problem with automatically loading usb-storage.o at startup, that I hope to resolve.
I've installed a driver for the Broadcom NetXtreme ethernet card. The bcm5700.o driver module should handle many of the Broadcom cards.
Added a bit more sound and USB auto-detection.
I fixed up some file types detection in ROX Filer. With ROX, when you click on a file, it is supposed to open it, using an appropriate application. Some filetypes, such as SVG and PS weren't working, now fixed (note, SVG is opened in Amaya, PS in PSView).
I've written a little script to increase the size of the file that is
mounted on /root. For the uninitiated, when the live-CD Puppy boots up for
the first time, Puppy creates (or tries to create) a 256M file on your PC's
hard drive. This file, currently named "pup080", is an actual ext2
filesystem. This gets mounted on /root and holds all your data, config files,
If the time comes that the 256M is getting full, now there is no problem. Just go to the Utilities menu and you will find this little utility, then choose an amount, say 64M, that you would like to increase pup080 by.
Yes, the Lucent Linmodem works! I had access to a IBM Thinkpad 390E, booted up Puppy from the CD, ran the Modem Wizard, then GKdial to connect to my ISP, and it all worked, so smooth.
No luck with the PCMCIA ethernet card on the Thinkpad though. I'll keep working on that one.
Incidentally, my first attempt with a Linmodem was a disaster. I purchased an internel PCI modem from Dick Smith Electronics here in Australia, that uses the Intel 536EP chip, and comes with a driver for Linux. Intel refer to this as their "HAM" driver. It compiles ok, but gives an error message when loading. Tried the latest version of the driver, same thing. It's also complicated, whereas the Lucent driver is very simple to install and use. Top marks to Lucent and Aegere Systems!
Puppy now supports the Lucent DSP Linmodem, in theory anyway. Run the Modem Wizard to set it up.
I have refined the upgrade mechanism. When you bootup a new version of live-CD Puppy, or with a new image.gz on a Zip disk or Flash card, Puppy checks /etc/puppyversion to see if this is an upgrade and if so will replace /etc/rc.d folder and files /etc/puppyversion, /etc/ramdisksize, /etc/modules.conf0 and /root/.fvwm95rc. /etc/rc.d will be backed up as /root/rc.d.bak. Everything else in /etc will be as it was before. What all of this means is that upgrading to the latest Puppy is no trouble at all, and all of your data remains intact.
Puppy now has the game Xbubble. This is a clone of Frozen Bubble, but much smaller. Works real nice.
Puppy now has Knowde, an outliner. I've been wanting one of these for sometime, to round off the Puppy application suite. This is really great as a repository of notes, names, phone numbers, basically anything that you want to jot down. Hierarchical folder structure, print, search, cross-reference, move notes around. A couple of little quirks in the menu, real minor, and Knowde is a very pleasant experience.
I am now testing a new ethernet/network configuration script. If Puppy did not auto-detect your network card at bootup, this script enables you to do some probing and find the right driver module, then tell Puppy to use that module on the next bootup. The script also enables you to setup network communication and will generate appropriate startup code that Puppy will use on subsequent boots.
I have added a bit of extra auto-detect of PCMCIA devices at bootup, but I'm hampered by not having a PC with a PCMCIA (CardBus) interface to test with. I'm hoping to get the right drivers loaded for PCMCIA modem and ethernet cards.
Regarding Gequel, the mySql client, I have been in contact with Kees Lemmens, the author of Gequel, and he has verified that Gequel does indeed work in Puppy. His interest has been stirred (Puppy has that effect!) and he is now looking at some more coding to enhance Gequel -- he mentioned something about improving the "table builder".
Bug report! The underlying Samba client applications smbclient, smbmount and smbumount are missing. This was an oversight when rebuilding Puppy on the uClibc filesystem. The next release will fix this.
Another application that was in the Redhat version of Puppy but not in the uClibc version, is cdplay. This is a console audio CD player, and is used by ripperX to play a specific track on a CD. This will also be in the next release.
Puppy version 0.8.3 released. The live-CD ISO file is 43.2M. Release notes:
- Puppy now has Gicq, a ICQ client, and Gequel, a mySql client.
- Gyach, a Yahoo chat client, has returned. This is version 0.9.7, the latest, that fixes the Yahoo login problem (Yahoo had changed their protocol).
- There is a script to install Puppy to floppy disks, Install Puppy floppy disks, and the remaster-CD script has been overhauled and now allows far greater modification of Puppy such as addition and removal of applications (see notes below).
- The Links web browser is available as an external package.
- Dillo web browser has been upgraded to the latest version, 0.8.0 (see notes below).
- See also release notes for v0.8.2 below.
PDQ print management is back, however it is not yet fully configured. If there is anyone reading this who has prior experience with PDQ, or even extensive Linux printing configuration experience with other printing systems such as lprng, you are most eagerly invited to help us. I have tested XPDQ printing to a plain text printer, but I don't know how to setup so that all apps in Puppy can make use of the Ghostscript drivers and PDQ. Another thought is that I would like to utilise PDQ-O-Matic at the LinuxPrinting website, but Puppy doesn't have Perl. Also, I have only tested printing to a parallel-port printer, not USB.
Amazing, I have actually installed Puppy to a set of floppy disks, all 22 of them! If you are loony, or at least somewhat eccentric, you might like my new script Install Puppy floppy disks, in the Utilities menu. The script has options to remove packages, and 22 disks are required if Mozilla, Amaya, SANE are removed, Links added, and it should work in a PC with 64M RAM.
Puppy now has Gequel, a mySql client GUI frontend. Puppy doesn't have a local mySql (database) server, as Puppy Linux is intended to be a client environment, but Gequel can connect to a network mySql server -- in theory anyway, as I don't have a mySql server to test with.
I have compiled the Links web browser and it will be available as an extra package. Links is small and fast, with most features you would need for web browsing, except lacks CSS (Cascading Style Sheets) support, which causes some pages to render oddly (usually still decipherable though!). I am ugrading the installation scripts and options will be offered to reduce the size of Puppy, including replacing Mozilla with Links.
Puppy v0.8.2 released. The live-CD ISO file is 42.4M. Release notes:
- Please read the release notes for v0.8.0, as most still apply.
- Bluefish v0.7 is now in Puppy, not as an external package but inbuilt. Now there is an incredible choice of HTML editors. Bluefish is for people who like to work with the code, in contrast with Composer and Amaya that are WYSIWYG (though Amaya does have a very nice code window).
- Puppy now has scalerx, which is a lovely utility for scaling up the size of png images without jagged edges.
- Puppy has a new HOWTO page on multimedia. First-time users, be sure to click on Start/Help menu to see Puppy's wonderful documentation.
- Heaps more hardware detection, particularly for sound and ethernet. The latest version of libhardware fixes a problem with partition detection (see notes below).
- There is now a basic upgrade mechanism. For people who have Puppy already installed, even if you have used only the live-CD (no earlier then v0.8.0), now you will not lose earlier settings (email accounts, personal data, etc). Puppy will backup the previous /etc folder to /root/etc.bak and /root/.fvwm95rc to /root/fvwm95rc.bak (config file for the window manager) and substitute with the latest out of image.gz. So, if you have edited any of these, you can get them back. Note that this is not likely to be of any concern to casual users -- all you need to know is that all your email will still be there after you upgrade! (see further notes below)
- Puppy now has rdesktop, for remote connection to a Windows PC. This enables you to run Windows applications, that is, they run on the Windows machine but appear in a window in Puppy (see further notes below). Not yet tested.
- I have written a script to backup files to CD, called Puppy backup to CD (see notes below).
- I have installed eciadsl, which is for Internet connection with USB ADSL modem. As with Roaring Penguin PPPOE, I have just installed it, untested, and there is no entry in the menu. Both of these packages have shell scripts for configuration. I have installed the docs for both. For eciadsl, there is another package of "drivers", which are files with names like "synchnn.bin" where the "nn" is a two-digit number -- you will need to download this yourself and study how to use it.
- As Sportal is no longer with us, I have created a couple of scripts, Monitor X log and Monitor kernel log, launched from the Utilities menu.
An extra note on the upgrade mechanism. The version of Puppy is in the
file /etc/puppyversion, and Puppy checks this when booting up to see whether
you have an older version of Puppy installed.
The entire /etc folder is backed up as /root/etc.bak, and the upgrade mechanism is currently primitive, meaning that you do have to reinstate anything previously changed in /etc. For example, the Modem Wizard creates /etc/modemdevice, and you will need to run the Modem Wizard again. Ditto for the ISP dialup, the dialup account will have to be recreated.
In the case of live-Puppy, that is, booting off a CD, v0.8.0 creates a file named pup080 on your PC's hard drive, and the latest version of live-Puppy will use that same file. This differs from earlier versions of Puppy, that always created a new file thus ignoring any earlier personal settings or data.
In summary: burn the latest live-Puppy CD, bootup, and all personal stuff is still there.
I've ugraded to version 0.7.4 of Antonio Gallo's libhardware. As discussed in the forum, there was a problem with some hard drive partitions not getting detected, which the latest Libhardware should fix. Now, if you click on "Start/Control Panel/Hardware probe/Partitions", you should see all the partitions!
I've installed rdesktop, launched from the Network menu.
This application is a remote desktop protocol (RDP) client, and connects to a
Windows NT/200X/XP RDP server. As far as I can determine, this runs Windows
Explorer on the remote machine and appearing in a window on the local Puppy
machine. At least, Explorer is the default, but a different Windows app can
be specified at startup.
This was requested in the discussion forum, so I've done it, however I don't have the setup right now to test it -- anyone who is interested can test it and report back to me. Of course, you'll have to wait a short while until I release Puppy v0.8.1.
I've written a lovely script, titled Puppy backup to CD,
which does multi-session backups of modified files to a CD-R or CD-RW.
Whenever you decide to backup, the script automatically determines when you
last backed-up and only gets files modified since then. The script also knows
when a CD is full. Each backup is stored on the CD as a folder named with the
date of backup.
Thanks to R.F.Smith, whose script bkup2cd gave me some genesis ideas, in particular how to do multi-session writing to a CD.
I've added heaps more autodetection of PCI sound and network cards. Not yet perfection but well on the way.
Puppy version 0.8.0 released. The live-CD iso file is 41.6M. Version 0.7.9 was compiled on a Redhat 8.0 system, and this version is completely rebuilt based on the uClibc C library and a custom root filesystem. Release notes:
- As this version is a complete rebuild, there may be quirks that weren't there before -- let me know.
- To bootup from the live-CD, the PC must have at least 128M RAM and must have a hard drive partition of type vfat, ext2/3 or reiserfs with at least 256M free space. ntfs partitions not yet supported. Puppy will create a file on the hard drive partition in which to store your personal data -- if Puppy is unable to find a suitable hard drive partition, Puppy will still run but your settings and files will not be saved.
- If you have used a previous version of Puppy, note that there is not yet an upgrade mechanism. Puppy will create a file named "pup080" on the hard drive and this is a "clean slate", meaning that you will have to reenter email accounts etc.
- Working with floppy disks has become very easy. The Utilities menu has a nice script for formatting floppy disks. A floppy disk does not have to be mounted to read and write files, thanks to MToolsFM, a nice GUI file manager designed especially for accessing floppies -- look in the File Management menu.
- The Graphics Management menu has acquired a neat little RGB color picker.
- Mozilla has been upgraded from v0.9.8 to v1.0.2. Note that choosing a certain version of Moz is basically a tradeoff between size and features. Even old versions of Moz are bloatware, and each successive release is bigger by many megabytes.
- Puppy v0.8.0 is designed to work on a i486 CPU minimum, however this is untested and there may be some issues with running on anything less than a Pentium 1. I need feedback about any applications that misbehave (like crash) on a i586 or i486 system. As I was compiling on a Pentium IV system, I'm not sure if some apps got compiled with i686 optimisations without me realising it (I was learning about this issue as I went along!).
- Previously, the title-bar of GTK applications displayed the text "Untitled". This is now fixed, and the correct title displays for each window.
- The Utilities menu has a script for installing Puppy on a IDE/ATAPI Zip drive, labelled Install Puppy on Zip drive. I recommend that you choose the lo-RAM option even if your PC has 128M or more, as bootup speed is much improved.
- Sylpheed mail and news has been upgraded to v0.9.8a. Amaya has been upgraded to v8.2.
- I have removed the mp console text editor and replaced it with aee. There is a problem with the pull-down menus in mp, which I hope to fix, and bring mp back.
- I have removed the Cheops network tool, as I cannot compile it. I will tackle it again soon.
- I have removed Sportal (real-time file monitor) and gmas (displays text files) as they crash.
- Xcal, the calendar and diary program, has one small problem -- don't press the "Help" button, as the program will crash.
- The Modem Wizard was misbehaving with some modems, now fixed.
- Scribus desktop publishing is removed. I may make this available as an external package. Scribus uses the Qt libraries and it is all too large. Puppy is focussed on Xaw and GTK-1.2 GUI apps only.
- There is now a very tiny serial port terminal emulator called Picocom.
- Shared library management is slightly broken, which is an issue with version 0.9.24 of uClibc. It refuses to search anywhere other than /lib, /usr/lib and /usr/X11R6/lib.
- There is no printer support. I intend to review the choices and bring it back soon.
- There is a small "hiccup" with installing external packages. The procedure is that an external package, for example sane.tgz, is downloaded and placed in /root/my-applications, then the PC is rebooted. If the PC hangs during reboot, just press CTRL-ALT-DEL and it should then be ok.
- There is a problem with shutdown. If you get a message like "kernel panic: tried to kill init", don't worry, as this is only an issue happening in the ramdisk. I am investigating the shutdown script and hope to fix this.
- Gyach, the Yahoo chat program, has been removed, as it cannot connect to the Yahoo servers anymore (or so it seems). Yahoo has recently been modifying the logon process so that only their own software can connect. I guess that this is because Yahoo is a commercial operation. Puppy still has Xchat and Mozilla's inbuilt chat module, to connect to a huge range of free chat servers.
- Puppy no longer uses the neXtaw library. Replaced now by Xaw95.
- This version of Puppy runs in a 53248 Kbyte ramdisk (52M). If Puppy is installed to USB drive or Zip drive with the lo-RAM option, the ramdisk is only 9.2M as most of the files are kept on the drive in a readonly compressed file.
Note that most of my effort since the last release has been in recompiling for a i486 target system based on uClibc, and a lot of other issues remain to be tackled, such as improved hardware detection and networking. I will now get onto these.
Mozilla v1.0.2 has its own Internet Relay Chat. Puppy already had Xchat, so that makes two. I don't use IRC programs myself, so I need feedback. Is the Moz chat module better than Xchat? Should we give Xchat the heave-ho?
This total rebuild of Puppy has been codenamed "hairy nose", and this
release is hairy nose Puppy, to distinguish from earlier builds
based on Redhat. The development environment used to compile Puppy
applications is not another distro, but is a custom root filesystem put
together by Erik Anderson, the main developer of uClibc
(www.uclibc.org) -- as this is not a regular distro, to give it a name I have
code named it hairy nose Wombat.
Hairy nose Wombat is a ext2 root filesystem that can be placed into a hard drive partition, mounted, then you can "chroot" into it, then compile apps for Puppy. It is possible to boot directly into it from a boot manager, however I have Slackware 9.1 installed and I chroot from Slack, which has certain advantages.
You can find out more about hairy nose Puppy and hairy nose Wombat in the Puppy Projects page (see links above).
Puppy-watchers want to know what is going on... well, version 0.8.0 should be out soon.
I've written a nice little script for formatting floppy disks. It's called the Puppy Floppy Formatter and is invoked off the utilities menu.
Puppy now has a script for installing to IDE/ATAPI Zip disk. USB Zip disks should be covered by the install-to-USB script, already released. There is an option to install to PCs with low-RAM less than 128M, a minimum has not yet been tested but I suggest 64M. This script is invoked from Install Puppy to Zip disk item in the Utilities menu.