quirkylogo

Announcement and release notes for Quirky 6.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 (see here and here). 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. Yes, yes, all those things, but the real distinguishing features are three, firstly the very eclectic set of goals (see list below), secondly the thorough recovery/backup/upgrade mechanisms, and thirdly the optmisation to run as a "full installation"  -- the latter needs to be appreciated in relation to Puppy Linux. 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 his 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.

Some basic things to be aware of, relative to Puppy: there are no SFS files, no session save-file, no initrd.gz, no frugal install. So, all discussion of these topics on the Forum is not relevant!

Goals of Quirky6

I started the Quirky6 project by making up a list of what I wanted to do. Those shown in green are the goals that I achieved in version 6.0. The goals attained in version 6.1 are highlighted in blue. Partial or temporarily done are in red:
  1. No Unionfs/Aufs (no layered filesystem). 
  2. Deployed as generic drive or partition 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. Simplified version upgrade (and downgrade). 
  12. System rollback (system recovery).
  13. 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. Though, there is an Xorg server upgrade PET, with some accelerated drivers.

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.

Special features of Quirky 6.1

Relative to 6.0, Quirky has got really heavy duty system save/restore, package uninstall recovery, and easy system version upgrade. This was achieved by quite intense development over a very short time period. The easiest way to explain these important new features is to link to my blog:

Rigorous handling of package uninstallation:
http://bkhome.org/news/?viewDetailed=00032
System snapshots and recovery:
http://bkhome.org/news/?viewDetailed=00034
Simplified version upgrade:
http://bkhome.org/news/?viewDetailed=00035 

Download and install

Quirky 6.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. These are Methods A and B. Or, if you already have Quirky 6.0 or 6.0.1 installed, there is a simple method of upgrade using a Service Pack, see Method C. I have also provided a ready-to-go image for an 8GB (or greater) Flash memory, that just needs to be copied to the drive -- that is Method D.

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 very recent Linux distribution (that understands f2fs). Go for it:
  1. Download three files:
    quirky-6.1.usfs.xz, sha1sums.txt, install-quirky-to-drive.sh
    Get them from here:
    http://ftp.nluug.nl/ftp/pub/os/Linux/distr/quirky/quirky6/x86/quirky-6.1/
    or http://ftp.cc.uoc.gr/mirrors/linux/quirky/quirky6/x86/quirky-6.1/
    or  http://distro.ibiblio.org/quirky/quirky6/x86/quirky-6.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. 

Some people found the script to be troublesome in certain Linux distributions -- this may just be a matter of installing needed packages, for example with Ubuntu you might need to install 'mtools', 'syslinux' and 'f2fs-tools' -- if the latter is not in the repo, then the distro is too old!). If you encounter a problem that you can't solve, go to the Forum to discuss it, or try Method B or D.
One suggestion: if your problem seems to be due to Syslinux, the above links have a syslinux-4.05-x86.pet package, that is tested to work.

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

Method C: upgrade

With a running Quirky 6.1 and later, it is very simple. In the menu at bottom-left of screen, Filesystem category, choose "Quirky Version Upgrade Manager". That's it, you click a button and the upgrade happens. This is for the future!

Alternatively, and this is required for Quirky versions prior to 6.1, the Package Manager will check for an upgrade, known as a "Service Pack", at startup, as long as there is an Internet connection -- after starting the Package Manager, after a short delay, a window should pop up informing you of an available upgrade.

Failing that, download the PET package directly:
http://distro.ibiblio.org/quirky/quirky6/x86/packages/pet_packages-quirky6/service_pack-6.0.1_TO_6.1-quirky6.pet
...after downloading, just click on it.

Method D: 8GB image

This ready-to-go for a 8GB (or greater) USB Flash stick or SD card. The steps, for Linux:
  1. Download quirky-6.1-8gb.img.xz, from one of the above links.
  2. Expand and install (for example of Flash drive being sdb) (in a non-Puppy distro, you might have to do the 'sudo' thing, to run as root):
    # xz --decompress --stdout quirky-6.1-8gb.img.xz > /dev/sdb
    # sync
Further documentation is required to do this from Windows. Well, you might look here:
http://sourceforge.net/projects/win32diskimager/
...but, you will need to first install an application such as 7-zip (http://www.7-zip.org/), that can uncompress an .xz file -- and be prepared, it will expand to a 7.6GB file, so make sure the partition has enough space!

If you use a 16GB or bigger drive, no problem, you can use GParted (which is in Quirky) later to create an extra partition to fill the drive. Note, f2fs can not yet be resized.

If Method A did not work for you, method D should do it, and then you have "pulled yourself up by your boot straps", as they say. You will then have a running Linux that is capable of doing method A.

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.x, browse that link. Note, the 3.12.6 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. Some guys on the Forum, such as Billtoo, are helping by compiling some packages, and I intend to add those to the official repo soon.
Users may compile apps, which leads to the next section...

Development

If you feel motivated to compile apps for Quirky6, go for it! In the Puppy-days I used SFS files for this purpose, but no more, now it is just PETs. A PET is a package, in a special format optimised for Puppy and Puppy derivatives. Note though, the Package Manager understands most package formats, including DEB and RPM.

How to setup Quirky6 for compiling

Bootup Quirky6, connect to Internet. Then:
  1. Download and install devx-6.1-quirky6.pet.
    Actually, you can do this two ways, either by running the Package Manager (see Install icon at top of screen) and look in the 'pet-quirky6' repository, or download it directly from the repository then just click on it to install it:
    http://distro.ibiblio.org/quirky/quirky6/x86/packages/pet_packages-quirky6/devx-6.1-quirky6.pet, or from
    http://ftp.nluug.nl/ftp/pub/os/Linux/distr/quirky/quirky6/x86/packages/pet_packages-quirky6/devx-6.1-quirky6.pet
...that's it, you are ready to compile!

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

If you need the Linux kernel source, that is also available as a PET package. Quirky 6.1 is using kernel version 3.12.6. From the same links as above (or by using the Package Manager), install kernel_src-3.12.6-patched.pet.
Note, the main patch is for 'aufs', and a few other minor patches.

Feedback

If you wish to interact with other users of Quirky6, there are various threads on the Puppy Forum. This is the main one:
http://murga-linux.com/puppy/viewtopic.php?t=90784&start=135

In this thread you will find not just bug reports but also solutions, extra PETs compiled by users, and general impressions.

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/blue!

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. However, the Quirky6 users on the Puppy Forum are very friendly.

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. You use Quirky6 with this understanding.
Licences: Quirky6 is under various GPL licences, mostly GPL2 and GPL3. There are 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 31, 2013