Announcement and release notes for Quirky 6.0

Quirky is my fun project to explore new ideas for Linux. I founded Puppy Linux in 2003 and maintained it for 11 years, then decided to step back and let the keen "younguns" take charge. However, I am still involved in Linux development -- I started Quirky Linux in 2009 as a venue to explore new concepts, and I am continuing this.
"Quirky6" is the "6.x" version series, with a raft of new ideas that I want to try out. It has turned out well, I like it and use Quirky as my everyday Linux distribution.

In a nutshell, Quirky6 is intended to be as small as possible (hence compiled from source in T2), very fast, very simple, and optimised to run on Flash memory media. There are other extended ideas that are in the pipeline.

You will want to know about the connection with Puppy Linux. Well, Quirky6 is a fork of Puppy, but has meandered off on its own quirky direction, becoming substantially different "under the hood". However, the applications, utilities and user-interface remain much the same as Puppy -- so you have the same ease-of-use, but even a bit easier. Also, you can go to the main Puppy forum and get involved, as you will find their broad agenda embraces such offshoots as Quirky.

Goals of Quirky6

I started the Quirky6 project by making up a list of what I wanted to do. Here it is, with the "done" items in bold-green:
  1. No Unionfs/Aufs (no layered filesystem). 
  2. Deployed as a USB-stick/SD-card image only.
  3. Optimised for Flash, using f2fs.
  4. My own very simple replacement for udev. Using eudev, without rules
  5. No mesa, no llvm. 
  6. Xorg has modesetting, vesa drivers only. 
  7. No initrd.gz. 
  8. No dbus. 
  9. GTK 2.20.1. 
  10. Run cupsd only when printing.
  11. Install and uninstall SFS files. 
  12. Simplified version upgrade (and downgrade). 
  13. Auditing, allowing rollback (system recovery).
  14. Child-proofing. Optional, make PC hard drives invisible.
There is a lot to explain here, about the reasons for each of these. For further reading, I recommend my "news" page, the Quirky thread. If you are really keen, start reading from the first post:

A few points about the achievements so far. Quirky is very small (only 110MB download), boots very fast and runs fast, even when booted off a USB Flash stick (via the relatively slow USB2 interface). I also aimed for simplicity, and Quirky is arguably simpler to use than Puppy Linux.

Don't be put off by the unaccelerated modesetting and vesa drivers -- performance is excellent for normal use, such as web surfing. The minimal daemons and low-resource JWM/ROX-Filer desktop help here.

The f2fs filesystem means that there is very little wear of the Flash media.

Regarding udev, I have for now chosen 'eudev', but threw out all of their rules -- instead, using a small set created by myself and other Puppy developers.

Yes, there is a reason for not using GTK 2.24.x. It has some rendering changes that make some apps misbehave. I think that the developers were moving up to the 3.x series, and some stuff went into 2.24 that perhaps shouldn't have. I have found that the vast majority of apps still compile with 2.20.1.

The approximate 110MB size of the download file does not mean that you get a bare-bones distro, just the opposite! In true Puppy-spirit, you get just about every application and driver you will need. A full set of kernel, printing, scanning and camera drivers, multimedia libraries, a full suite of applications, including Abiword, Gnumeric, Planner, SeaMonkey (plus heaps more) -- even the latest Adobe Flash player is included.

Download and install

Quirky 6.0 is deployed as a compressed image for an 8GB Flash drive. We have tested on USB sticks and SD cards. To install, just download and write it to the Flash drive. Here are the steps (you must be running Linux or Unix):
  1. Download four files:
    gdisk, quirky6-6.0-8gb.img.xz, sha1sums.txt, write-quirky-image-to-drive
    Get them from here:
    or http://ftp.cc.uoc.gr/mirrors/linux/quirky/quirky6/x86/quirky-6.0/
    or  http://distro.ibiblio.org/quirky/quirky6/x86/quirky-6.0/
  2. Verify download.
    Open a terminal window where you have downloaded the files, and execute this:
    # sha1sum *
    ...check against contents of sha1sums.txt
  3. Set executable flags:
    You need to make sure these programs can be executed:
    # chmod 755 gdisk
    # chmod 755 write-quirky-image-to-drive
  4. Run script to install.
    Plug in a spare 8GB (or greater) Flash drive, then:
    # ./write-quirky-image-to-drive
    ...this script will ask questions, then write the image to the drive.
    Note, there will be a GPT partition-table error reported for the image, ignore that, as gdisk will fix it.
The above steps require that you are running a Linux distribution (running as root). Cannot cater for MS Windows or Apple OS people yet.

A technical point: if you are wondering why 'gdisk' is needed, read this:

If you have a 16GB or greater Flash drive, you can create a partition to fill the rest of the drive, using Gparted (included in Quirky). As a precaution, leave 1MB free at the end of the drive, as we are uncertain if Gparted is properly handling the secondary GPT (GUID Partition Table) that resides right at the end of the drive. Note, you must use a recent version of Gparted that understands f2fs and GPT. Note also, f2fs does not yet have a resize utility.

An extra note about using Gparted: the f2fs partition starts and ends on 8MB boundaries. This is helpful for Flash media. When created a new partition, choose a size in MB that is a multiple of 8.

Other modes of installation

Quirky6 is not limited to installation to external Flash media. Installation to a normal hard drive is also possible. The image file 'quirky6-6.0-8gb.img.xz' can be opened up and Quirky installed to a hard drive partition -- but I haven't written a script to do that yet.
If there is interest in this, I will create the script.

Sources and packages

The base packages used in Quirky6 were compiled in T2, for a minimum of an i486 CPU. All of those sources are available at ibiblio.org:

Additional sources that I have compiled in Quirky are also at the above link. If you want to know what versions of packages are used in 6.0, browse that link. Note, the 3.12.2 Linux kernel is used. Once you have Quirky running, file /root/.packages/woof-installed-packages gives you a full list of the packages used in the build.

Quirky6 has a package manager, but the cupboard is bare. I hope to add more packages. There are three repositories, "quirky6", "noarch" and "common", but the latter two have packages from other puppies, and we will need to go through and remove those that don't work or are inappropriate.
Users may compile apps, which leads to the next section...


If you feel motivated to compile apps for Quirky6, go for it!

How to setup Quirky6 for compiling

Bootup Quirky6 from the Flash drive, connect to Internet. Then:
  1. Download devx_quirky_6.0.sfs.
  2. Check the integrity against sha1sums.txt:
    # sha1sum devx_quirky_6.0.sfs
  3. Install SFS.
    Just click on the SFS file in the window manager, choose to view contents,
    open a terminal, copy the contents to the Flash drive:
    # cp -a -f --remove-destination * /
...that's it, you are ready to compile!

Note, this one SFS has absolutely everything you need, with C, C++, Vala and BaCon compilers, as well as nasm and yasm and Python. All tools as well, including git and subversion.

Note, Quirky6 does not have a layered filesystem like Puppy Linux, so SFS files cannot be installed and un-installed as is done in Puppy. The above-described method is a permanent installation. One of my future goals is to implement a method of easy installation and un-installation -- with proper rollback.

The future

It is very important to understand that I, Barry Kauler, am "retired" and only doing this for fun. I do not provide much support, and do not claim that any release of Quirky6 is a highly polished and bug-free product. it is released as-is.

However, I will probably release some incremental upgrades, with improvements. Besides, there are still a lot of items in my "goals" list that are not yet green!

So, don't bother much with reporting bugs to my news page, or if you do, don't hold your breath waiting for a fix. There is likely, however, to be a group of users who will cooperate to fix any issues -- any such forum thread I will announce on my news page.

So, keep watching my news page for future developments:


Disclaimer: I have created Quirky6 and documentation in good faith, however usage and consequences thereof are entirely your responsibility. I do not accept any responsibility for issues arising, and you use Quirky6 with this understanding.
Licences: Quirky6 is under various GPL licences, mostly GPL2 and GPL3. There is some non-GPL but free to use, such as driver firmware and Adobe Flash player.
Ownership: I have copyright where ever stated, and claim where ever there is no other ownership statement. The name "Quirky" in relation to a Linux distribution is copyrighted to me under common-law. The Quirky logo may only be used to represent Quirky, not for any personal or other purpose.

Barry Kauler
December 17, 2013