Released without much fanfare in 2008, Fatdog has grown from a humble beginning to a mature and grown 64bit Linux distro, continuously carrying and holding to the Puppy Linux spirit and principle from where it came.
Fatdog was originally created by longtime Puppy user and contributor, Kirk. Among other things that he is known for, Kirk contributed the initial implementation of encrypted savefile (here, here, and here) which is still in-use by all variants of Puppy Linux today.
This document was originally written for Fatdog's 5 year anniversary on 12 April 2013, summarising Fatdog's long history, from its very beginning to the latest release at that time. It has since been updated to record more recent events as Fatdog marches on.
Enjoy.
The very first ever of Fatdog was released on 12 April 2008 (or 11 April, depending on your timezone :) ). It was released as an SFS, a standard package extension format used by Puppy Linux. The SFS came with additional software for use with the (then) recently released Puppy Dingo (Puppy Linux 4.0).
The size of the SFS was 207MB.
From the announcement:
Here's your chance to turn your little Dingo puppy into a FATDOG. All of these packages where compiled in T2 or Puppy Dingo (except Java).
Titled Fatdog 110, it was released on 14 Feb 2009. It was an almost plain remaster of Puppy 4.1.2 (="puplet") with additional packages, as well as an SMP kernel, enabling full utilisation of dual-core systems. (Standard Puppy didn't use SMP kernel until much later, and although there were other puplets with SMP kernels prior to Fatdog's release, they were more heavily customised. This Fatdog release was simply a kernel + a bunch of extra packages + openbox/lxpanel instead of JWM, keeping Puppy Linux' spirit of simplicity).
It also set the tone for Fatdog's future tradition of running network applications (the web browser in this release, more and more in the later releases) as unprivileged user "spot", the usage of openbox/lxpanel combination (instead of JWM), as well as inclusion of the kernel headers (later the full kernel source) in the devx (="development tools") SFS package. The ISO size was around 124MB (as compared to Puppy 4.1.2 of around ~94MB).
The announcement simply said, Here's a puplet based on 4.1.2.
Screenshot of the very first Fatdog. The flying seagull would become a familiar face of Fatdog for the next 3 years, until Fatdog64 600 release.
This was the bugfix release for 110 with updates for kernel and others.
From this moment on until Fatdog moved to ibiblio.org, Fatdog was kindly hosted by forum member Caneri, in http://puppylinux.asia (now defunct).
This was an update for 111, with updates for kernel and others as well as bug fixes.
Up until 112, Fatdog was essentially a remaster of Puppy with updated and additional software. This release was different - this Fatdog was built from using Woof, the Puppy distro builder (which was still in alpha stage at that time), with all-new packages built from scratch using T2 SDE build system. To signify this fact, it was now called as "Fatdog2" - the second generation Fatdog.
Woof is meant as a tool to build puppies from different distros (including a distro built from packages compiled from scratch). Today all official puppies are built from Woof: Slacko (from Slackware), Wary, Quirky, Racy (all from T2), Lupu (from Ubuntu Lucid Puppy), as well as many other unofficial variants: Upup (Ubuntu "pup"), Spup (Slackware "pup"), Dpup (Debian "pup"), Apup (Arch "pup") and others. Woof contains a set of puppy scripts as well instructions to mesh these scripts into other distro's packages, generating a Puppy Linux distribution. It is basically the "essence" of Puppy Linux.
This release marked Fatdog as a Woof-based puplet, a "tpup" if you will (T2-based "pup"). All its packages were compiled from scratch either using T2 SDE or manually, making Fatdog one of the few "independent puplets" which didn't depend on any upstream distribution.
After the first experiment of Alpha 2, Alpha 3 quickly follows. It was basically a cut-down version of Alpha 2 (woof still being alpha quality at the time, a lot of work was needed to post-process its output to trim the size down), reducing the size of the ISO by removing unneeded files, as well as software updates and bug fixes.
Using the latest software isn't always greatest. Alpha 2 and 3 used the very latest Xorg at that time (version 7.4) and it turned out to be unstable for many systems. This version downgraded the version of Xorg used to 7.3, but it had updates for other software and other bug fixes. It is officially designated as beta1.
Shortly after beta1, beta2 was released with the usual updates and bug fixes. This was the last of the 32-bit Fatdog (all Fatdog releases up to this one were 32-bit). 32-bit Fatdog2 never came far enough into a final release - as the focus moved to 64-bit systems, due to performance reasons, see below - although this release was definitely usable.
This release had JWM as the default window manager although kirk later provided openbox/lxpanel package for it as well.
Released on the same day of Fatdog2 beta2, is the first ever release of 64-bit Fatdog, claiming the title of the first 64-bit first puplet. Built from scratch using the same T2 SDE as 32-bit Fatdog2 (except that they were compiled for 64-bit AMD64 / Intel x86_64 architecture), all the software featured in this version were all 64-bit (except the initrd - which came from Woof and was 32-bit).
It was also built from Woof, but only using Woof's scripts since
Woof does not support 64bit. From this point Fatdog was a fork
from Woof. Woof updates would continue to be ported in
sporadically. At this point Kirk lost interest in the the 32bit
build, after finding that the 64bit build was 20% faster for CPU
intensive applications. The speed difference was mostly due to the
32bit version needing to be built for Pentium, thought to be
lowest common denominator.
There were a long hiatus between alpha 1 and alpha 2. In addition to the name change from "Fatdog2 64-bit" to what is now more well known as "Fatdog64", this version used a complete rebuilt of all the packages, rather than a continuation of alpha 1. As the announcement said, This is a complete rebuild with the T2 trunk as of a few weeks ago. My wife got a new laptop, real nice, CoreI5, 4GB of DDR3, Blu-Ray drive $499, but with crappy intel graphics. Anyway, the Xorg 7.3 that was in alpha1 is too old and doesn't support this new Intel graphics chip, so I just rebuilt everything with T2. Probably should have called it something different since it's a new base.
This was the first release of a series which was to become known as Fatdog64-500.
Alpha 3 quickly followed alpha2 with updates and bug fixes ...
... which was then quickly superseded by alpha 4. Alpha 4 shared the same announcement as alpha 3 above.
Bug fixes and software updates. This release marked a few important events in Fatdog history:
Software updates and bug fixes.
Software updates and bug fixes.
This is the first public release which took the name of Fatdog64 500, to align with the fact that Puppies built from Woof were the 5th generation, i.e. Puppy 5.x as opposed to Puppy 4.x which was pre-Woof. It had updates and bug fixes over beta3 release. rc1 and rc2 were not released for public.
This is the first stable release of 64-bit Fatdog, after being intensely worked on in the previous four (4) months and was in the cooker for almost a year. It was uniquely Puppy in all its 64-bit glory.
A test release for what was to become Fatdog64 510, as an update for 500 series.
A test release for what was to become Fatdog64 510, as an update for 500 series.
Software updates and bug fixes over 500.
A collection of bug fixes and patches were merged with the base 510 and released as 511.
The first test release of what to become Fatdog 520. An interesting feature here is Fatdog's adoption of the xz compression for SFS, making it relatively smaller than previous releases (which used gzip compression). I would believe that this was also the first in among other variants of Puppy Linux.
Another test release. It was mainly to test out the Radeon and Mesa changes.
This release replaced Firefox, which had been used as the default web browser for Fatdog, with Seamonkey (the same browser used in other variants of Puppy Linux), for two reasons:
Software update and bug fixes.
Software update and bug fixes. One notable feature was the inclusion of Sven, the multimedia keyboard daemon. This means multimedia keys such as volume control keys would work out of the box for most systems.
Downgrade the kernel from 3.0rc7 in beta4 to 2.6.39.3 (the latest 2.6-series) when 3.0 proved to be unstable (due to CIFS kernel bugs). This release made "ondemand" CPU scaling as the default.
Downgrade kernel to 2.6.38.8 when it was found that 2D graphics acceleration didn't work in 2.6.39.3.
Xorg compiled with udev - enabling full auto-configuration of the graphical desktop without any startup wizard required (ie, no xorg.conf is required by default), although the wizard (xorgwizard) was still available under the name of xorgwizard-old. Keyboards, mice and wacom devices were automatically detected upon being plugged. This was the first among Puppy Linux variants.
It also came with an audio equaliser which can be used for all applications that uses ALSA as audio output.
Software update and bug fixes.
Final release for 520, contains a lot of bug fixes and software updates over 511, incorporating all the changes mentioned in beta and rc releases above.
A collection of bug fixes and patches were merged with the base 520 and released as 521. This also marked the final release of the 500 series, the "Woof" fork Fatdog, as the next version of Fatdog diverged and had little to do with Woof.
This version was used as the base for LightHouse64 puplet.
This release marked the first release of the 600 series, after being worked on intensely in the previous four (4) months. It brough many new and innovative features, one of which is the new GUI for Samba-based file-sharing, replacing the old NFS-based introduced two years earlier. This enabled Fatdog users to share information seamlessly not only among themselves, but also with Windows and Mac users. The tool was eventually adopted by mainline Puppy Linux and is now available as standard package (if not standard feature, in some puplets) for all Woof-built Puppies.
This however also marked the beginning of Fatdog64 being
completely separate from Puppy/Woof. The initrd was completely
replaced with a full 64-bit initrd, and the base packages were
re-built from a new T2 SDE base. Most of the familiar gtkdialog
GUIs and wizards were replaced with gtk-server variants. Fatdog
ISO became an "isohybrid" which means it can be burn to a CD or
"dd-ed" to a USB flash drive directly - no installation needed.
Pet packages now use xz compression by default while still
supporting the old gzip compression.
This release also marked the beginning of a new, open development
model where all of Fatdog were managed by a public SCM (source
code management) system, which means that everyone can download
Fatdog along with all of its build tools, and then build a
customised version of Fatdog themselves. Fatdog repositories were
kindly hosted by chiselapp.com.
This is the first release that made use of the now-familiar
Fatdog64 logo, created by AFG Sinaulan ("afgs" in the Puppy Linux
forum) 2
years earlier, as its desktop background.
In addition to the usual bug fixes and updates, this release features an important new feature: Fatdog gained true multi-user capability (this capability was already there in alpha2 but it was buggy and incomplete, so it wasn't advertised).
Software update and bug fixes.
Software update and bug fixes. Fatdog gained a built-in graphical login manager (using SLIM, previously available as an external package); as well as ability to launch multiple desktops for multiple users - on the same computer, at once.
After 6 months of development and 2 months of public testing, the first stable version of 600 series was announced, the culmination of all the features found in the test release, but only ...
... to be followed quickly by a bugfix release to amend the most annoying bugs (oops!). 601 was announced in the same thread as the original 600 announcement.
Software update and bug fixes.
Bugfix release of 610.
Fatdog ended the year 2012 (the year the apocalypse was postponed, phew!) with a special test release that supported booting from UEFI and SecureBoot systems. This was a version of 611 with an EFI-enabled kernel and UEFI boot loader. It was released mainly to test the robustness of this new boot loader as well as Fatdog's performance under these new systems.
Note: Fatdog's UEFI boot loader was based on rEFInd and grub2-efi, and is actually generic enough to be usable for use with variants of Puppy Linux too.
620-beta1 marks the next release of the 600 series with full UEFI / Secure Boot support, as well as the usual bug fixes and software updates. This release features, among others, ability to load savefile from LVM and mdadm RAID devices, as well as the more secure encrypted savefile using LUKS instead of the old cryptoloop.
Fatdog repositories are now located in ibiblio.org too.
Bug fixes and software update from beta1.
In addition to the usual bug fixes and software updates, beta3 incorporated out of the box bluetooth support for audio streaming, bluetooth HID devices (mice and keyboards), as well as bluetooth modems.
This release broke the tradition of kernel source being included in devx. Due to the logistic issues with the SCM system used, the kernel sources was now separated into its own SFS file. This is more typical of standard Puppy Linux release model.
The final version of 620 release concluded the three beta releases, rolling up the features previously tested there, as well as bringing UEFI (with Secure Boot) support. New major features were: the ability to save sessions to a "save directory" (as opposed to "savefile"), and support for User Mode Linux (UML) sandbox, as well as other features tested in beta: LUKS, bluetooth support, LVM/mdadm support at boot time, and many others.
This version commemorated Fatdog's five year anniversary.
This was the bugfix release for Fatdog64 620. It also featured a new (end-user invisible) shutdown code using pivot_root which in theory should work better; as well as bug fix for writing large-files to bluray.
This day marked the the beginning of a new platform support for Fatdog. The last platform swich for Fatdog happened 8 Aug 2009 with the release of Fatdog2 64-bit (switchin from 32-bit to 64-bit). On this day, the porting of Fatdog to ARM platform began. It was a process that was transparent where every step of the process was documented.
Announcement Fatdog64 to Fatdog64 porting process
About a month after started, the porting was finished. This was the first public release of FatdogArm. It was based on LFS 7.1, heavily modified for ARM platform (LFS 7.1 officially only supported x86 and x86_64 platform). This first release supported Mele A1000 (Allwinner A10 SoC) - its build platform.
FatdogArm is a full-fledged Fatdog operating system. It operates on the same principle, have the same features (almost identical featureset except those that can't pratically be supported on ARM platform). It used aufs layered filesystem and supports SFS, in fact its primary installation method was "frugal install" - the same as Fatdog64's. People who are familar with Fatdog64 would be right at home with FatdogArm.
FatdogArm brought new ground to distribution method: the usual method for distributing OS for general purpose OS on ARM platform was by using a tarball containing image files (i.e., filesystems image created for direct "dd" to SD card). This is not optimal because:
This is mainly a bugfix release for the original alpha.
This release added support for OLPC XO-4. This release also added new feature in distribution - in addition to the usual kernel-package+SFS method, FatdogArm was also distributed with a "meta-distribution" package, to make it easy for others to build a custom FatdogArm image.
This was mostly an update to 621 release, with many packages are updated. Some new features include LXC-based sandbox, as well as the ability to run multiple sandboxes at the same time.
This release added support for Cubieboard2 (Allwinner A20 SoC).
This Christmas release of Fatdog64 was mainly for software update. Notably, GIMP was updated to version 2.8.x series, and introduction of razor-qt panel replacing the venerable lxpanel.
This release added support for Odroid U2/U3 (Samsung Exynos 4420 SoC).
Rolling the changes since RC1 and RC2, this release came with more updated packages and a new "network-setup" replacing the venerable Network Wizard.
The beta1 of FatdogArm marked the update of the base platform from LFS 7.1 to LFS 7.4. Big visible changes it the support of OLPC XO-1.75. This wasn't possible before because earlier builds of FatdogArm were configured to use VFPv3 and NEON, which XO-1.75 didn't have. Beta builds of FatdogArm were now configured for VFPv3-d16. This was the same configuration as Debian armhf platform.
The official supported platforms for beta1 were Mele (Allwinnder A10), Cubieboard (Allwinner A20), Odroid U2/U3 (Samsung Exynos 4420), OLPC XO-4 (Marvell PXA2128) and OLPC XO-1.75 (Marvell Armada 610).
Unlike FatdogArm Alpha which was a "ported" build, FatdogArm Beta1 was a native build: It was built "natively" on FatdogArm Alpha4 (except the kernel which was still cross-compiled). Another big invisible changes was that FatdogArm Beta was now built using fully automated build-system - something like T2, buildroot, or equivalent. This build system was later improved and used as the base of the build system for Fatdog64 700 - it was a case where an offshot project (FatdogArm) finally contributed back and actually defined the original upstream project (Fatdog64).
This release marked the end of Fatdog64 600 series.
This was the last, and final release of Fatdog64 600 series. It was a software-update release, and was mainly released as a tie-in before the first public release of next Fatdog64 series (the 700 series) which had been in concurrent development but was not expected to be released for some time.
This released marked the timespan of Fatdog64 600 series to be two years - from the first alpha2 until 631.
In addition to the standard release, a special version was also released, optimised for Acer Chromebook C720. It was intended as a drop-in replacement for ChromeOS that came with that machine (Announcement).
This was the first public release of the Fatdog64 700 series.
Fatdog64 700 series was a new series, a major upgrade of Fatdog64 where all the base packages are upgraded. It comes with the latest and greatest of writing (at the time of release): glibc (2.19), gcc 4.8.2, and others. It is based on LFS 7.5. It dispensed with the PET package format and adopt Slackware package management tools with XZ-compressed tarball (TXZ) as its package format.
The biggest change in the 700 series is the adoption of FatdogArm
automated build system. The new build system a fully automated
system similar to T2. Having its own build system means that
Fatdog has finally reach self-sufficiency and self-hosting -
future Fatdog builds can be built on Fatdog itself.
Functionality-wise, this release was not much different from
Fatdog64 631 (the last of the 600 series) but this new base
packages would pave the way for future enhancements which required
contemporary base packages.
This release was mostly bugfix release with some package updates.
This was a platform update release, with bugfixes and functional
updates imported from Fatdog64 700.
It introduced support for Cubox-i (based on Freescale i.MX6 Dual
and Quad). Also, Odroid U2/U3 got a new kernel (and a new Mali
driver, as released by upstream kernel maintainer (hardkernel)).
This was a full-rebuild of Fatdog using gcc-4.8.3 and the latest
(non-git) version of fontconfig. Git versions of fontconfig after
2.11 (used in beta1) changed ABI and resulted broken apps (notable
ones being opera and chrome). It also came with other package
updates and bug-fixes.
This release was mostly bug fixes and package updates. Major
change is the inclusion of many internationalised scripts done by
forum member L18L.
The first final release of Fatdog64 700 series. Mostly bug-fixes
from 700rc, with a kernel update. Released after over 6 months of
public testing.
The third beta release of FatdogArm beta series. Bug-fixes,
package updates, updated scripts from its big brother Fatdog64
700, and platform update: Google Nexus7 2012 is now supported.
Maintenance update for Fatdog64 700.
This release was mostly bug fixes and package updates. Major
change is the inclusion of many internationalised scripts done by
forum member L18L.
Maintenance update for Fatdog64 700. Contained updated packages and all updates and bugfixes since 701 release.
Along with 702 release, Fatdog64 ISO builder is made available.
This is a build-system that produce build a custom Fatdog64 ISO;
if given the same package list as the an official ISO release, it
will build an ISO which is functionally identical to the official
released ISO.
With this release, Fatdog64 finally joins FatdogArm in being
released as "meta-distribution"
- the ability to produce multiple custom distributions from a
single source.
This is a tool to build custom Fatdog64 ISO from scratch, by
downloading packages from Fatdog64 repo and assembling it one by
one to build an ISO, based on a given package list. This tool
announced at the release of Fatodg64 702 and is finally released
today.
The fourth beta release of FatdogArm beta series. Mainly bug
fixes and platform update: Raspberry Pi2 and Odroid-XU3/Odroid-XU4
are now supported.
Rebuilt from scratch, this is a major upgrade to the 700 series
that sees many of its packages upgraded. Since 710 development
stretched for a very long period of time (it was started as soon
as 700 went final), its package updates varies between BLFS 7.6 and
7.8. Despite the ugprades, it aims for compatibility with packages
originally built for 700 (though some breakage is unavoidable due
to library updates).
The major infrastructure changes in 710 is that Fatdog64 is now
not only multilib-ready, but is multilib-equipped. "Multilib"
(=multi-libraries) refers to the ability to run both 64-bit and
32-bit programs. Previous versions were multilib-ready - Fatdog64
can use 32-bit libraries from compatible distro to run 32-bit
applications (Puppy Wary was the chosen distro for Fatdog64 500
series, and Puppy Slacko was chosen for Fatdog 600/700 series).
This release is multilib-equipped - Fatdog64 now features native
32-bit libraries; they are built together and updated together
with the rest of the 64-bit system. The main/major test of 32-bit
compatibility is the ability to build WINE: 710 passes this test
and now features native WINE package too.
Ten months in the making, this marks the first release of the 710
branch. Please read all the above entries for 710 alphas and betas
to get a glimpse of what are the new features in this release
compared to 702.
Difference from beta2 release is minimal, it's mainly package
updates and the usual bug fixes.
The ISO size in this release grows again to 360M (from 350M in
beta2) - this is due to the usual growth of newer packages
(Seamonkey etc); but also because bug fixing related to mesa and
LLVM. Mesa now uses LLVM properly to avoid corner cases which can
causes application crash. The choice was either to have this
proper fix which increase the size; or a workaround with reduced
performance (and perhaps additional buggy corner cases). The team
decided that having a proper fix is more important.
Last updated 17 Aug 2024 - the Fatdog team (kirk, jamesbond, SFR (JakeSFR), step)