quirkylogo

Announcement and release notes for Quirky 6.0.1

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, and partial or temporarily done in bold-red:
  1. No Unionfs/Aufs (no layered filesystem). 
  2. Deployed as USB-stick/SD-card image only.  Generic drive or partition image
  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:
http://bkhome.org/news/?viewCat=Quirky

A few points about the achievements so far. Quirky is very small (under 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 Adobe Flash player is included.

Download and install

Quirky 6.0.1 is deployed as a compressed image that can be installed to either an external (plugged in) Flash drive (minimum 2GB), or to a partition in a hard drive.
I have split the instructions into two Methods, A or B.

Method A: install to any size Flash drive

Firstly, the steps to install to any size Flash drive. This will optimise the installation to whatever size drive you want to install to (anything 2GB or bigger), but you must be comfortable with running a script in a terminal, and be running a reasonably recent Linux distribution. Go for it:
  1. Download three files:
    quirky-6.0.1.usfs.xz, sha1sums.txt, install-quirky-to-drive.sh
    ...this must be in a partition with Linux filesystem*. Get them from here:
    http://ftp.nluug.nl/ftp/pub/os/Linux/distr/quirky/quirky6/x86/quirky-6.0.1/
    or http://ftp.cc.uoc.gr/mirrors/linux/quirky/quirky6/x86/quirky-6.0.1/
    or  http://distro.ibiblio.org/quirky/quirky6/x86/quirky-6.0.1/
  2. Verify download.
    Open a terminal window where you have downloaded the files, and execute this:
    # sha1sum *
    ...check against contents of sha1sums.txt
  3. Run script to install.
    Plug in a spare Flash drive, then:
    # sh ./install-quirky-to-drive.sh
    ...this script will ask questions, then write the image to the drive.
* The script runs the 'xz' utility, which does not work in a Microsoft dos/vfat/ntfs filesystem. So, you must download into a partition with Linux filesystem (ext2, ext3, ext4, reiserfs, f2fs).
The above steps require that you are running a Linux distribution (running as root).

Method B: install to a partition

This is to install Quirky to any internal hard drive partition. This requires that you have setup your own boot manager, such as GRUB, GRUB4DOS, or LILO. The script will install to the desired partition, then offer a suggested entry to be made in GRUB's menu.lst file.

This method can erase whatever is currently in the chosen partition, or, optionally, upgrade a prior installation of Quirky.

This is as per Method A, you download quirky-6.0.1.usfs.xz, but instead you download and run this script:
# sh ./install-quirky-to-partition.sh
...it will ask questions about which partition, etc.

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:
http://distro.ibiblio.org/quirky/quirky6/sources/

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.x, 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...

Development

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.1.sfs.
  2. Check the integrity against sha1sums.txt:
    # sha1sum devx_quirky_6.0.1.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 * /
    # sync
  4. Unmount SFS
    Close the terminal window, then just click on the SFS file in the window manager, to unmount it.
...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:
http://bkhome.org/news/?viewCat=Quirky

Legal

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.

Regards,
Barry Kauler
December 19, 2013