Squashed commit of the following:

commit 9fcc6e6c63dec7cad384a66b26b03660fb587912
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Tue Sep 24 15:29:00 2013 +0800

    Arch: Fix audio.

commit 82df15239286b5fd13da49745044ae8f3e0029ce
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Tue Sep 10 10:58:12 2013 +0800

    Arch: Add cinnamon target. Not working on Arch (similar reasons as gnome).

commit b4d6297560e63bdc68e8eeb2bf124444863be012
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 9 15:06:47 2013 +0800

    Arch: gnome target (not working).
    Arch includes Gnome 2.8, which does not have an automatic fallback
    Even using gnome-flashback-session does not seem to help: startgnome
    on xephyr complains about lack of hardware AND software acceleration.
    Finally, /etc/X11/xinit/xinitrc behaviour is very different in Ubuntu vs
    Arch (it is a fallback xinitrc in Arch, but Ubuntu's sources /etc/X11/Xsession)

commit 86685ef567b05bce07ff265fb4f09dac10ed94be
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 9 15:06:34 2013 +0800

    Arch: KDE target (Not fully working on Arch: no launcher to start other applications?)

commit 22d148d10852686d3b39919cf6bb1dd5df79a0fe
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sat Aug 10 14:26:30 2013 +0800

    Arch: Chrome target (untested).

commit 628ab18d385f43bceeb9d0de14cf6a566753856d
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 9 15:06:06 2013 +0800

    Arch: Most DE and X11-related targets.

commit 9b2a02215c62af5736e3df0b9aae82f4fb461717
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 9 15:04:45 2013 +0800

    Arch: x11/xephyr targets

commit f2f6cd5dcd5652a968230b63022588ee8d303a58
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 9 15:04:08 2013 +0800

    Arch: Core and post-common targets.

commit 786834fb81092126e64e9c5a1b86e5f631de16e1
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 9 15:02:49 2013 +0800

    Arch: source /etc/profile in enter-chroot.

commit 653200a21938dcfe6d6cd59047ef9d9a0daa4c33
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sat Aug 3 14:11:28 2013 -0700

    Arch installer.
Squashed commit of the following:

+ readd crouton.crx for chroagh "release"

commit c968f58356cd1887f7983446b49b37755b286f02
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sun Sep 15 13:56:38 2013 +0800

    crouton extension: Fix version test.

commit 380e6e77553dadeadcbb919ea948db6190a2b034
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sun Sep 15 11:57:26 2013 +0800

    crouton extension: Fix version comparison. Do not include in crouton package.

commit 2799891ffb7243d32e25fa6d5c8532ab9bba76a4
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sat Aug 24 14:05:26 2013 +0800

    Rely on the fact that shell is a process group leader to make sure exit commands are executed.

commit cc11f7c1edc70b6a00a43e3c5037e7ba9818ba42
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Thu Aug 15 17:15:39 2013 +0800

    Self-review of websocket.c. Many small fixes, some more major ones.

commit 8d6b8e82d91f677b3f2e4dcb32b62b284b68c66f
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sat Aug 10 18:01:15 2013 +0800

    Modify script that generates crx extension package, so it does not use Chrome.
    Unfortunately, it requires zip, which is not available on Chrome OS.
    Therefore, we add the crx file to the git repository, so that we can
    simply copy it over.
    Also add extension in crouton package.

commit d985f9a67f7d27a4be214a420c91f1e52fadc69a
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Mon Aug 5 23:24:20 2013 +0800

    Rename cros-extension to extension.

commit 1ba858d0c263da53116e923e1dab50e2beca78cd
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Mon Aug 5 00:52:04 2013 +0800

    Pull in xclip package dependency in extension, improve comments.

commit d2d65c6afcf41e1c0b0760f90cd6975dc3298347
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sun Aug 4 23:49:45 2013 +0800

    Fixes in websocket.c:
     - Split socket_server_accept in 2 chunks.
     - Improved popen2, uses poll/waitpid to check if there is more data
       to read, and if the child process exited.
     - Clean up error messages.
     - Improve comments and formatting.
     - Verify the validity of base64 output.

commit 8854e0e93b5477750c5d2aea2a79db153ac0c673
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sun Aug 4 21:09:36 2013 +0800

    Improvements to Chromium extension.

commit 3e8074cc0d0930f02392c2574448df77bed4d460
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Mon Aug 5 21:25:47 2013 +0800

    Simpler croutonclip detection in xinit.

commit 1ec8dfa0eb525241b6b8bb9473330076ed83a215
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sun Aug 4 06:01:20 2013 +0000

    Major simplification of the logic in croutonxinitrc-wrapper.

commit 2752ace20e1684b172c8944293fa42829af20311
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sun Aug 4 05:47:28 2013 +0000

    Minor fixes to croutonurlhandler.

commit 873a576f397e4ab19f3657652d7da80c995a1ac5
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Sun Aug 4 04:54:59 2013 +0000

    Fixes to croutonclip:
     - Proper traps
     - Limit usage of temporary files
     - Detect aura window id.
     - Put VERBOSE tests in if blocks.

commit a50b1f4c0b08c089d2207adc00d92fc02979d789
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Mon Aug 5 09:05:15 2013 +0800

    Trap TERM signal. Without this, bash still executes the EXIT handler upon receiving TERM, but dash doesn't.

commit ee591be07d651e7ceb7a6b50cee4f13786418d9c
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 2 14:09:58 2013 +0800

    Chromium extension: Use '%' as dummy string.

commit 2db2782608c3cb771e7dedc6eee8c91078617857
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Fri Aug 2 14:03:13 2013 +0800

    Wait for child so that we do not leave sha1sum and base64 zombies.

commit d7b625ca61af7c68938b7adfb00eecba75fec494
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Wed Jul 31 10:41:53 2013 +0800

    Integrate extension into crouton's framework.

commit 255dd02942050b2fc14401a1b4f2a118fab4d1a0
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Wed Jul 31 10:40:38 2013 +0800

    Scripts for communication with Chromium extension (clipboard synchronization and URL handling).

commit 2355d06a859ae2f8076fff6b6e4718f797bdaa1c
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Wed Jul 31 10:39:35 2013 +0800

    WebSocket server for communication for Chromium extension.

commit e00db9fa7e22fb40efcffda2460a16229267e52a
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Wed Jul 31 10:37:51 2013 +0800

    Chromium extension.

commit 2906ddfb2edacaa9050831dd23692c29f1bfd92a
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Thu Aug 1 20:49:01 2013 +0800

    Make sure exit part is run in croutonxinitrc-wrapper, even if we press Ctrl-C.

commit b6e442c721a6dce54e593b3fa4580685e165bdc0
Author: Nicolas Boichat <nicolas@boichat.ch>
Date:   Wed Jul 31 10:39:12 2013 +0800

    Add cros parameter to croutoncycle.
Killing the father. Removing chromium dependency.
Documentation.