done.mdwn 7.02 KB
Newer Older
Tails developers's avatar
Tails developers committed
1
2
Here's what we've done so far, based on Fedora's liveusb-creator codebase.

Tails developers's avatar
Tails developers committed
3
4
[[!toc levels=2]]

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Decide
======

default / minimal system partition size =

	Tails ISO = 1GB
	+ 3 * incremental upgrades (60MB) = 180MB
	=> let's say 1.5GB

Unprivileged mode
=================

- allow running without being root (opt-in command-line switch)
"mount -o loop" is not an option to run unprivileged. Only used in
LinuxLiveUSBCreator's extract_iso.

- use genisoimage's isoinfo to extract arbitrary files from an ISO9660
  image;
  * example uses in Python:
    · /usr/bin/ubuntu-iso (apt-get install ubuntu-dev-tools)
    · http://uniso.svn.sourceforge.net/viewvc/uniso/trunk/uniso?revision=7&view=markup
  * no support for recursive extraction, but can list FS content:
    isoinfo -f -R -J -i test.iso | grep '^/isolinux/'
  * in Debian and Fedora 
- bsdtar supports iso9660 thanks to libarchive; in Debian, not in Fedora
- http://pypi.python.org/pypi/pycdio/ (not in Debian)

Add Debian Live support
=======================

- detect a given ISO file contains a Debian Live system
  extract /.disk/info from ISO filesystem, `grep '^Debian GNU/Linux'`

Clone
=====

In Tails VM (virtualized CD), cloning to USB FAT32 partition works.

* fix cloning to FAT32 filesystem: move doc from binary_local-includes
  to chroot_local-includes

cloning from USB
----------------

- add --clone-running and --clone-medium options
- implement USBSource class
- update delete_liveos to fix full upgrade usecase
- Python for Windows is unable to delete read-only files; the way the
  current code deals with that only works for one level of directory
  depth (works for syslinux/*, but not for doc/*/*)

Branding
========

* Allow disabling the download feature.

Allow defaults/vendor/site configuration of the
window title, download widget title, and custom artwork.

Currently supported config options (in the "branding" section) are:

  - distribution: name used in window title and download widget title
  - header: pixmap displayed on top of the main dialog

These options can be set in /etc/liveusb-creator/{vendor,site}.ini.

Both Qt resources and regular paths are supported for the "header"
option:

	# Qt resource
	[branding]
	distribution = Tails
	header = :/tails-liveusb-header.png

	# Regular path
	[branding]
	distribution = Tails
	header = /path/to/tails-liveusb-header.png

* partition label (currently: FEDORA)

Misc
====

- fix string.encode('utf-8', 'replace')
- decode/encode popen commands output like creator's popen wrapper
- virer le QPixmap proxies dans pyuicc4_custom
Tails developers's avatar
Tails developers committed
92
93
- .desktop file uses `Icon=fedorausb.png` => use a more generic icon
  [intrigeri]
Tails developers's avatar
Tails developers committed
94
- write minimal manpage
95
96
97
98
99
100
101
102
103
104

User interface
==============

- confirmation dialog: all content previously stored on the target
  device will be "lost" (not securely erased, but still...)
   ==> code is mostly there, begining at
       gui.py:LiveUSBDialog.begin()
- keep or change the current way to warn and ask confirmation?
  ===> Keep
Tails developers's avatar
Tails developers committed
105
106
107
- UI: make it more clear when the user must confirm
  Rename the "Create" button to "Forward" or "Go on"?
  Add the "go forward" icon to the button? [intrigeri]
108

Tails developers's avatar
Done.    
Tails developers committed
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Launchers
---------

We need to pass the `-u` and `-n` switches in any case; specific modes
of operation need other switches:

   * Initial installation needs `-P` and `-m`, upgrade does not.
   * Cloning needs `--clone`, installing from ISO does not.

We have `.desktop` files for the following usecases:

 * Clone the currently running Tails onto a shiny new USB stick:
   `--clone -P -m`
 * Upgrade a (non-running) Tails system using a ISO file: no
   additional switch required.
Tails developers's avatar
Tails developers committed
124
125
 * Upgrade a (non-running) Tails system using another, fresher,
   running Tails: no additional switch required.
Tails developers's avatar
Done.    
Tails developers committed
126
127
128
129
130
131

Note for later: having *Clone the currently running Tails system* as
an option in the UI would allow us separate usecases based on the
action to be done (install vs. upgrade) rather than based on the
source of the installation / upgrade.

132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
Partitions
==========
  
- check extlinux exists on Windows
   -> http://www.ehow.com/how_7492668_create-ext2-partition-windows.html
   NOT GOING TO HAPPEN, there's nothing real/free/scriptable

In feature/ignore_source_device branch, based on the feature/partitioning one:
- remove the source device from the list of possible target devices
  when --clone and running from USB
- remove the device that contains the ISO file from the list

- create the system partition with the computed size
  (see `gpt` for details on how to do it using gdisk/sgdisk)
- create a suitable filesystem on the system partition
- detect existing Tails on selected installation medium and act
  accordingly
  (do not repartition the whole disk and format first partition only)

- allow replacing the overlay slider with a simple checkbox
  => Done in branch feature/persistence_checkbox
    (left to do: update pot/po files)
- allow hiding any persistence (overlay slider, persistence checkbox)
  => Done in branch feature/persistence_checkbox
Tails developers's avatar
Tails developers committed
156
157
158
- Don't ask to confirm before resetting the MBR when using
  `--partition`: done in 5028cb0.
- if stick size <1.5GB, error out in a user-friendly way [intrigeri]
Tails developers's avatar
Tails developers committed
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212

Testing
=======

3.11.4-2~4.gbp9e95fa
--------------------

* cloning onto a USB stick that already has a FAT32 partition.
* installing onto a USB stick that has a MBR partition table, and no
  partition at all.
* installing onto a USB stick that already has a old-fashioned cat'd
  Tails on it, using the *Upgrade from running* function: warns this
  action is not supported, correctly directs the user to the
  *Clone* launcher.
* installing onto a USB stick that already has a old-fashioned cat'd
  Tails on it using the *Clone Tails* function.
* test cloning from USB on bare metal
* booting from a Tails installed by this installer
* upgrading from ISO file while running a Tails system
* upgrading from CD on bare metal
* cloning from CD on bare metal
* boot from a Tails upgraded by this installer
* test "emergency shutdown on boot medium removal" feature, on Tails
  system installed by this installer

### From Tails installed by this installer

* test cloning a running Tails that was itself installed using this
  installer, onto a USB stick that already has a old-fashioned cat'd
  Tails on it

3.11.4-6
--------

Most of this was run from a Tails system installed by this installer:

* cloning onto a USB stick
* cloning onto a USB stick that has a MBR partition table, and no
  partition at all.
* upgrading from running system
* upgrading from CD on bare metal
* cloning from CD on bare metal
* cloning onto a USB stick
* installing onto a USB stick that already has a old-fashioned cat'd
  Tails on it, using the *Upgrade from running* function: warns this
  action is not supported, correctly directs the user to the
  *Clone* launcher.
* cloning a running Tails onto a USB stick that already has
  a old-fashioned cat'd Tails on it
* upgrading from ISO file while running a Tails system
* test "emergency shutdown on boot medium removal" feature, on Tails
  system installed by this installer
* booting from a Tails installed by this installer
* boot from a Tails upgraded by this installer