Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
383 commits
Select commit Hold shift + click to select a range
8ed568d
Merge remote-tracking branch 'upstream/master'
tonyxue Dec 23, 2014
51d12c8
warp text
tonyxue Dec 23, 2014
b96cbc4
Merge pull request #1268 from divx118/fbdev
dnschneid Dec 24, 2014
5922ed9
Update CONTRIBUTORS
dnschneid Dec 24, 2014
f094cbb
Merge branch 'criat' of https://github.com/drinkcat/chroagh
dnschneid Dec 24, 2014
e2cb0e1
If unspecified, automatically find a pepper SDK in the source tree.
dnschneid Dec 24, 2014
fb8b49b
Dead code removal.
dnschneid Dec 24, 2014
eafd837
Allow for XMETHOD environment variables.
dnschneid Dec 24, 2014
a86c3f6
Freon support. Require xiwi until we get xorg compat.
dnschneid Dec 24, 2014
174fd61
Exclude xiwi from alltargets test
dnschneid Dec 24, 2014
91f5e4e
Prevent installing xephyr and xorg on Freon
dnschneid Dec 24, 2014
e01fd94
Fix invalid target checks
dnschneid Dec 24, 2014
048b802
Update first.html with xiwi references
dnschneid Dec 24, 2014
fc5da13
Update README.md, finally with reference to the extension
dnschneid Dec 24, 2014
1244928
Merge pull request #1270 from tonyxue/add_contributing_guidelines
dnschneid Dec 24, 2014
9506da0
Merge pull request #1241 from divx118/xbmc-hotkey
dnschneid Dec 24, 2014
69cb24e
Move brightness and croutonpowerd into core.
dnschneid Dec 25, 2014
bd2170b
Remove redundant REQUIRES from xiwi
dnschneid Dec 25, 2014
3e5202a
Make sure chromeos-setdevpasswd is successful.
dnschneid Dec 25, 2014
21db894
Try to make some sense this time.
dnschneid Dec 26, 2014
d8958b5
Rename x11 XMETHOD to xorg, and make sure coexistence works.
dnschneid Dec 26, 2014
90603aa
Add desktop distribution targets.
dnschneid Mar 14, 2013
44947de
Let the desktop targets bring in whichever browser they please.
dnschneid Sep 29, 2013
958f4f1
Debian desktops!
dnschneid Dec 27, 2014
8318150
Add gnome-desktop target
dnschneid Dec 27, 2014
b9634c6
Add tests for desktop targets
dnschneid Dec 27, 2014
63a9306
Quick hack to unbreak updates and target checking.
dnschneid Dec 28, 2014
00179da
Quick hack to unbreak updates and target checking.
dnschneid Dec 28, 2014
9df99a4
Sends username and passphrase prompts to /dev/tty when necessary
dnschneid Dec 28, 2014
7b4faa1
Add chvt to start* scripts. Fixes #1225.
dnschneid Dec 29, 2014
11bb53c
Save users from themselves. Disallow start* as root.
dnschneid Dec 29, 2014
69d69ea
Hack getopts to allow arbitrary placement of positional arguments.
dnschneid Dec 29, 2014
222fb4a
Use locales package to generate locales. Fixes #534
dnschneid Dec 29, 2014
50532d5
Delete the chroot if bootstrapping fails. Fixes #1254
dnschneid Dec 29, 2014
545308d
Explicitly bring in fbdev and intel drivers.
dnschneid Dec 29, 2014
d78e513
Fix explicit packages in the presence of backports.
dnschneid Dec 29, 2014
6f0c0b5
getopts: Fix combined parameters, and multiple --'s.
dnschneid Dec 30, 2014
3384234
Add edit-chroot filesystem type checks. Fixes #803
dnschneid Dec 30, 2014
6d2c997
Don't allow restoration to non-ext filesystems.
dnschneid Dec 30, 2014
e66424d
Don't allow installing to a non-ext filesystem.
dnschneid Dec 30, 2014
22aa7f5
Don't freak out if /usr/local is a bind-mount. Fixes #976
dnschneid Dec 30, 2014
c33ba2b
Enable splitting of backups
dnschneid Dec 30, 2014
a709d2d
Enable restoration of split backups. Fixes #823.
dnschneid Dec 30, 2014
fcdeb42
Minor fixups
dnschneid Dec 30, 2014
1bc1177
Use ls -a, and add comment
dnschneid Dec 31, 2014
a56d814
Add test for split backup
dnschneid Dec 31, 2014
fe45c38
Remove the tests that fail on bad parameter order.
dnschneid Dec 31, 2014
992afe3
Add apt-transport-https to core. Fixes #593 OOB
dnschneid Dec 31, 2014
ed25d64
Add /etc/crouton/shares share mapping file. Fixes #620
dnschneid Dec 31, 2014
0eb529e
Merge branch 'backups' into merge
dnschneid Jan 1, 2015
58773e6
Merge branch 'delonfail' into merge
dnschneid Jan 1, 2015
8e55b35
Merge branch 'desktops' into merge
dnschneid Jan 1, 2015
0c69a77
Merge branch 'filesystems' into merge
dnschneid Jan 1, 2015
83bbeec
Merge branch 'getopts' into merge
dnschneid Jan 1, 2015
4928085
Merge branch 'goodstart' into merge
dnschneid Jan 1, 2015
69c4afc
Merge branch 'localegen' into merge
dnschneid Jan 1, 2015
d5f5aed
Merge branch 'ttyprompt' into merge
dnschneid Jan 1, 2015
d8aacb0
Merge branch 'sharing' into merge
dnschneid Jan 1, 2015
fdd03f9
Merge branch 'xmethods' into merge
dnschneid Jan 1, 2015
d22f7ae
Add -X to the bundler to run scripts directly from the bundle
dnschneid Jan 1, 2015
5faf842
Merge branch 'bundleexec' into merge
dnschneid Jan 1, 2015
dbaf9bb
Make calls to readlink with user input more robust
dnschneid Jan 1, 2015
71f27c1
Prioritize targets which PROVIDES
divx118 Jan 2, 2015
5d5f9c5
Have the wrapper's -X call the script via sh to reset $0
dnschneid Jan 2, 2015
cd3392f
If we don't need to unmount, don't fail if unmounting fails.
dnschneid Jan 2, 2015
15edb01
Wrapper -X: simplify
dnschneid Jan 5, 2015
e270312
Commenting fix
dnschneid Jan 5, 2015
a2e7d49
Fix SPLIT retreival of argument
dnschneid Jan 5, 2015
d97bbe6
Avoid unsafe usage of mktemp
dnschneid Jan 5, 2015
0f0f87f
Posix split doesn't take units.
dnschneid Jan 5, 2015
561a5c8
Add -T to mv when resuming encryption
dnschneid Jan 5, 2015
707e189
Properly autodetect archive compression with -s
dnschneid Jan 5, 2015
7074017
getmountpoint fixes
dnschneid Jan 5, 2015
b562412
Switch to 5-digit suffixes.
dnschneid Jan 5, 2015
13fd97b
Revert "Add chvt to start* scripts. Fixes #1225."
dnschneid Jan 5, 2015
1bb5a33
Switch to VT1 in xinit.
dnschneid Jan 5, 2015
81e9936
Change syntax of shares to be more like fstab
dnschneid Jan 5, 2015
514155b
websocket.h: Refactor popen2, do not leak fds.
drinkcat Jan 5, 2015
47e3cb7
edit-chroot: Fix renaming
dnschneid Jan 5, 2015
221cf8e
edit-chroot -s should be in MB
dnschneid Jan 5, 2015
20318d7
Fix restoration of split chroot backups.
dnschneid Jan 5, 2015
2e9911b
Clarify dest path restrictions and validation
dnschneid Jan 5, 2015
0281e1f
Test compressed, split chroot backup/restore
dnschneid Jan 5, 2015
bf34d3f
Use POSIX split, and don't allow split sizes smaller than 10MB.
dnschneid Jan 5, 2015
4ecf968
Adjusted according to comments and looks cleaner now.
divx118 Jan 5, 2015
1f71dcc
Fix edit-chroot split test
dnschneid Jan 5, 2015
63f7adf
Fix restoration split detection
dnschneid Jan 6, 2015
2fa9967
Fix 12-edit-chroot test
dnschneid Jan 6, 2015
4871245
Merge pull request #1312 from drinkcat/popen2-fix-fdleak
dnschneid Jan 6, 2015
fd11dab
Merge branch 'master' into merge
dnschneid Jan 6, 2015
a7b0064
Fix 12-edit-chroot for realsies, definitely
dnschneid Jan 6, 2015
7e04169
Oh yeah, so much fixing of 12-edit-chroot going on here
dnschneid Jan 6, 2015
3b56999
Merge branch 'merge'
dnschneid Jan 6, 2015
3722f49
Revert "Sends username and passphrase prompts to /dev/tty when necess…
dnschneid Jan 7, 2015
3b348ad
Require successful unmount for delete-chroot.
dnschneid Jan 7, 2015
08f7e33
fbserver-proto: Pass X11 keycode instead of X11 keysym
drinkcat Jan 10, 2015
8a3e432
kiwi: VF1 compatibility layer
drinkcat Jan 10, 2015
d52655e
kiwi: Keycode converter header file.
drinkcat Jan 11, 2015
6ca6503
kiwi: Use KeyMapConverter (VF2)
drinkcat Jan 11, 2015
844315d
croutonxinitrc-wrapper/kiwi: Set keyboard rules to evdev.
drinkcat Jan 12, 2015
d0f5bf4
Merge remote-tracking branch 'drinkcat/kiwi-fix-keyboard'
dnschneid Jan 12, 2015
b5a7f26
Bump extension version to 2.1.0
dnschneid Jan 12, 2015
640db45
Merge branch 'pr-targets' of https://github.com/divx118/crouton
dnschneid Jan 13, 2015
2e7b8ed
Extension: Notification handling
drinkcat Jan 14, 2015
6c1198c
websocket: Correctly handle requests from extension
drinkcat Jan 16, 2015
13b9df0
croutonxinitrc-wrapper/xiwi: Reapply xkbcomp
drinkcat Jan 17, 2015
76a0205
enter-chroot: Do not fail if /var/run/cras does not exist
drinkcat Jan 17, 2015
91d1d6c
Merge pull request #1349 from drinkcat/kiwi-fix-autorepeat
dnschneid Jan 19, 2015
ed81550
keycode_converter.h: Constructor is explicit.
drinkcat Jan 14, 2015
d6826d4
kiwi: Pretty handling of warnings/errors.
drinkcat Jan 14, 2015
b536795
kiwi: Throw warning/errors as needed
drinkcat Jan 14, 2015
b09f3a4
kiwi: Fix connection retry code.
drinkcat Jan 14, 2015
c002342
Slightly better close button UI.
drinkcat Jan 14, 2015
6aac2c2
extension: Bump version to 2.1.1
drinkcat Jan 14, 2015
c96644d
enter-chroot/audio: Fix warning text
drinkcat Jan 19, 2015
a983b44
audio/cras: Remove uneeded patches.
drinkcat Jan 7, 2015
aa6631c
wrapper.sh: Update minimum version to 5712/35.
drinkcat Jan 19, 2015
804444c
audio/cras: Remove SBC dependency from cras_test_client
drinkcat Jan 7, 2015
4b0355a
tests: Remove references to libsbc1
drinkcat Jan 19, 2015
d11daa2
Merge pull request #1350 from drinkcat/audio-fix-nocras
dnschneid Jan 19, 2015
af3d10f
window.html: Space out rgba
drinkcat Jan 21, 2015
3c48b5c
Merge pull request #1353 from drinkcat/cras-fixes
dnschneid Jan 22, 2015
bd441b9
Merge branch 'kiwi-fix-keyboard-2' of https://github.com/drinkcat/chr…
dnschneid Jan 22, 2015
04f9c87
Update README.md
DennisLfromGA Jan 22, 2015
f0efd75
Update README.md
DennisLfromGA Jan 22, 2015
5621444
kiwi: Compensate for page zoom in resize messages to/from JS.
drinkcat Jan 22, 2015
d105509
kiwi: GetCSSScale() gives DIP/CSS pixels ratio.
drinkcat Jan 22, 2015
4c69f84
Merge pull request #1370 from drinkcat/kiwi-fix-zoom
dnschneid Jan 22, 2015
0ad2d48
Bump extension version.
dnschneid Jan 22, 2015
c91e67d
Update README.md
DennisLfromGA Jan 22, 2015
f730108
Update README.md
DennisLfromGA Jan 22, 2015
acd575f
Merge pull request #1369 from DennisLfromGA/patch-2
dnschneid Jan 22, 2015
3b79cb7
croutonnotify: Argument-less -d
drinkcat Jan 23, 2015
63ebea8
croutonnotify: Escape reverse solidi and quotation marks.
drinkcat Jan 23, 2015
7f2cfc2
croutonnotify: Add example of how icon data can be embedded
drinkcat Jan 23, 2015
58170ad
Update enter-chroot
DennisLfromGA Jan 27, 2015
90d0469
croutonfindnacl: Match Chromium shm as well.
drinkcat Jan 27, 2015
e1bcac2
Merge pull request #1382 from drinkcat/findnacl-chromium
dnschneid Jan 27, 2015
df484b3
croutonnotify: Allow icon specification with '-i icon' parameter.
drinkcat Jan 28, 2015
79b1a82
Update enter-chroot
DennisLfromGA Jan 29, 2015
1ff0ad1
Updare enter-chroot
DennisLfromGA Jan 29, 2015
0e4f971
Update chroot
DennisLfromGA Jan 31, 2015
9f464e2
Merge branch 'patch-3' of https://github.com/DennisLfromGA/crouton
dnschneid Feb 7, 2015
a82fe86
Merge branch 'extension-notifications' of https://github.com/drinkcat…
dnschneid Feb 7, 2015
4a26158
croutonnotify: fix newline escaping and add SVG support
dnschneid Feb 7, 2015
bd7e119
Bump extension version
dnschneid Feb 7, 2015
3401dc4
Fix switching to displays with .0's at the end
dnschneid Feb 7, 2015
400c919
autotest: Remove hack to download crouton autotest
drinkcat Feb 11, 2015
4a0878e
Merge pull request #1405 from drinkcat/autotest-remove-hack
dnschneid Feb 11, 2015
e561cd9
Add xmethod
DennisLfromGA Feb 14, 2015
4dfe9e0
Make croutonfbserver setuid root. Workaround for #1411.
dnschneid Feb 14, 2015
fe8e6de
Merge pull request #1413 from DennisLfromGA/patch-4
dnschneid Feb 15, 2015
67287ef
chroot-etc/xserverrc-x11-freon
drinkcat Nov 14, 2014
fe5bfb2
freon.c: Dark magic LD_PRELOAD hack to make X11 happy in freon
drinkcat Nov 14, 2014
3a9a1f2
Add support for Xorg on K1 (after 6689).
dnschneid Jan 15, 2015
52aaa43
Dedup makefile
dnschneid Feb 7, 2015
2c1cd34
Compile and install croutonfreon.so
dnschneid Feb 7, 2015
5d9d41a
Fix compile warnings and clean up dbus calls
dnschneid Feb 7, 2015
93f2408
Support Freon in xserverrc-xorg
dnschneid Feb 7, 2015
c151589
Add display lock file to coordinate active display
dnschneid Feb 9, 2015
6b77a8a
Add freon support to croutoncycle
dnschneid Feb 9, 2015
bbc34f4
Use SNA+TearFree if FBC is present.
dnschneid Feb 10, 2015
e78267c
Fix target display switching and xiwi switching with Xephyr
dnschneid Feb 12, 2015
63faaa5
Add triggerhappy as the system-wide keyboard daemon
dnschneid Feb 14, 2015
2646a9f
Disallow launching Xorg from frecon
dnschneid Feb 12, 2015
f11169f
Kill frecon on launching xorg to workaround crbug.com/457075
dnschneid Feb 15, 2015
89ebac8
Replace triggerhappy with croutontriggerd.
dnschneid Feb 20, 2015
5559e43
Style improvements.
dnschneid Feb 20, 2015
ff230e8
Test xorg on K1 as well
dnschneid Feb 21, 2015
3d32410
Need bsdmainutils for hexdump
dnschneid Feb 23, 2015
0a03d84
Fix croutontriggerd on 32-bit systems
dnschneid Feb 23, 2015
295d91f
log invalid signatures
DennisLfromGA Feb 24, 2015
e61516a
Merge pull request #1415 from dnschneid/x11_freon
dnschneid Feb 26, 2015
060367f
Merge pull request #1437 from DennisLfromGA/patch-1
dnschneid Feb 26, 2015
230a1af
Fix X11 backend selection
dnschneid Feb 27, 2015
1a7e5f8
Prevent X11 from touching the vgem device, which is broken in stock Xorg
dnschneid Feb 27, 2015
24fa73b
Use the display number in the log filename for freon.
dnschneid Feb 27, 2015
b207e73
Use croutonfreon.so for xiwi too.
dnschneid Feb 27, 2015
302d2ef
Fix xorg+xiwi on precise. Fixes #1294
dnschneid Feb 27, 2015
841ff62
Install dmz-cursor-theme in x11-common
dnschneid Feb 27, 2015
2331c99
Move vgem workaround to its own .so and use on all platforms
dnschneid Feb 27, 2015
3811e6a
Fix edit-chroot move filesystem check. Fixes 1441
dnschneid Mar 1, 2015
942fcc6
Print out all of the pids stopping unmount-chroot, not just one
dnschneid Mar 1, 2015
f551e0a
Ignore processes that session_manager has inherited.
dnschneid Mar 1, 2015
500c882
Initial hack of a "xiwi" application that runs an app in its own cros…
dnschneid Nov 26, 2014
b794af1
It's a window, not a tab.
dnschneid Feb 17, 2015
10128f2
Generate kiwi window title based off of active window
dnschneid Feb 17, 2015
1c2e9e1
extension: Always send confirmation when receiving a windowlist
dnschneid Feb 17, 2015
232e557
Push windowlist updates on window switch
dnschneid Feb 17, 2015
2cd539c
Update xiwi on title change
dnschneid Feb 17, 2015
ab9d15d
Improve app close responsiveness/correctness.
dnschneid Feb 17, 2015
4c3b82a
Set the root cursor
dnschneid Feb 18, 2015
9bac29a
Prevent crouton from segfaulting on bad cursors.
dnschneid Feb 18, 2015
e325260
kiwi: fall back on the default cursor when data is unavailable
dnschneid Feb 18, 2015
4483c65
Revert "kiwi: fall back on the default cursor when data is unavailable"
dnschneid Feb 18, 2015
77df2b3
Add nicer help and tip text for the xiwi command.
dnschneid Feb 18, 2015
f041008
Add in-app window cycling shortcuts.
dnschneid Feb 21, 2015
c00398f
Bump extension version and remove unneeded tabs permission.
dnschneid Feb 22, 2015
a3ec7c3
Handle commands like "xiwi startxfce4" correctly.
dnschneid Feb 23, 2015
cafd389
Merge branch 'xiwi-app'
dnschneid Mar 1, 2015
80da699
Xiwi doesn't need croutonfreon.so anymore
dnschneid Mar 1, 2015
550afdb
Patch Xorg to avoid udev probing.
dnschneid Mar 4, 2015
9a13a2f
selectively apply vgem hack
Mar 16, 2015
be252af
Merge pull request #1509 from smibarber/undo-vgem-hack
Mar 17, 2015
9678b5a
croutonversion: Add kernel version and freon status to croutonversion
drinkcat Mar 23, 2015
b916dad
Glory to bots. May they rule the world in their infinite wisdom.
dnschneid Mar 23, 2015
4348d5f
Merge pull request #1528 from drinkcat/improve-croutonversion
dnschneid Mar 23, 2015
75f252c
croutoncycle: Fix croutoncycle display/list with Xephyr
drinkcat Mar 23, 2015
98ba02a
extension: Test for view.document.readyState instead of document.
drinkcat Mar 23, 2015
9e9469f
Fix X11 auto-selection for Tegra K1.
dnschneid Mar 26, 2015
d108727
Handle the eventual move of Samsung Exynos to Freon
dnschneid Mar 26, 2015
7ade068
Merge pull request #1530 from drinkcat/extension-fix-readytest
dnschneid Mar 26, 2015
f7b2a0a
Merge pull request #1529 from drinkcat/croutoncycle-fix-xephyr
dnschneid Mar 26, 2015
e8d61ee
Add croutonversion
DennisLfromGA Mar 26, 2015
5bd432f
croutontriggerd: Support use of right-{ctrl,shift,alt} in trigger.
mkasick Mar 26, 2015
2e00457
Merge pull request #1540 from mkasick/croutontriggerd
dnschneid Mar 28, 2015
699f70c
Merge pull request #1542 from DennisLfromGA/patch-1
dnschneid Mar 28, 2015
cf2aacb
Update CONTRIBUTORS
dnschneid Mar 28, 2015
07facb0
xiwi-app: use i3 instead of ratpoison
dnschneid Mar 26, 2015
8c200a9
xiwi: Minor cleanup
dnschneid Mar 26, 2015
e844948
Allow for user-specific init scripts for xiwi apps.
dnschneid Mar 28, 2015
6b1fd1e
Merge pull request #1546 from dnschneid/i3xiwi
dnschneid Mar 31, 2015
f94a274
Add -f to xiwi to force xiwi to remain open
dnschneid Mar 28, 2015
a743331
Improve error logging in fbserver.c
dnschneid Mar 31, 2015
0cdb49a
Add CROUTON_CONNECTED property for xiwi displays
dnschneid Mar 31, 2015
21bf27c
xiwi -f: close when the window is closed if nothing is shown
dnschneid Mar 31, 2015
589ee11
Merge pull request #1564 from dnschneid/xiwif
dnschneid Mar 31, 2015
8ee3149
Recursively autobuild the extension pnacl
dnschneid Mar 31, 2015
a9f5bfd
Support parameters in XMETHOD
dnschneid Mar 31, 2015
3517fd8
Support extra parameters when launching xiwi windows.
dnschneid Mar 1, 2015
66f4a55
Pass xiwi args to the extension
dnschneid Mar 31, 2015
82d1ed1
xiwi: start in windowed mode unless -F is supplied.
dnschneid Mar 31, 2015
8421b0a
Remove unnecessary quotes on object definitions.
dnschneid Apr 1, 2015
a684c8c
Tab support!
dnschneid Apr 1, 2015
1cd2666
Various review fixes.
dnschneid Apr 2, 2015
f95420f
Enable javascript strict mode
dnschneid Apr 2, 2015
4fbc34d
Fix race between tab/window creation and registration
dnschneid Apr 2, 2015
67b3ccf
Simplify the titlebar.
dnschneid Apr 2, 2015
018b33b
Clean up argument processing
dnschneid Apr 2, 2015
d35137a
Close tags and provide style type
dnschneid Apr 2, 2015
6be9f07
xiwi: check for a valid command before launching X server
dnschneid Apr 2, 2015
1edd881
Blank out the title if no window is detected
dnschneid Apr 2, 2015
8a2aa00
xiwi: Detect immediate forks and infer -f for them.
dnschneid Apr 2, 2015
37dc572
Fix key generation to not settle for 62 or 63 bytes.
dnschneid Apr 2, 2015
e3f4ac1
xiwi: make the window close immediately on quit.
dnschneid Apr 2, 2015
21e74bc
Send croutonversion to stderr, not stdout
dnschneid Apr 2, 2015
8eea9d6
Merge branch 'xiwiwindow'
dnschneid Apr 5, 2015
d6ad777
Fix error with old chroots
dnschneid Apr 5, 2015
66d0393
Bump extension version
dnschneid Apr 5, 2015
84a004a
mkpart.sh: Create a separate partition for crouton.
drinkcat Mar 17, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
*.tar.*
.*.swp
.*.tmp
nacl_sdk/
/crouton*
/tests/run
/releases/
9 changes: 9 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
##For users who want to report an issue
Please read [this wiki page]
(https://github.com/dnschneid/crouton/wiki/Common-issues-and-reporting)
for instructions on reporting an issue.

##For contributors
Please read [this
section](https://github.com/dnschneid/crouton#i-want-to-be-a-contributor)
of the README and the following relevant sections first.
3 changes: 3 additions & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ John Tantalo
Maurice van Kruchten
Micah Lee
Michael Orr
Mike Kasick
Mikito Takada
Nevada Romsdahl
Nicolas Boichat
Stephen Barber
Steven Maude
Tobbe Lundberg
Tony Xue
Yuri Pole
22 changes: 20 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,26 @@ SCRIPTS := \
$(wildcard installer/*/*) \
$(wildcard src/*) \
$(wildcard targets/*)
EXTPEXE = host-ext/crouton/kiwi.pexe
EXTPEXESOURCES = $(wildcard host-ext/nacl_src/*.h) \
$(wildcard host-ext/nacl_src/*.cc)
EXTSOURCES = $(wildcard host-ext/crouton/*)
GENVERSION = build/genversion.sh
CONTRIBUTORSSED = build/CONTRIBUTORS.sed
RELEASE = build/release.sh
VERSION = 1
TARPARAMS ?= -j

CFLAGS=-g -Wall -Werror -Os

croutoncursor_LIBS = -lX11 -lXfixes -lXrender
croutonfbserver_LIBS = -lX11 -lXdamage -lXext -lXfixes -lXtst
croutonwmtools_LIBS = -lX11
croutonxi2event_LIBS = -lX11 -lXi

croutonwebsocket_DEPS = src/websocket.h
croutonfbserver_DEPS = src/websocket.h

ifeq ($(wildcard .git/HEAD),)
GITHEAD :=
else
Expand All @@ -50,8 +59,17 @@ $(TARGET): $(WRAPPER) $(SCRIPTS) $(GENVERSION) $(GITHEAD) Makefile
$(EXTTARGET): $(EXTSOURCES) Makefile
rm -f $(EXTTARGET) && zip -q --junk-paths $(EXTTARGET) $(EXTSOURCES)

$(SRCTARGETS): src/$(patsubst crouton%,src/%.c,$@) Makefile
gcc -g -Wall -Werror $(patsubst crouton%,src/%.c,$@) $($@_LIBS) -o $@
$(EXTPEXE): $(EXTPEXESOURCES)
$(MAKE) -C host-ext/nacl_src

$(SRCTARGETS): src/$(patsubst crouton%,src/%.c,$@) $($@_DEPS) Makefile
gcc $(CFLAGS) $(patsubst crouton%,src/%.c,$@) $($@_LIBS) -o $@

croutonfreon.so: src/freon.c Makefile
gcc $(CFLAGS) -shared -fPIC src/freon.c -ldl -o croutonfreon.so

croutonxorg.so: src/xorg.c Makefile
gcc $(CFLAGS) -shared -fPIC src/xorg.c -ldl -o croutonxorg.so

extension: $(EXTTARGET)

Expand Down
41 changes: 33 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,21 @@ to the rest of Chromium OS.
Prerequisites
-------------
You need a device running Chromium OS that has been switched to developer mode.

For instructions on how to do that, go to [this Chromium OS wiki page]
(http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices),
click on your device model and follow the steps in the *Entering Developer Mode*
section.

Note that developer mode, in its default configuration, is *completely
insecure*, so don't expect a password in your chroot to keep anyone from your
data. crouton does support encrypting chroots, but the encryption is only as
strong as the quality of your passphrase. Consider this your warning.

It's also highly recommended that you install the [crouton extension]
(https://goo.gl/OVQOEt), which, when combined with the `extension` or `xiwi`
targets, provides much improved integration with Chromium OS.

That's it! Surprised?


Expand Down Expand Up @@ -99,7 +109,8 @@ Examples
6. Exit the chroot by logging out of Xfce.

### With encryption!
1. Add the `-e` parameter when you run crouton to create an encrypted chroot.
1. Add the `-e` parameter when you run crouton to create an encrypted chroot
or encrypt a non-encrypted chroot.
2. You can get some extra protection on your chroot by storing the decryption
key separately from the place the chroot is stored. Use the `-k` parameter
to specify a file or directory to store the keys in (such as a USB drive or
Expand All @@ -111,22 +122,31 @@ Examples
2. Run `sh ~/Downloads/crouton -r list` to list the recognized releases and
which distros they belong to.

### Wasteful rendundancies are wasteful: one clipboard, one browser, one window
1. Install the [crouton extension](https://goo.gl/OVQOEt) into Chromium OS.
2. Add the `extension` or `xiwi` version to your chroot.
3. Try some copy-pasta, or uninstall all your web browsers from the chroot.

*Installing the extension and its target gives you synchronized clipboards, the
option of using Chromium OS to handle URLs, and allows chroots to create
graphical sessions as Chromium OS windows.*

### I don't always use Linux, but when I do, I use CLI
1. You can save a chunk of space by ditching X and just installing
command-line tools using `-t core` or `-t cli-extra`
2. Enter the chroot in as many crosh shells as you want simultaneously using
`sudo enter-chroot`
3. Use the [Crosh Window](https://goo.gl/eczLT) extension to keep Chromium OS
from eating standard keyboard shortcuts.
4. If you installed cli-extra, `startcli` will launch a new VT right into the
chroot.

### A new version of crouton came out; my chroot is therefore obsolete and sad
1. Check for updates, download the latest version, and see what's new by
running `croutonversion -u -d -c` from the chroot (run `croutonversion -h`
to see what those parameters actually do).
2. Exit the chroot and run `sudo sh ~/Downloads/crouton -u -n chrootname`.
It will update all installed targets.
3. You can use this with `-e` to encrypt a non-encrypted chroot, but make sure
you don't interrupt the operation.

### A backup a day keeps the price-gouging data restoration services away
1. `sudo edit-chroot -b chrootname` backs up your chroot to a timestamped
Expand Down Expand Up @@ -160,7 +180,8 @@ Examples
3. Include the `-r` parameter if you want to specify for which release to
prepare a bootstrap.
4. You can then create chroots using the tarball by running
`sudo sh ~/Downloads/crouton -f ~/Downloads/mybootstrap.tar.bz2`
`sudo sh ~/Downloads/crouton -f ~/Downloads/mybootstrap.tar.bz2`. Make sure
you also specify the target environment with `-t`.

*This is the quickest way to create multiple chroots at once, since you won't
have to determine and download the bootstrap files every time.*
Expand All @@ -184,7 +205,7 @@ Tips
* Chroots are cheap! Create multiple ones using `-n`, break them, then make
new, better ones!
* You can change the distro mirror from the default by using `-m`
* Behind a proxy? `-P` lets you specify one.
* Want to use a proxy? `-P` lets you specify one (or disable it).
* A script is installed in your chroot called `brightness`. You can assign
this to keyboard shortcuts to adjust the brightness of the screen (e.g.
`brightness up`) or keyboard (e.g. `brightness k down`).
Expand All @@ -198,6 +219,8 @@ Tips
`croutonpowerd -i command and arguments` will automatically stop inhibiting
power management when the command exits.
* Have a Pixel or two or 4.352 million? `-t touch` improves touch support.
* Want to share some files and/or folders between ChromeOS and your chroot?
Check out the `/etc/crouton/shares` file, or read all about it in the wiki.
* Want more tips? Check the [wiki](https://github.com/dnschneid/crouton/wiki).


Expand All @@ -207,13 +230,14 @@ Running another OS in a chroot is a pretty messy technique (although it's hidden
behind very pretty scripts), and these scripts are relatively new, so problems
are not surprising. Check the issue tracker and file a bug if your issue isn't
there. When filing a new bug, include the output of `croutonversion` run from
inside the chroot (if possible).
inside the chroot or, if you cannot mount your chroot, include the output
of `cat /etc/lsb-release` from Crosh.


I want to be a Contributor!
---------------------------
That's great! But before your code can be merged, you'll need to have signed
the [Individual Contributor License Agreement](https://developers.google.com/open-source/cla/individual#sign-electronically).
the [Individual Contributor License Agreement](https://cla.developers.google.com/clas/new?kind=KIND_INDIVIDUAL&domain=DOMAIN_GOOGLE).
Don't worry, it only takes a minute and you'll definitely get to keep your
firstborn, probably. If you've already signed it for contributing to Chromium
or Chromium OS, you're already done.
Expand Down Expand Up @@ -243,7 +267,8 @@ But how?
There's a way For Everyone to help!

* Something broken? File a bug! Bonus points if you try to fix it. It helps if
you provide the output of `croutonversion` when you submit the bug.
you provide the output of `croutonversion` (or the output of
`cat /etc/lsb-release` from Crosh) when you submit the bug.
* Want to try and break something? Look through [requests for testing](https://github.com/dnschneid/crouton/issues?labels=needstesting&state=open)
and then do your best to brutally rip the author's work to shreds.
* Look through [open issues](https://github.com/dnschneid/crouton/issues?state=open)
Expand Down
31 changes: 29 additions & 2 deletions build/wrapper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ set -e

VERSION='git'

# Minimum Chromium OS version is R31 stable
CROS_MIN_VERS=4731
# Minimum Chromium OS version is R35 stable
CROS_MIN_VERS=5712

if [ "$1" = '-x' -a "$#" -le 2 ]; then
# Extract to the specified directory.
Expand All @@ -62,6 +62,33 @@ if [ -z "$TRAP" ]; then
exit
fi

# See if we want to just run a script from the bundle
if [ "$1" = '-X' ]; then
script="$SCRIPTDIR/$2"
if [ ! -f "$script" ]; then
cd "$SCRIPTDIR"
echo "USAGE: ${0##*/} -X DIR/SCRIPT [ARGS]
Runs a script directly from the bundle. Valid DIR/SCRIPT combos:" 1>&2
ls chroot-bin/* host-bin/* 1>&2
if [ -n "$2" ]; then
echo 1>&2
echo "Invalid script '$2'" 1>&2
fi
exit 2
fi
shift 2
# If this script was called with '-x' or '-v', pass that on
SETOPTIONS="-e"
if set -o | grep -q '^xtrace.*on$'; then
SETOPTIONS="$SETOPTIONS -x"
fi
if set -o | grep -q '^verbose.*on$'; then
SETOPTIONS="$SETOPTIONS -v"
fi
sh $SETOPTIONS "$script" "$@"
exit "$?"
fi

# Execute the main script inline. It will use SCRIPTDIR to find what it needs.
. "$SCRIPTDIR/installer/main.sh"

Expand Down
32 changes: 32 additions & 0 deletions chroot-bin/crouton-noroot
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/sh -e
# Copyright (c) 2014 The crouton Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Wrapper for scripts that shouldn't be launched as root.
# Symlink to launch the application with the same name in /usr/bin/
# Launch directly with a parameter to launch that executable
# Launch directly with a blank or - first parameter and a word to just check and
# exit with an exit code, printing out the second parameter as the app name.

APPLICATION="${0##*/}"
if [ "$APPLICATION" = 'crouton-noroot' ]; then
if [ -z "$1" -o "$1" = '-' -o "$1" = '--' ]; then
APPLICATION=''
else
APPLICATION="$1"
shift
fi
else
APPLICATION="/usr/bin/$APPLICATION"
fi

if [ "$USER" = root -o "$UID" = 0 ]; then
app="${APPLICATION:-"$2"}"
echo "Do not launch ${app##*/} as root inside the chroot." 1>&2
exit 2
elif [ -z "$APPLICATION" ]; then
exit 0
fi

exec "$APPLICATION" "$@"
49 changes: 14 additions & 35 deletions chroot-bin/croutonclip
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,18 @@ VERBOSE=''

. "`dirname "$0"`/../installer/functions"

PIPEDIR='/tmp/crouton-ext'
PIPEIN="$PIPEDIR/in"
PIPEOUT="$PIPEDIR/out"
PIPELOCK="$PIPEDIR/lock"

# Write a command to croutonwebsocket, and read back response
websocketcommand() {
# Check that $PIPEDIR and the FIFO pipes exist
if ! [ -d "$PIPEDIR" -a -p "$PIPEIN" -a -p "$PIPEOUT" ]; then
echo "EError $PIPEIN or $PIPEOUT are not pipes."
exit 0
fi

(
flock 5
cat > "$PIPEIN"
cat "$PIPEOUT"
) 5>"$PIPELOCK"
}

# rundisplay :X cmd ...
# Run a command on the specified display (uses host-x11 on :0)
# Run a command on the specified display
rundisplay() {
local disp="$1"
shift
if [ "$disp" = ":0" ]; then
host-x11 "$@"
else
(
# If display is :0, setup XAUTHORITY
if [ "$disp" = ":0" ]; then
eval "`host-x11`" 2>/dev/null
fi
DISPLAY="$disp" "$@"
fi
)
}

copyclip() {
Expand All @@ -60,7 +42,7 @@ copyclip() {

# Copy clipboard content from the current display
{
if [ "$current" = 'aura' ]; then
if [ "$current" = 'cros' ]; then
echo -n 'R' | websocketcommand
else
# Check if display is still running
Expand All @@ -81,7 +63,7 @@ copyclip() {
fi

# Paste clipboard content to the next display
if [ "$next" = 'aura' ]; then
if [ "$next" = 'cros' ]; then
STATUS="`(echo -n 'W'; cat) | websocketcommand`"
if [ "$STATUS" != 'WOK' ]; then
# Write failed, skip Chromium OS (do not update $current)
Expand Down Expand Up @@ -138,19 +120,16 @@ waitwebsocket() {

# Assume current display is Chromium OS: avoid race as we may not be able to
# detect the first VT/window change.
current='aura'

# Only let one instance *really* run at a time
PIDFILE='/tmp/crouton-lock/clip'
current='cros'

mkdir -m 775 -p /tmp/crouton-lock
exec 3>>"$PIDFILE"
mkdir -m 775 -p "$CROUTONLOCKDIR"
exec 3>>"$CROUTONLOCKDIR/clip"
if ! flock -n 3; then
echo "Another instance of croutonclip running, waiting..."
flock 3
fi

addtrap "echo -n > '$PIDFILE' 2>/dev/null"
addtrap "echo -n > '$CROUTONLOCKDIR/clip' 2>/dev/null"

(
# This subshell handles USR1 signals from croutoncycle.
Expand All @@ -172,7 +151,7 @@ addtrap "echo -n > '$PIDFILE' 2>/dev/null"
trap "echo 'USR1'" USR1

# Set the PID of this subshell after the trap is in place
sh -c 'echo -n "$PPID"' > "$PIDFILE"
sh -c 'echo -n "$PPID"' > "$CROUTONLOCKDIR/clip"

# Force an update when started.
echo "Force"
Expand Down
Loading