~ubuntu-branches/ubuntu/wily/marionnet/wily

« back to all changes in this revision

Viewing changes to TODO

  • Committer: Package Import Robot
  • Author(s): Lucas Nussbaum
  • Date: 2013-03-29 15:57:12 UTC
  • Revision ID: package-import@ubuntu.com-20130329155712-o0b9b96w8av68ktq
Tags: upstream-0.90.6+bzr407
Import upstream version 0.90.6+bzr407

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
To do:
 
2
======
 
3
 
 
4
+ DVD support: added a missing 'linux-default' link referring the default virtual
 
5
  computer filesystem, and another one for the router.
 
6
  This doesn't imply any source changes, but we write this entry here so that it
 
7
  is recorded in our 'history'. This is a change against the 0.50.0-pre1 DVD, which
 
8
  we explicitly *DON't* support, because it's a prerelease.
 
9
 
 
10
+ Moved the Xnest keyboard layout setting support from the host to the guest.
 
11
 
 
12
+ Added keyboard layout choosing support in Xnest guest sessions, via the new environment
 
13
  variable MARIONNET_KEYBOARD_LAYOUT.
 
14
 
 
15
+ 'Change working directory' now fails when given a path mounted on a filesystem
 
16
  without sparse file support, as it should
 
17
 
 
18
+ Now also *directory* names (and not only file names) are checked for the absence
 
19
  of funny characters, in 'Change working directory', 'New project', 'Save As' and
 
20
  'Copy Into'.
 
21
 
 
22
+ Hidden the 'work-around the wirefilter problem' menu item
 
23
 
 
24
+ Routers need an implicit variant, which is always selected if it exists.
 
25
 
 
26
+ Bugfix: I was using memq in several places, without knowing it compared by identity.
 
27
 
 
28
+ Minor bugfix: non-existing cow files (i.e. clean-state filesystems) can now be
 
29
  exported as variants without the interface complaining.
 
30
 
 
31
+ The gateway tap name is now randomly chosen.
 
32
 
 
33
+ Treeview_defects, Treeview_ifconfig: minor refactoring
 
34
 
 
35
+ Exam mode: reports importing is now supported also for routers.
 
36
 
 
37
+ Made the Ethernet socket host bridge name configurable via the new environment 
 
38
  variable MARIONNET_BRIDGE. If the variable is not defined the name defaults to
 
39
  "marbre". The `run' make target now executes Marionnet with the bridge name set
 
40
  to `br0'. Jean-Vincent can easily imagine why :-).
 
41
 
 
42
+ Simple_dialogs, Talking: made question and confirm dialogs unclosable: now the only
 
43
  way to close them is by pushing a button.
 
44
 
 
45
+ When in exam mode the shell history is now imported as a document at shutdown
 
46
  time, just like the report (this requires the new machine filesystem I've
 
47
  uploaded to marionnettix)
 
48
 
 
49
+ Bumped version number
 
50
 
 
51
+ Minor translation changes
 
52
 
 
53
+ Updated the Ethernet plug icons
 
54
 
 
55
+ Now the 'marbre' bridge is setup at startup time
 
56
  + No, not any more :-)
 
57
 
 
58
+ Minor treeview changes.
 
59
 
 
60
+ Texts treeview: added HTML support
 
61
 
 
62
+ Minor refactoring.
 
63
 
 
64
+ Automatically import exam reports into the text treeview
 
65
 
 
66
+ Added a toggle button or clickable pixmap to ledgrid windows so that they can
 
67
  be made always-on-top
 
68
 
 
69
+ Auto-generated IPv6 addressed: used a shorter and more beautiful default
 
70
 
 
71
+ Details treeview: moved the `MAC address' column
 
72
 
 
73
+ User interface: added the file name constraint also to:
 
74
  + ``Save As''
 
75
  + ``Copy into''
 
76
  + Refactored the related code
 
77
 
 
78
+ Disabled UML terminal for routers
 
79
  (look for "Change this when debugging the router device" in simulated_network.ml)
 
80
 
 
81
+- JUST BEFORE THE RELEASE:
 
82
  + enable the splash screen (marionnet.ml, at the end)
 
83
  + Autogenerate IP addresses: set the default to false
 
84
  + Add a link to Marionnet in the UML wiki (most of the projects we mentioned in the article 
 
85
    are already there): http://uml.jfdi.org/uml/Wiki.jsp?page=Tools
 
86
  + bisogna ricordarsi di mettere a zero (cat /dev/zero >> zeros; rm zeros) lo 
 
87
    spazio non utilizzato di tutti i filesystems di backend. 
 
88
    La cosa � importante per snellire la piattaforma, sia in casi come quello 
 
89
    della sala Q203 dell'IUT, sia per un'immagine knoppix un po' pi� snella
 
90
    => c'� gi� un vecchio script che fa bene questo lavoro (setfs) che devo 
 
91
       integrare agli strumenti di lavoro (bob.marionnet.* ?) 
 
92
  - About dialog: write our e-mail addresses with domain marionnet.org, as soon as they
 
93
    exist and work :-)
 
94
  +- GUI: de-activate the interface controlling unimplemented features
 
95
  - Check that the plug can be used with a guest ``dhclient'' without the UML process crashing.
 
96
    This happened to me on mccarthy when using a new kernel (2.6.22.9) *without*
 
97
    CONFIG_COMPAT_VDSO.
 
98
  - Be sure that the guest not supporting NAT kernel is not distributed; it's now useless
 
99
    and it has problems.
 
100
  + Turn on the wirefilter problem workaround thing, but with a long interval
 
101
 
 
102
 
 
103
+ Router: support a `suggested' variant which is the only used one, if it exists.
 
104
 
 
105
+ Bugfix (deadlock). To trigger: startup two machines and a switch with a and S1
 
106
  connected by a cable, and then shut down everything *after everything is up*.
 
107
  The thing does not happen without the cable. I suspect it's a deadlock in the
 
108
  new cable logic.
 
109
  + Solved this and other stuff with some very ugly kludges. Synchronization added as an
 
110
    afterthought is a mess; we knew it. [In Freiburg]
 
111
 
 
112
+ Worked around a problem with uml_console: it succeeds when sending a 'cad' message to a UML
 
113
  process which has just started; however the UML doesn't die. [In Freiburg]
 
114
 
 
115
+ Progress bar dialogs: made them unresizable
 
116
 
 
117
+ Bug: startup two machines and a switch with a and S1 connected by a cable, and then shut down
 
118
  everything *after everything is up*. The thing does not happen without the cable.
 
119
  I suspect it's a deadlock in the new cable logic. [In Freiburg]
 
120
  + Solved this and other stuff with some very ugly kludges. Synchronization added as an
 
121
    afterthought is a mess; we knew it. [In Freiburg]
 
122
 
 
123
+ Worked around a problem with uml_console: it succeeds when sending a 'cad' message to a UML
 
124
  process which has just started; however the UML doesn't die. [In Freiburg]
 
125
 
 
126
+ Progress bar dialogs: made them unresizable
 
127
 
 
128
+ Show a superimposed state indicator on device icons
 
129
  + Added the next_simulated_device_state method to simulated device, and updated the
 
130
    internal state when appropriate. The method returns a
 
131
    simulated_device_automaton_state option, using None to mean 'no transition is in
 
132
    course'.
 
133
  + Use this information in refresh_sketch [J.V.]
 
134
 
 
135
+ Prevent ``incorrect'' cables from working:
 
136
  + Essentially done, and in a clean and general way.
 
137
  + Now I only need the predicate telling whether a device is ``correct''.
 
138
 
 
139
+- gateway
 
140
  + simulation infrastructure
 
141
  + GUI bindings
 
142
  - filtering; user-provided IP address
 
143
  - Don't use a bridge??
 
144
 
 
145
+- Routers: add variant support
 
146
  + Done, except for the interface
 
147
  + Done in mariokit
 
148
  + Done in the filesystem history treeview: states can be exported as variants
 
149
  + Support variants in the GUI? Is it a good idea?
 
150
    [No, it isn't. --L.] 
 
151
+ Routers: make them work
 
152
  [J.V.]
 
153
 
 
154
+- Translate the rest of the user interface into French
 
155
 
 
156
- Gateway and host X server: use a non-hardwired bridge name
 
157
  [Well, by now I'd just say no :-) --L., in Freiburg]
 
158
 
 
159
+ Added guest swap partition support (thanks to Jean for some information I lacked)
 
160
 
 
161
+ Guest system: added a nice xfce installation to be run in Xnest sessions
 
162
 
 
163
+ Per-guest Xnest support
 
164
  + Some changes in the distribution were needed for this
 
165
 
 
166
+ Support more than one host X server, for concurrent Marionnet instances.
 
167
  + Added x.ml to implement what's needed for this
 
168
 
 
169
+ Experimented with ocaml-gettext
 
170
  + Found it to be a bit messy; we're gonna use something simpler.
 
171
 
 
172
+ Gateway: dynamically compute host tap name
 
173
 
 
174
+ Host X server access control: now it is granted and revoked more selectively, without any
 
175
  need for something ugly and insecure like "xhost +".
 
176
 
 
177
+ Fixed default values for IPv4 netmask and broadcast address
 
178
 
 
179
+ Defects: automatic device shutdown at defects update
 
180
 
 
181
- "Unexpected environment received from dialog": sometimes I get this at exit time.
 
182
  - Do I *still* get it? Maybe not...
 
183
 
 
184
+ About: move the reference to the University from 'Authors' to 'Thanks'.
 
185
 
 
186
- Cleanly exit from the main thread (with exit code EXIT_SUCCESS, of course, in case
 
187
  of no errors).
 
188
 
 
189
+ mariokit: updated some old support for variants, which had a different rationale
 
190
 
 
191
+ Implemented filesystem variants
 
192
  + in the GUI
 
193
  + in mariokit
 
194
  + in filesystem_history
 
195
  - Do it also for routers
 
196
 
 
197
+ Interface: forbid distribution change for any machine with existing non-clean states
 
198
  + Done the same also for variants
 
199
 
 
200
+ Nasty bug fix: for a filesystem foo, $MARIONNET_HOME/filesystems/foo_variants was also
 
201
  considered a filesystem image, even if it is always a directory.
 
202
 
 
203
 
 
204
+ Hide the 'Image DOT source' tab.
 
205
 
 
206
+- cloud (2 endpoints; delay and ttl decreased by a random amount in [min, max].
 
207
  + Fixed the interface code to agree with itself about how endpoints should be
 
208
    named :-)
 
209
  + Simulation part
 
210
  + Defects on by default
 
211
  - Implementation: do it as a further modification to VDE, in a special hublet
 
212
    altering the ttl field in IP packets and dropping the frame if needed
 
213
                            +-+
 
214
                       -->->|H|-+-->
 
215
                            +-+
 
216
 
 
217
+ IPv6: probably netmask and broadcast are not (explicitly) used. Fields should be
 
218
  different (I think that just an 'IPv6 address' with an updated column constraint
 
219
  would suffice).
 
220
  + Ask Jean-Vincent about this.
 
221
  - fix constraint predicate for IPv6 address validation
 
222
  - test on the guest
 
223
 
 
224
+ Marionnet Logo: replace Suse's logo with Mandriva's logo
 
225
 
 
226
-+ UI: by default the first port to connect should be the one with minimum
 
227
  index.
 
228
  - [I'm not sure it always works as I want it]
 
229
 
 
230
+ Let's set on a convention for cable colors (for example red = crossover,
 
231
  blue = straight, green = serial), and stick to it. It would be very useful
 
232
  in the 'Network details' page.
 
233
  If we want to support B/W printing we can choose colors which look "different
 
234
  enough" when printed (e.g. black and light green), or use both color and
 
235
  thickness.
 
236
  + [tentatively: red for cross-over, blue for straight, black for serial. This 
 
237
     convention is used in the defects interface]
 
238
  + Do it for the graph [J.V.]
 
239
 
 
240
+ Added a 'reboot' functionality for devices.
 
241
 
 
242
+ Treeview: added whole-row "after update" callback
 
243
 
 
244
+ UML process: non-graceful startup is now implemented first with uml_mconsole halt, and
 
245
  --if this fails-- with signals. Also hung UMLs should be correctly killed this way.
 
246
 
 
247
+ Reduced progress bar pusling overhead
 
248
 
 
249
+ Hublet spawn: get rid of the sleep kludge. This is actually *unsafe*, and can fail with
 
250
  large networks.
 
251
  + The new version is safe and also way faster.
 
252
 
 
253
+ Killing processes: also UML appears to be resistent to SIGINT in some cases. Always send a 
 
254
  SIGKILL if needed.
 
255
 
 
256
+ Parallelized process spawning and termination when possible, within a single device.
 
257
 
 
258
+ Death monitor: made the unexpected-death callback non-optional named parameters, also
 
259
  for process subclasses and not only for device subclasses
 
260
 
 
261
+ Death monitor: show a different message on unexpected death, much friendlier and more accurate
 
262
  in the case of cables.
 
263
 
 
264
+ Saving: add a progress bar
 
265
  + [No, it's complicated: it should be done in a separate thread, but it would interact
 
266
     with *everything* in the application]
 
267
 
 
268
+ Cable disconnection: test it. The interface bug doesn't seem limited to the interface
 
269
  + Quickly fixed with a kludgish work-around in the Glade part...
 
270
  + ...and a more important fix in can_resume for Ethernet cables: see mariokit.ml
 
271
 
 
272
+ Cable disconnection: it works, but the interface allows to disconnect a cable more than once.
 
273
  This bug is completely harmless, but ugly. [No, it wasn't harmless --L.]
 
274
 
 
275
+ LED grids: added the Marionnet icon. Unfortunately it's nontrivial to add it to
 
276
  virtual terminals.
 
277
 
 
278
+ Death monitor: in case of unexpected death we need to poweroff devices at the level
 
279
  of mariokit, and not simply in simulated_network: in order to implement this all
 
280
  devices in simulated_network need to be passed an *unexpected_death_callback* parameter
 
281
  at construction time.
 
282
 
 
283
+ Remove old defects GUI
 
284
  - I've not removed the logic dealing with XML. I could break something... It's better to
 
285
    leave that alone by now.
 
286
 
 
287
+ Defects: automatically highlight defective interfaces (and possibly also devices), so that
 
288
  defective parts are readily visible. I think this can make the interface friendlier. 
 
289
 
 
290
+ Options|Autoconfigure IP addresses
 
291
 
 
292
+ Treeview: don't hide headings when scolling
 
293
  + Also added horizontal scrolling
 
294
 
 
295
+ Defects: fix bit flipping probablity
 
296
  + Also give a warning when the user sets it very high
 
297
 
 
298
+ Progress bars have a noticeable overhead when they are many. Use only one shared
 
299
  timer instead of one timer per progress bar.
 
300
 
 
301
+ Startup/Shutdown/Poweroff everything: parallelize.
 
302
 
 
303
+ Modify a connected cable, changing an endpoint: a new cable is correctly created with
 
304
  refcount 3, but its process is not spawned. Investigate.
 
305
 
 
306
+ Get rid of all the SIGCHLD indebuggable stuff, and re-implement the death monitor with
 
307
  polling.
 
308
 
 
309
+ Signals: Look for this in the glibc manual, there's an example which is exactly what
 
310
  we need:
 
311
  -----------------------------------------------------------------------
 
312
    Here's an example of how to use `waitpid' to get the status from all
 
313
  child processes that have terminated, without ever waiting.  This
 
314
  function is designed to be a handler for `SIGCHLD', the signal that
 
315
  indicates that at least one child process has terminated.
 
316
  -----------------------------------------------------------------------
 
317
 
 
318
+ Removed waitpid() calls from everywhere except the new SIGCHLD handler, whose task is
 
319
  to get notified when any child dies; in order to avoid the merged signal 'feature' (see
 
320
  the GNU libc manual) the handler calls waitpid() in a loop.
 
321
  This saves the need to use waitpid() to avoid zombies, and avoids nasty
 
322
  interactions between kill() and waitpid(), or several concurrent waitpid() calls.
 
323
  This kind of debugging is so fun :-).
 
324
 
 
325
+ Other funny signal problem: system() is implemented with waitpid()... (see umix.ml, in the
 
326
  OCaml sources); hence I have to temporarily block the SIGCHLD handler when using
 
327
  Unix.system. 
 
328
  + Done the same also for run (implemented with Unix.system), as defined in UnixExtra...
 
329
 
 
330
+ Shutdown everything should have a confirm dialog
 
331
 
 
332
+ Add "power-off everything"
 
333
  + ...with a confirm dialog
 
334
 
 
335
+ Fix this: connecting two interfaces of the same device with a crossover doesn't work
 
336
  (the cable is not added).
 
337
 
 
338
+ Fixed a nasty bug related to device creation order and defects, in talking.ml. In some cases
 
339
  a cable was instantiated *before* its defects were added to the defects treeview, hence
 
340
  failing when the instantiation procedure looked for the defects.
 
341
 
 
342
+ Implement defects in the simulated network
 
343
  + done for everything except machine-router
 
344
  + done it for machine_or_router
 
345
 
 
346
+ guest-side network configuration script using boot_parameters
 
347
  - To do: port it to the router
 
348
 
 
349
+ Network details: automatically save at any caller-level modification
 
350
+ Network defects: automatically save at any caller-level modification
 
351
 
 
352
+ Network details: bind to the interface in talking.
 
353
  + machine
 
354
  + router
 
355
  + cloud
 
356
  + gateway
 
357
 
 
358
+ Network details: also marshal/unmarshal the counters used for generating fresh
 
359
  addresses.
 
360
 
 
361
+ Removed old debug prints scattered thru the code
 
362
 
 
363
+ hostfs support (especially to work around the kernel command line length limitation):
 
364
  from the guest: mount none /.host -t hostfs -o HOSTDIRECTORY
 
365
  + Recorded the guest name into hostfs; it's useful from the host side.
 
366
 
 
367
+ boot_parameters script supplied to each guest via hostfs
 
368
 
 
369
+ Refactor: all GUI code should be able to show a dialog displaying an error
 
370
  message.
 
371
 
 
372
+ Added a facility allowing to show a progress bar dialog
 
373
 
 
374
+ Treeview: add a general-purpose method row_ids_such_that
 
375
 
 
376
+ Filesystem history: the most recent state of each device is now always
 
377
  highlighted.
 
378
 
 
379
+ Build system: added a kludgish Makefile in OCAMLBRICKS, ugly but useful.
 
380
 
 
381
+ states interface: reimplemented with the new treeview
 
382
 
 
383
+ Fail immediately if MARIONNET_HOME is not set.
 
384
 
 
385
+ Fail immediately if the UID is not 0
 
386
 
 
387
- Support pathnames with spaces
 
388
 
 
389
+ Some images pathnames should be made relative
 
390
  + Rationalize image file paths
 
391
 
 
392
- Remove checkboxes from dynamic menu items
 
393
 
 
394
- Bug in my ghostification patch: adding a default gateway allows to (implicitly) set a route
 
395
  thru the ghost interface (and the route is impossible to remove later: this is correct).
 
396
  The problem is that the ghost interface name can't be computed from ADDRT ioctl parameters
 
397
  without looking at the current routing tables (conditionally implemented in two different
 
398
  ways).
 
399
  This should not harm users who don't know about all of this stuff, but could be exploited
 
400
  as an unauthorized way to communicate with the host.
 
401
  Nontrivial to fix.
 
402
 
 
403
-+ UI: also show cables endpoint names
 
404
  + Done for defects
 
405
  + Do it for the main Hardware UI
 
406
    [No, now we show cable names in the network graph. It's even better]
 
407
 
 
408
+ global communication LEDgrid
 
409
  [No, it's not needed. Single-device LEDgrids are enough.]
 
410
 
 
411
- In some cases the ".mar" suffix is not appended when saving a file. When?
 
412
  + I think it doesn't happen any more. I haven't seen this for a long time.
 
413
 
 
414
+ machine: alter implementation adding one more level of hublets, to be able to implement
 
415
  defects
 
416
 
 
417
- serial connection
 
418
+ defect
 
419
  + new subtab of 'Materiel', with port detailed configuration
 
420
    [Done, but it's unrelated to defects...]
 
421
  + new subtab of 'Materiel', with defects for ports and wires
 
422
    (resolution: each direction of each port and cable)
 
423
 
 
424
- teacher -> students
 
425
- Allow the user to shutdown machines with halt from within UML without messing up our state
 
426
 
 
427
- Correct hublet aynchronous initialization without sleeping: it can be done with a datagram
 
428
  socket, just like blinking
 
429
- Asynchronous startup/shutdown with threads
 
430
 
 
431
- project GPG signatures
 
432
 
 
433
- assisted mode / student mode
 
434
 
 
435
+ UML filesystems: add support for a swap file, dynamically created at startup and destroyed on shutdown
 
436
  + [No: I tried, but it's problematic: cow files (as it should be expected) become *very* big.
 
437
     And swap files can't be on hostfs or NFS. I don't see any easy solution. --L.]
 
438
 
 
439
+ Bug in my ghostification patch: another (relatively subtle) case of missing copy_from_user(),
 
440
  in the SIOCADDRT ioctl.
 
441
 
 
442
+ Bug in my ghostification patch: dhclient fails to add the default gateway:
 
443
  "The user aked to add a route involving the ghost interface . We make this operation fail"
 
444
                                                              ^
 
445
                                                              |
 
446
                                            empty string! ----+
 
447
 
 
448
+ Bug in my ghostification patch: can't acquire a spinlock in preemptable or SMP kernel
 
449
  without disabling interrupts.
 
450
  Testcase: while true; do dhclient; done
 
451
 
 
452
+ Too heaviweight locking in my ghostification patch: use rw_spinlocks to allow readers to
 
453
  execute concurrently. The read case is infinitely more common, as only ghostification and
 
454
  unghostification involve writing.
 
455
 
 
456
+ In some cases saving with a different name with 'Save As' (and 'Copy Into'?) seems to
 
457
  break the states interface. I think the states prefix path needs to be updated.
 
458
 
 
459
+ Start a machine and *immediately* shut down everything, before tha machine has actually
 
460
  started. The GUI hangs waiting forever that the process terminates, but its termination
 
461
  message hasn't arrived because uml_console just failed, and we didn't notice.
 
462
 
 
463
+ exam mode
 
464
 
 
465
+ eth42
 
466
 
 
467
+ cable dynamic menu
 
468
  + connect/disconnect
 
469
  + remove default entries
 
470
 
 
471
+ Interface: forbid saving when there are machines or routers running
 
472
 
 
473
+ network element update, keeping identity
 
474
  + simulation level
 
475
  + static network graph level
 
476
  + LEDgrids: destroy and re-create them on update
 
477
 
 
478
+ states
 
479
  + more elaborate support for states
 
480
 
 
481
+ Ghostification patch: now that ugly stacktrace does not appear on startup any more.
 
482
  Also worked around a strange problem with arch/um/os-Linux/sys-i386/registers.c,
 
483
  using some macros like JB_PC, JB_SP and JB_BP -- which apparently should be defined
 
484
  in <bits/setjmp.h>, but aren't.
 
485
 
 
486
-----------------------------------------------------
 
487
 
 
488
-----------------
 
489
Riguardo alle uml
 
490
-----------------
 
491
 
 
492
+ emacs lentissimo a lanciarsi
 
493
 
 
494
+- vi si comporta in maniera bizzarra con la tastiera ed � inutilizzabile
 
495
  + (I think this has been solved by upgrading debian packages)
 
496
 
 
497
- ifconfig eth? <ip>/(8|16|24) d� un messaggio di errore strano
 
498
  - l'interfaccia sembra tuttavia ben configurata
 
499
  - non ho testato ma il sintomo potrebbe verificarsi solo quando il numero di 
 
500
    bit accesi del netmask [8/16/24] non corrisponde alla classe convenzionale
 
501
    (per esempio se dico ifconfig eth0 192.168.1.3/8)
 
502
 
 
503
- /etc/hosts da ripulire (ci sono linee con myrouter)
 
504
 
 
505
- ping -b .. (broadcast) non funziona
 
506
 
 
507
+ route add .. eth? provoca un crash del kernel host (senza eth? no)
 
508
 
 
509
 
 
510
--------------------
 
511
Riguardo a marionnet
 
512
--------------------
 
513
 
 
514
- se marionnet viene lanciata da un terminale e quest'ultimo viene chiuso, 
 
515
  l'interfaccia grafica impazzisce e non � pi� utilizzabile   
 
516
  => si potrebbe risolvere utilizzando nohup nel marionnet_starter?
 
517
    + [Yes, good idea: nohup (plus a small modification I did) solves this. --L.]
 
518
    - Add nohup to marionnet_starter (I don't have a copy)
 
519
 
 
520
+ mancano crudelmente le barre di progressione per capire che l'applicazione 
 
521
  sta lavorando e che non c'� da preoccuparsi
 
522
  => si sistemer� con il pilota dei processi
 
523
 
 
524
+ shutdown non parallelo delle macchine virtuali
 
525
  => si sistemer� anche questo con e nel pilota dei processi
 
526
 
 
527
+ quando si fa Quitter, poi Annuler, esce ugualmente!
 
528
 
 
529
- IDEA: per evitare il rischio di terminali bloccati, avviare sin dall'inizio
 
530
  una batteria di terminali per la stessa uml? Utilizzare una konsole con vari 
 
531
  tab? Dare la possibilit� nell'interfaccia di lanciare un nuovo terminale su
 
532
  una certa macchina (solo quando in esecuzione)?
 
533
 
 
534
+ IDEA: mettere da qualche parte ben visibile (titolo della finestra?) il nome
 
535
  del progetto sul quale si lavora
 
536
 
 
537
+ IDEA: mettere il logo Paris 13 nell'about, dopo i nostri nomi, magari 
 
538
  preceduto da una frase tipo "Projet financ� par l'UP13"
 
539
 
 
540
- IDEA: sarebbe bene un commento o un'etichetta anche per la macchine (come 
 
541
  per hub e switch). In questo modo si potrebbe mettere per esempio il numero 
 
542
  IP (o uno schema di numero IP come per esempio 192.168.k.7 dove k � un 
 
543
  parametro che dipende dallo studente che deve fare l'esame) in modo che
 
544
  appaia chiaramente sullo sketch senza che lo studente abbia bisogno di 
 
545
  rileggere l'enunciato del problema posto 
 
546
 
 
547
- IDEA: nella finestra di definizione di una macchina permettere con un 
 
548
  pulsantino vicino alla scelta della distribuzione di sfogliare (chiamata
 
549
  ad un qualunque visualizzatore o editor esterno) la lista dei pacchetti
 
550
  installati (output di dpkg -l). Idem per il kernel; in questo caso si potr� 
 
551
  sfogliare il .config  
 
552
 
 
553
+ nelle cose da fare bisogna aggiungere la "dinamicit�" dello sketch 
 
554
  (distinguere tra componenti in esecuzione, sospesi, inattivi,..)
 
555
 
 
556
--------------------------------
 
557
Riguardo alla piattaforma (host)
 
558
--------------------------------
 
559
 
 
560
+ le finestre dei terminali delle macchine virtuali non si sistemano 
 
561
  automaticamente nello spazio libero del desktop; al contrario si accumulano
 
562
  una sull'altra 
 
563
  => opzione di lanciamento del terminale o opzione di X?
 
564
    [This should be possible to set *in a global way* if we can configure the
 
565
     window manager. It's doable for networked classrooms and LiveDVD, not
 
566
     for normal user installation --L.]
 
567
 
 
568
------------------------------------------------------
 
569
Riguardo alle cose che avrei tanto desiderato testare 
 
570
e che ho dimenticato di testare
 
571
------------------------------------------------------
 
572
 
 
573
- controllare che tcpdump sia sincrono e se non lo � cercare di capire per 
 
574
  quale ragione non lo � (pi�)
 
575
  + [Now it appears to be synchronous. We might have "solved" the problem
 
576
     by recompiling the kernel with a different configuration. --L.]
 
577
  - No, I can reproduce the problem again now [--L., September 2007]
 
578
 
 
579
+ About: thank the artist who drew our logo
 
580
 
 
581
+ Logo and splash image: blurred Mandriva's logo to make it blend with the painting in a
 
582
  more natural way
 
583
 
 
584
+ Guest filesystem:
 
585
  + set the xterm title at early boot time (added /etc/init.d/marionnet-xterm-title.sh)
 
586
  + updated the distribution
 
587
  + compiled Emacs from sources (unicode-2 branch from CVS). This solves the slow boot
 
588
    problem.
 
589
 
 
590
+ Death monitor: don't popup a warning window per process when a cluster of processes
 
591
  implementing a single device is killed by a callback; just show the one which actually
 
592
  failed.
 
593
 
 
594
+ Added an automatically generated version.ml
 
595
 
 
596
- Initialization: check that /tmp is a filesystem suitable to handle cow's;
 
597
  do the same at working-directory change.
 
598
 
 
599
- Allow to change the working directory
 
600
 
 
601
- Explain the xterm Ctrk+Button3 trick in the user manual
 
602
 
 
603
- Xephyr: modify it to be able to set the window title and disable the grab feature.
 
604
 
 
605
+ newMachine simplified constructor: removed an old use of "X host" as a string,
 
606
  which is now replaced by an agebraic type
 
607
 
 
608
+ Treeviews: fixed a nasty bug which prevented undumping
 
609
 
 
610
+ Removed some old debug prints
 
611
 
 
612
+ Treeviews: forward-compatibility in file dumps (old Marionnets can read new files
 
613
  by simply not using unknown fields, when all row and column constraints are respected)
 
614
 
 
615
+ Treeviews: backward-compatibility in file dumps (new Marionnets can read old files,
 
616
  providing defaults for new fields not specified in files)
 
617
 
 
618
+ Treeview: column headers are now internally stored in English, but an
 
619
  internationalized translation may be shown: see the new optional parameter
 
620
  ?shown_header in `column' and its subclasses.
 
621
 
 
622
+ Minor aesthetical changes
 
623
 
 
624
+ New treeview for texts
 
625
  + Texts treeview: removed partial copies in case of import error
 
626
 
 
627
+ Added a quick and easy forest-undumping facility
 
628
 
 
629
+ Made hublet termination even more paranoidly safe
 
630
 
 
631
+ UI: Gtk callbacks sometimes raise exceptions when creating cables which
 
632
  can not be connected due to their kind or to port availability:
 
633
  "In callback for signal activate, uncaught exception: Failure("getNodeByName \"\"")"
 
634
  Recipe to reproduce: create a new straight cable in an empty network
 
635
 
 
636
+ Bugfix: now it's again possible to set a label for straight Ethernet cables
 
637
 
 
638
+ Bugfix: updated the 'Add cable' menu item sensitivity also on machine edit.
 
639
  Added the method update_add_cable_sensitivity to state, replacing the previous
 
640
  kludge which tied this feature to each sketch update.
 
641
 
 
642
+ Fixed a pernicious bug involving how router ports should be named (portX rather than
 
643
  ethX)
 
644
 
 
645
- The progress bar dialog 'shutting down machine' also appears for machines which are
 
646
  not running at project close/open.
 
647
  [This is only noticeable when using variants, because of the copying/removing
 
648
   latency. In other cases the window flashes just for a moment, or Gtk doesn't even
 
649
   have the time to draw it before it's destroyed --L.].
 
650
 
 
651
+ Talking: added some missing calls to st#update_cable_sensitivity
 
652
 
 
653
+ Bugfix: remove machine: delete all cow's
 
654
 
 
655
+ Bugfix: correctly save and restore filesystem history
 
656
 
 
657
+ Talking: now the sketch is refreshed at cable connection/disconnection
 
658
 
 
659
+ Ledgrid manager: made LEDgrid windows not resizable
 
660
 
 
661
+ simple_dialogs.ml: Added the fancy ask_text_dialog
 
662
 
 
663
+ strExtra: trivial generalization of wellFormedName
 
664
 
 
665
+ Cable treeview icons: updated colors; now they are coherent with the graph
 
666
  conventions
 
667
 
 
668
+ GUI, talking: added the Marionnet icon to all dialogs which still lacked it.
 
669
 
 
670
+ Makefile: trivial changes
 
671
 
 
672
+ Minor cosmetic changes
 
673
 
 
674
+ Bugfix: filesystem history: ``startup in this state'' did not generate a child in the 
 
675
  correct position within the forest.
 
676
 
 
677
+ Bugfix: when removing a device implies removing some cables, such cables must also be
 
678
  removed from defects
 
679
 
 
680
+ Filesystem history: moved the tab to 'Hardware'
 
681
 
 
682
+ Sketch: added synchronization
 
683
 
 
684
+ Connected/disconnected cables in the sketch: fixed a buglet
 
685
 
 
686
+ Filesystem history: implmenent ``Export as variant''
 
687
 
 
688
+ Filesystem history: minor refactoring
 
689
 
 
690
+ Translated the Glade part of the user interface into French
 
691
 
 
692
+ Starting up a network with no computers is now allowed.
 
693
 
 
694
+ Update the Dot image to show more detailed state (suspended devices, disconnected cables,
 
695
  ... [and cable names, I'd say --L.]) [J.V.]
 
696
 
 
697
+ Implement the new variant semantics:
 
698
  + (i)   if there exists a symlink [or non-symlink file] named `suggested' in the
 
699
          appropriate variant directory, than make the GUI select *that* as the initial
 
700
          entry, when creating a new machine; ['no variant' comes as the second element
 
701
          when 'suggested' exists]
 
702
    (ii)  If no such link exists then `no variant' is the initial entry
 
703
    (iii) In any case it must be possible to select `no variant'
 
704
  + Remove the `default' variant [easy: there was no `default' variant :-)]
 
705
  + Rename `clean' to 'no variant' (for variants, not filesystem states)
 
706
  + At machine [and router] creation time use `readlink' to resolve the variant name if
 
707
    it's a symlink, and store the resolved name instead of the link name, for any link
 
708
  + The constraint on variant read-only-ness at machine update is ok.
 
709
 
 
710
+ Gateway GUI: made the IP number textboxes non-sensitive
 
711
 
 
712
+ Treeview: added view-detaching support. Load should be faster.
 
713
 
 
714
- Document the filesystem name convention: names should contain a never-changing
 
715
  checksum.
 
716
 
 
717
+ Solved more synchronization problems.
 
718
 
 
719
+ Added a very beautiful message-passing synchronization in
 
720
  wait_for_all_currently_scheduled_tasks. enqueue/dequeue replace both lock/unlock and
 
721
  wait/signal, they're higher level and easy to use.
 
722
 
 
723
+ Bugfix: "Save as" and "Copy into" did't append the ".mar" extension to the given
 
724
  pathname.
 
725
 
 
726
+ Fixed several concurrency-related problems, including some quite serious ones
 
727
  manifesting at project close time.
 
728
 
 
729
+ task_runner: added the method wait_for_all_currently_scheduled_tasks .
 
730
 
 
731
+ Sometimes cables seem to hang using 100% CPU [and, just to be clear, it's most
 
732
  probably due to my own patches to VDE. --L.]. This could be worked around by
 
733
  restarting them every k seconds, with a smallish k like 10. I needed the new
 
734
  more elaborate synchronization support to be able to do this. [in Freiburg]
 
735
  + Also added a user option to toggle this behavior. [in Freiburg]
 
736
 
 
737
+ mariokit: added some more needed (and some non-needed, just to play it safe)
 
738
  synchronization in class cable
 
739
 
 
740
+ Other minor cleanups [in Freiburg]
 
741
 
 
742
+ ...synchronization: added a recursive mutex implementation. Not optimized (and very
 
743
  defensive for such a low-level thing), but it seems to work. Very delicate stuff,
 
744
  but useful.
 
745
 
 
746
+ Mariokit: other dangerous synchronization changes :-)
 
747
 
 
748
+ wirefilter processes survive a Marionnet close operation when the project is not closed.
 
749
  [Not any more, I think --L., in Freiburg]
 
750
 
 
751
+ Mariokit: added some needed synchronization
 
752
 
 
753
+ Synchronization: bugfix on cable connect/disconnect
 
754
 
 
755
+ Machine dialog: the default kernel should be 'default', when it exists.
 
756
  +- It's already that way, apparently. Mmm, I think to have observed a different
 
757
     behavior, but I'm not sure.
 
758
 
 
759
+ Interface: redundant 'Power off' menu entries were hidden, and 'Shutdown' menu
 
760
  entries were relabeled to 'Power off', keeping the 'Stop' stock icon. This was
 
761
  done for: hub, switch, cloud, gateway (i.e. Ethernet plug)
 
762
 
 
763
+ (Seemingly) easy user interface changes:
 
764
  + change the default label locations so that both device names *and* interface names
 
765
    are visible in the network graph [J.V.]
 
766
  + switch icon: the 'off' version is taller than the 'on' version; I don't think it's
 
767
    intentional, as this is not true for either the hub or the router.
 
768
    The switch 'on' icon should be re-cropped. [J.V.]
 
769
 
 
770
+ Removed the Ethernet cloud and the Ethernet plug from the details interface.
 
771
 
 
772
+- Removed the correct-crossedness constraint on cables: now the interface allows to
 
773
  add ``incorrect'' cables
 
774
  + Prevent ``incorrect'' cables from working
 
775
    + Added all the needed infrastructure, now also in the `network' class in mariokit
 
776
    + Just used the new method `would_a_cable_be_correct_between' at cable 
 
777
      construction time (modification is implemented as destruction + re-construction)
 
778
  - Conditionally restore the old behavior, where the GUI prevents the user from doing
 
779
    mistakes
 
780
 
 
781
+ Constrained project names: they must be ``identifiers''; of course we still
 
782
  accept an explicitly supplied ".mar" extension, and we still silently add it
 
783
  when missing.
 
784
 
 
785
-+ The main process exit code should be 0
 
786
  -+ [No, I tried handling SIGINT and SIGTERM and it worked in many cases, but it's too
 
787
      dangerous: sometimes the interface just hangs and some threads remain alive.
 
788
      As of now I've just slightly cleaned the code but the strategy is essentially the
 
789
      same as before. --L.]
 
790
 
 
791
+ Treeview:
 
792
  + a just-added tree should be collapsed by default
 
793
  + all trees are now collpsed at undump time