Release notes for Puppy version 2.11
Puppy 2.10 was the first Puppy to use LZMA compression for the 'pup_210.sfs' Squashfs file (the file that has all of the applications). We found however that it doubled the startup time for each application, not very noticeable on a modern fast CPU, however very much a problem on older hardware. Thus, for 2.11 we have gone back to the standard GZIP compression.
The downside to this is that the pup_210.sfs file was smaller in 2.10, now it is bigger. We want to keep the Puppy live-CD iso file at 70M maximum, so that it can load totally into RAM on a 128M PC. Therefore, I had to find ways of "cutting out fat", of course without crippling Puppy. Many of the release notes below are related to how the "fat" was "trimmed".
Version 2.11 is basically an improved 2.10. Apart from
reverting to GZIP compression, this release has various bugfixes. As it
is still essentially an enhanced-2.10, the same kernel version is used,
220.127.116.11, but without the LZMA support (it is exactly the same kernel
as used in Puppy 2.02).
- Smaller Abiword. The plugins have been removed from Abiword.
You have basic wordprocessor functionality, however if you want
extended capability, such as import/export ODF (Open Document Format)
and online dictionary/thesuarus, please use the PupGet package manager
(see Setup menu) to install the 'abiword_PLUGINS' package.
Note: Microsoft Word import/export support is built-in, not a plugin.
- Smaller Gnumeric. The plugins have been removed from Gnumeric.
You have basic spreadsheet functionality, however if you want extended
capability, please use the PupGet package manager to install the
Note: Microsoft Excel import/export is supported, no need for the extra plugins package (actually, it's one of the plugins, but I put it into the Gnumeric base package).
- Smaller Xorg. Xorg, the X server program that runs the screen in graphics mode and supports a wide variety of input devices, has been cutdown somewhat. The base package now only has the generic 'vesa' (and i810) video driver, meaning that it will work on most video hardware but does not have acceleration features (that is, no support for hardware-specific speed improvement). This may be noticeable when playing videos or heavy-duty graphical games. The hardware-specific video-chip drivers may also offer higher screen refresh rates (thus reducing flicker). For most people the base Xorg package will be okay, however if you need extra speed or find the flicker noticeable, use the PupGet package manager to install the 'xorg_VIDEO_DRVRS' package.
- Xorg Wizard quirky-hardware workaround.
On some older video hardware, the Wizard hangs when testing the
graphics mode. There is now an option to bypass the X graphics test.
- scanpci utility. This
provides detailed information about interfaces on the PCI bus. Xorg in
Puppy is cutdown. One utility not included,
until now, is scanpci.
However, the PCI libraries have been in Xorg
(/usr/X11R7/lib/libpcidata.so,libscanpci.so) and these are required for
the Xorg Wizard to work. Scanpci uses these and is itself small, so
there is no reason it can't be included.
- An old favourite returns. I dropped WishCD, the CD burner application, replaced with Gcombust. As Gcombust does not require cdrdao, I dropped that package also. Note, the reason we are moving to different CD burner apps is that Graveman, as used in 2.02 and earlier, is buggy in 2.1x, so we have WishCD in 2.10 but that is also buggy.
- Burner drive auto-detected. One problem with CD/DVD burning is that the burner drive was not automatically identified at bootup. The CD and/or DVD drive/s were automatically identified, and /dev/cdrom and /dev/dvd symlinked to them. However, there is also a file that identifies which of these drives, if any, is the default burner drive, /etc/cdburnerdevice -- this is set by the CD/DVD Wizard but not automatically at bootup. I have now added extra code to /etc/rc.d/rc.local0 to automate burner identification, meaning that the Wizard does not have to be run.
- Gcombust improved. I modified the source code of Gcombust to automatically read
/etc/cdburnerdevice. Gcombust was designed for SCSI and SCSI-emulated
devices, and we had an awkward manual method for entering the correct
burner drive. I have modified the user interface to remove irrelevant
SCSI buttons and automatically select the correct ATAPI burner drive.
If anyone has an actual SCSI burner drive or USB burner drive,
automatic detection will have to be a future project.
- Software modems. Despite the trimming of fat, the Lucent and Smartmodem software-modem drivers packages are still in the live-CD.
- Universal Installer bugfix. Puppy would not boot if installed to a USB Flash drive formatted in "Superfloppy" mode (no partitions) and with ext3 filesystem. This now works. Also, if the session is saved direct to the drive (no pup_save.3fs file), there was a bug as the saved session was not recognised at next bootup -- also fixed.
- Pmount bugfix. Pmount is my alternative to MUT, found in the File Managers menu. The bug was that it did not recognise "Superfloppy" drives (any drive without partitions). Fixed.
- PupGet package uninstall improved. When a package is uninstalled, the PupGet package manager did not remove symbolic links or empty directories. Actually, it did remove some symlinks and empty directories, but not necessarily all of them. Now, any symlinks installed with a package will get removed, also any directories created when a package is installed will get removed (if the directories are empty after the pkg files are deleted).
- Simplified boot messages, full logging. This is going to make many people happy! After the initial boot menu, the screen clears and then all messages during bootup fit nicely into one screen, no rapid scrolling of meaningless messages! However, if you do want the full bootup details, complete logs are kept in files (this information is also displayed at bootup, so you will know where to find these files).
- PuppyBasic updated. Prolific Puppy developer 'MU' has updated PuppyBasic, also known as wxBasicScript, to version 2.5.
- Pupdvdtool DVD video ripper. Pupdvdtool is a re-write of Xdvdtool, using PuppyBasic. The author is 'plinej'. We need testers for this. It can be found in the "Multimedia" menu.
- New app to compare files. TkDiff is now a PupGet package. Puppy already has Gtkdiff, which is pretty basic. I didn't put TkDiff into the live-CD as it's a bit big, but could consider doing so in the future as it is real nice.
- PupZip improved. PupZipis the desktop drag-and-drop archiver, that can use Xarchive, TkZip or guiTAR commandline archiver programs (Puppy live-CD currently has Xarchive). One limitation is that it could not handle individual gzipped files, such as "demofile.gz". GuestToo has provided a little patch for /usr/local/bin/pupzip to fix this. Now, if you drag "demofile.gz" onto the PupZip icon, you are asked if you want to expand it and it may be expanded (in its same location).
- Unionfs "bug" fixed. One of the most annoying things about unionfs is it creates unnecessary whiteout files. Puppy's 'init' script deletes some of these. Another "bug" I discovered is unnecessary '.wh.__dir_opaque' files, which hide everything inside a directory on lower layers. This has been causing serious problems, however I have put a fix into the 'init' script, that deletes these.
- Save-file resize fixed for NTFS.
At least, I think it is. The "Utilities" menu has an entry to resize
the pup_save.3fs file, but it didn't work for NTFS. For further info,
see this thread: http://www.murga.org/~puppy/viewtopic.php?t=11779
- Inbuilt release notes. These Release Notes are now in the Puppy Live-CD, linked off the
'Menu -> Help' page. Previously, the release notes were only online,
in my News Blog. This new arrangement is more convenient, as the Notes
are readily available when you first boot the new version and easy to
refer to afterward.
Note 1: The simple Xvesa Kdrive X server is not the same as the Xorg 'vesa' driver! Xvesa, is, as always, available in Puppy as a fallback.
Note 2: The i810 driver is included in the base package after feedback from forum that vesa driver does not work with Intel 810-family video hardware.
Note 3: The reason I introduced the test-bypass for the Xorg Wizard is when testing an old IBM Aptiva the Xorg Wizard displayed the test-graphics-mode okay but then hung after clicking the OK button. I have no idea why. I introduced an extra dialog window to offer to bypass the graphics test and this strategy was successful.
Regarding a USB Flash drive formatted as a "Superfloppy" and with ext3 filesystem, this is quite interesting. Some Flash drives come like that, as superfloppies, no partitions, meaning that the entire drive is used, like a floppy disk -- a floppy is accessed as /dev/fd0, similarly a Flash drive would be accessed as /dev/sda (instead of /dev/sda1). The universal Installer can reformat a normal Flash drive (with a partition) as a Superfloppy, and offer to put a FAT16 or ext3 filesystem on it -- the latter is interesting as you can then save sessions direct to the drive. That is, files are written directly, not placed inside a pup_save.3fs file -- the advantage is the entire free space of the Flash drive is available, good for very large Flash drives 2G or more.
But, why format as a Superfloppy? Reason is, some quirky BIOSes will boot from it, but won't boot from a USB drive with a partition. If your Flash drive has a partition, probably best to leave it alone, unless it won't boot. Note, even if your Flash drive has a partition, you can place a ext3 filesystem on it so that sessions can be saved direct (it normally ships from the factory with FAT16 f.s.) -- use Gparted to change the filesystem.
Regarding Unionfs. The elimination of spurious trouble-causing '.wh.__dir_opaque' whiteout files is only done by the 'init' script at a version upgrade. The way the 'init' script determines if a version upgrade is required is to compare the values in /PUPPYVERSION in the initial-ramdisk with /etc/puppyversion in the persistent storage (usually pup_save.3fs).
This cleanup of whiteout files can only be done at bootup as it must be done before the union of layers is activated, and it is only done at a version upgrade due to the time it takes.
Apart from cleaning out whiteout files deemed to be unnecessary and even malicious, the upgrade code does a general cleanout. It is something that you could force the system to do anytime you want, simply by setting /etc/puppyversion back to previous version, then reboot. That is, even though you are not booting a new version of Puppy, you can make the bootup scripts think an upgrade is required.
Regarding simplified messages at bootup, if you look in 'isolinux.cfg' on the CD, you will see the text "loglevel=3". This tells the kernel to only report serious errors to the console, and that is partly how the traffic on the console is reduced during bootup. The Linux kernel can be compiled with this as default, and I intend to do this when we migrate to the 2.6.18 kernel. For now however, "loglevel=3" has to be manually inserted. So, if you install Puppy to some other media, such as USB Flash, you will have to manually edit the 'syslinux.cfg', 'extlinux.cfg' or 'isolinux.cfg' or GRUB/LILO config and insert that text. If you don't, it will mean that you will get lots of stuff scrolling rapidly on the screen, like before.
This is only a temporary problem anyway, and will go away with v2.12.
The next Puppy
The 2.6.18 kernel, when will it be used in Puppy? I'm waiting for the release of at least 18.104.22.168, as the very first 2.6.18 will probably have abundant bugs. So, probably expect this for Pup 2.12.
I was also going to do some improvements for PCMCIA, targetting this for 2.12 also.
JWM is currently version 1.7. Version 1.8rc1 has some important fixes, such as making the mouse less sensitive, but it has a bug with Gxine so I'm waiting on at least v1.8rc2 before upgrading.
We are not using the latest ntfs-3g (NTFS driver), as there were some changes to how it worked that require a lot of changes to some scripts in Puppy, and I didn't want to "rock the boat" that much. But, will target upgrading ntfs-3g for Pup 2.12.
Aufs is an alternative to Unionfs, apparently simpler. I plan to check that out too: http://aufs.sourceforge.net/
Further thoughts on what's needed for a future Puppy: http://puppylinux.org/wikka/UnderDevelopment
Complete list of packages in the 'standard' release of Puppy version 2.11:
0rootfs_skeleton-2.1.1 abiword-2.4.5 afpl_ghostscript-8.54 agenda-2.0 alsa_lib-1.0.11 alsa_utils-1.0.11 atk-1.11.4 audiofile-0.2.6 autocutsel-0.7.1 autologin-1 axel-1.0a bash-3.0.16 bbc_provided-2003 bc-1.06 bcrypt-1.1 betaftpd-0.0.8pre17 blinky-0.8 boehm_gc-6.6 bubbles-1.0.2a busybox-1.01 bwidget-1.3.1 bzip2-1.0.3 cairo-1.0.4 cdp-0.33.13 cdparanoia-3.a9.8 cdrtools-2.01.01a10 cgtkcalc-2.1.6 combobox-2.3 coreutils-5.2.1 countdown-2003.10.27 cpio-2.6 curl-7.15.3 db1-1.85 dhcpcd-1.3.22 dialog-0.9b dict-1.4.9 didiwiki-0.5 diffutils-2.8.1 dillo-0.8.6teki-mu disktype-8 dnotify-0.18.0 dosfstools-2.11 dotpup_downloader-mu05 dotpuphandler-3.1 dvdauthor-0.6.12patched dvd+rwtools-5.21 e2fsprogs-1.38 e3-2.7.0 ed-0.2 edid-1.4.1 eject-2.1.0 expat-2.0.0 eznet-1 ffmpeg-2005-11-20 file-4.17 findutils-4.2.22 fragger-0.0.5 freememapplet-1.2.1 freetype-2.1.10 fribidi-0.10.7 ftp-1.2 fuse-2.5.3 gaim-1.5.0 gawk-3.1.5 gbase-0.5 gcc-3.4.4 gcombust-0.1.55.pup1 gcrontab-0.8.0 gdbm-1.8.3 gdk_pixbuf10-0.22.0 gdkxft-1.5 gdmap-0.7.5 geany-0.8 gemgame-2003 gettext-0.14.5 gftp-2.0.18 gifsicle-1.40 gimp_print-4.2.7 gkdial-1.5.14patched glib12-1.2.10 glib-2.10.2 glibc-2.3.5 gnumeric-1.6.3 goffice-0.2.1 gparted-0.2.4_STATIC_GTKMM gpasman-1.3.1 grabc-1.1 grep-2.5.1 grub-0.97 gsview-4.7 gtail-0.5a gtimer-1.1.6 gtk+12-1.2.10 gtk+-2.8.17 gtkcat-0.1patched gtkdialog-0.58.8 gtkdialog-0.59.8 gtkdiff-0.7.0 gtkfind-1.0.1 gtkfish-1.0.1 gtksee-0.6.0b-1 gtk_shell-1.03 gxine-0.5.7 gxset-0.3 gzip-1.3.5 hdparm-6.6 ical-2.3.1patched ifplugd-0.18 ifplugd-0.28 img-1.2.4 imlib-1.9.15 inkscapelite-0.36.2 iptables-1.3.5 isomaster-0.1 jwm-1.7 jwmconfig-0.2.1 kbd-1.12 kp-1.0 lame-3.96.1 lcms-1.14 leafpad-0.8.1 less-382 libao-0.8.6 libart_lgpl23-2.3.17 libdaemon-0.8 libdvdcss-1.2.9 libdvdplay-1.0.1 libdvdread-0.9.6 libexif-0.6.13 libexif_gtk-0.3.5 libghttp10-1.0.9 libgif-4.1.4 libglade-2.5.1 libgnomecanvas-2.14.0 libgnomeprint-2.12.1 libgnomeprintui-2.12.1 libgsf-1.14.1 libhardware-20060723 libid3tag-0.15.1b libidl-0.8.6 libidn-0.6.2 libieee1284-0.2.8 libjpeg-6b libmad-0.15.1b libmng-1.0.9 libogg-1.1.3 libpng-1.2.8 libsamplerate-0.1.2 libsigc++-2.0.17 libsndfile-1.0.16 libstdc++-5.0.6 libtiff-3.7.4 libusb-0.1.11 libvorbis-1.1.2 libxaw95-1.1.4 libxml-2.6.26 libxslt-1.1.15 libzvt-2.0.1 linneighborhood-0.6.5patched linux_firewall-2.0rc9 ltmodem-2.6.8alk-k22.214.171.124 madplay-0.15.2b memtester-2.93.1 metamail-2.7 mimencode-2.7 mini_volume-0.3 minixcal-1.1 mktemp-1.5 ml-2000 modem_stats-1.0.1 module_init_tools-3.2.2 mp-3.3.7 mtools-3.9.10 mtoolsfm-1.9 mtpaint-3.01 mut-0.1.1 ncurses-5.4 ndiswrapper-1.16 nenscript-1.13.3 netpbm-1.0.33 net_tools-1.60 ntfs_3g-20060714beta ntfsprogs-1.13.0 nullhttpd-0.5.1 openssh-4.3p2 openssl-0.9.8b orbit2-2.14.0 pango-1.12.2 parted-126.96.36.199 pciutils-2.1.11 pcmcia_cs-3.2.8 pcmciautils-012 pcre-6.6 pdq-2.2.1 perl-5.8.8tiny perl_digest_sha1-2.10 perl_html_parser-3.51 picocom-1.2 popt-1.7 ppp-2.4.3 pptp_linux-1.5.0 psmisc-22.2 pstoedit-3.44 pupdvdtool-0.3 puppybackground-2.1 puppybasic-2.5 puppyserialdetect-1.0 qiv-2.0 rdesktop-1.4.1 readline-5.1 regexpviewer-0.1 reiserfsprogs-3.6.19 remotedesktopclient-0.1 rexgrep-1.2 ripperx-2.6.0 rox_puppy-188.8.131.52 rp_pppoe-3.7patched rubix-1.03 rutilt-0.12 rxvt-2.6.4 samba-3.0.22 scale2x-2.0 seamonkey-1.0.4_SVG sed-4.1.4 setserial-2.17 setvol-1.1 slmodem-2.9.11patched-k184.108.40.206 sockspy-2.5 sox-12.18.1 sqlite-3.3.5 squashfs_tools-3.0 ssh_gui-0.7.1 stat-5.0 sudo-1.6.8p12 superscan-0.8 sweep-0.9.1 sysfsutils-2.0.0 syslinux-3.11 tar-1.15.1 tcl-8.5a4nothreads test-1 tightvnc-1.2.9 time-1.7 tinylogin-1.4 tk-8.5a4nothreads tkconvert-1.3 tkdvd-4.0.1r1 tkfont-1.1patched tkgamma-1.0 tkmines-1999 transmission-0.5 turma-0.1 unclutter-0.8-11 unionfs-1.2.0-20060503 unrar-3.4.3 unzip-552 uri-1.1.3 usbview-1.0 util_linux-2.12q uxplor-0.26patched vamps-0.99.2 vobcopy-1.0.0 wag-0.3.2 wavemon-2002 wavplay-1.4 wget-1.10.2 wireless_tools-28 wmpower-0.3.1 wmsm-0.2.0 wvdial-1.42 xarchive-0.2.8-6 xcut-0.2 xdialog-2.1.1 xfinans-5.9y2k xfreecd-0.9.0.1 xine_lib-1.1.1 xlockmore-5.20.1patched xnetload-1.11.3 xnetstrength-0.4.2 xorg_BASIC-7.0 xproc-1.2 xrun-0.2.3 xtmix-0.4 xvesa-4.3.0v2-xkbd xwconfig-0 xwget-0.4.1 xwhois-0.4.2 xwifibar-0 ycalc-1.09.1 zip-231 zlib-1.2.3