roby 0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. data/.gitignore +29 -0
  2. data/History.txt +4 -0
  3. data/License-fr.txt +519 -0
  4. data/License.txt +515 -0
  5. data/Manifest.txt +245 -0
  6. data/NOTES +4 -0
  7. data/README.txt +163 -0
  8. data/Rakefile +161 -0
  9. data/TODO.txt +146 -0
  10. data/app/README.txt +24 -0
  11. data/app/Rakefile +8 -0
  12. data/app/config/ROBOT.rb +5 -0
  13. data/app/config/app.yml +91 -0
  14. data/app/config/init.rb +7 -0
  15. data/app/config/roby.yml +3 -0
  16. data/app/controllers/.gitattributes +0 -0
  17. data/app/controllers/ROBOT.rb +2 -0
  18. data/app/data/.gitattributes +0 -0
  19. data/app/planners/ROBOT/main.rb +6 -0
  20. data/app/planners/main.rb +5 -0
  21. data/app/scripts/distributed +3 -0
  22. data/app/scripts/generate/bookmarks +3 -0
  23. data/app/scripts/replay +3 -0
  24. data/app/scripts/results +3 -0
  25. data/app/scripts/run +3 -0
  26. data/app/scripts/server +3 -0
  27. data/app/scripts/shell +3 -0
  28. data/app/scripts/test +3 -0
  29. data/app/tasks/.gitattributes +0 -0
  30. data/app/tasks/ROBOT/.gitattributes +0 -0
  31. data/bin/roby +210 -0
  32. data/bin/roby-log +168 -0
  33. data/bin/roby-shell +25 -0
  34. data/doc/images/event_generalization.png +0 -0
  35. data/doc/images/exception_propagation_1.png +0 -0
  36. data/doc/images/exception_propagation_2.png +0 -0
  37. data/doc/images/exception_propagation_3.png +0 -0
  38. data/doc/images/exception_propagation_4.png +0 -0
  39. data/doc/images/exception_propagation_5.png +0 -0
  40. data/doc/images/replay_handler_error.png +0 -0
  41. data/doc/images/replay_handler_error_0.png +0 -0
  42. data/doc/images/replay_handler_error_1.png +0 -0
  43. data/doc/images/roby_cycle_overview.png +0 -0
  44. data/doc/images/roby_replay_02.png +0 -0
  45. data/doc/images/roby_replay_03.png +0 -0
  46. data/doc/images/roby_replay_04.png +0 -0
  47. data/doc/images/roby_replay_event_representation.png +0 -0
  48. data/doc/images/roby_replay_first_state.png +0 -0
  49. data/doc/images/roby_replay_relations.png +0 -0
  50. data/doc/images/roby_replay_startup.png +0 -0
  51. data/doc/images/task_event_generalization.png +0 -0
  52. data/doc/papers.rdoc +11 -0
  53. data/doc/styles/allison.css +314 -0
  54. data/doc/styles/allison.js +316 -0
  55. data/doc/styles/allison.rb +276 -0
  56. data/doc/styles/jamis.rb +593 -0
  57. data/doc/tutorials/01-GettingStarted.rdoc +86 -0
  58. data/doc/tutorials/02-GoForward.rdoc +220 -0
  59. data/doc/tutorials/03-PlannedPath.rdoc +268 -0
  60. data/doc/tutorials/04-EventPropagation.rdoc +236 -0
  61. data/doc/tutorials/05-ErrorHandling.rdoc +319 -0
  62. data/doc/tutorials/06-Overview.rdoc +40 -0
  63. data/doc/videos.rdoc +69 -0
  64. data/ext/droby/dump.cc +175 -0
  65. data/ext/droby/extconf.rb +3 -0
  66. data/ext/graph/algorithm.cc +746 -0
  67. data/ext/graph/extconf.rb +7 -0
  68. data/ext/graph/graph.cc +529 -0
  69. data/ext/graph/graph.hh +183 -0
  70. data/ext/graph/iterator_sequence.hh +102 -0
  71. data/ext/graph/undirected_dfs.hh +226 -0
  72. data/ext/graph/undirected_graph.hh +421 -0
  73. data/lib/roby.rb +41 -0
  74. data/lib/roby/app.rb +870 -0
  75. data/lib/roby/app/rake.rb +56 -0
  76. data/lib/roby/app/run.rb +14 -0
  77. data/lib/roby/app/scripts/distributed.rb +13 -0
  78. data/lib/roby/app/scripts/generate/bookmarks.rb +162 -0
  79. data/lib/roby/app/scripts/replay.rb +31 -0
  80. data/lib/roby/app/scripts/results.rb +15 -0
  81. data/lib/roby/app/scripts/run.rb +26 -0
  82. data/lib/roby/app/scripts/server.rb +18 -0
  83. data/lib/roby/app/scripts/shell.rb +88 -0
  84. data/lib/roby/app/scripts/test.rb +40 -0
  85. data/lib/roby/basic_object.rb +151 -0
  86. data/lib/roby/config.rb +5 -0
  87. data/lib/roby/control.rb +747 -0
  88. data/lib/roby/decision_control.rb +17 -0
  89. data/lib/roby/distributed.rb +32 -0
  90. data/lib/roby/distributed/base.rb +440 -0
  91. data/lib/roby/distributed/communication.rb +871 -0
  92. data/lib/roby/distributed/connection_space.rb +592 -0
  93. data/lib/roby/distributed/distributed_object.rb +206 -0
  94. data/lib/roby/distributed/drb.rb +62 -0
  95. data/lib/roby/distributed/notifications.rb +539 -0
  96. data/lib/roby/distributed/peer.rb +550 -0
  97. data/lib/roby/distributed/protocol.rb +529 -0
  98. data/lib/roby/distributed/proxy.rb +343 -0
  99. data/lib/roby/distributed/subscription.rb +311 -0
  100. data/lib/roby/distributed/transaction.rb +498 -0
  101. data/lib/roby/event.rb +897 -0
  102. data/lib/roby/exceptions.rb +234 -0
  103. data/lib/roby/executives/simple.rb +30 -0
  104. data/lib/roby/graph.rb +166 -0
  105. data/lib/roby/interface.rb +390 -0
  106. data/lib/roby/log.rb +3 -0
  107. data/lib/roby/log/chronicle.rb +303 -0
  108. data/lib/roby/log/console.rb +72 -0
  109. data/lib/roby/log/data_stream.rb +197 -0
  110. data/lib/roby/log/dot.rb +279 -0
  111. data/lib/roby/log/event_stream.rb +151 -0
  112. data/lib/roby/log/file.rb +340 -0
  113. data/lib/roby/log/gui/basic_display.ui +83 -0
  114. data/lib/roby/log/gui/chronicle.rb +26 -0
  115. data/lib/roby/log/gui/chronicle_view.rb +40 -0
  116. data/lib/roby/log/gui/chronicle_view.ui +70 -0
  117. data/lib/roby/log/gui/data_displays.rb +172 -0
  118. data/lib/roby/log/gui/data_displays.ui +155 -0
  119. data/lib/roby/log/gui/notifications.rb +26 -0
  120. data/lib/roby/log/gui/relations.rb +248 -0
  121. data/lib/roby/log/gui/relations.ui +123 -0
  122. data/lib/roby/log/gui/relations_view.rb +185 -0
  123. data/lib/roby/log/gui/relations_view.ui +149 -0
  124. data/lib/roby/log/gui/replay.rb +327 -0
  125. data/lib/roby/log/gui/replay_controls.rb +200 -0
  126. data/lib/roby/log/gui/replay_controls.ui +259 -0
  127. data/lib/roby/log/gui/runtime.rb +130 -0
  128. data/lib/roby/log/hooks.rb +185 -0
  129. data/lib/roby/log/logger.rb +202 -0
  130. data/lib/roby/log/notifications.rb +244 -0
  131. data/lib/roby/log/plan_rebuilder.rb +470 -0
  132. data/lib/roby/log/relations.rb +1056 -0
  133. data/lib/roby/log/server.rb +550 -0
  134. data/lib/roby/log/sqlite.rb +47 -0
  135. data/lib/roby/log/timings.rb +164 -0
  136. data/lib/roby/plan-object.rb +247 -0
  137. data/lib/roby/plan.rb +762 -0
  138. data/lib/roby/planning.rb +13 -0
  139. data/lib/roby/planning/loops.rb +302 -0
  140. data/lib/roby/planning/model.rb +906 -0
  141. data/lib/roby/planning/task.rb +151 -0
  142. data/lib/roby/propagation.rb +562 -0
  143. data/lib/roby/query.rb +619 -0
  144. data/lib/roby/relations.rb +583 -0
  145. data/lib/roby/relations/conflicts.rb +70 -0
  146. data/lib/roby/relations/ensured.rb +20 -0
  147. data/lib/roby/relations/error_handling.rb +23 -0
  148. data/lib/roby/relations/events.rb +9 -0
  149. data/lib/roby/relations/executed_by.rb +193 -0
  150. data/lib/roby/relations/hierarchy.rb +239 -0
  151. data/lib/roby/relations/influence.rb +10 -0
  152. data/lib/roby/relations/planned_by.rb +63 -0
  153. data/lib/roby/robot.rb +7 -0
  154. data/lib/roby/standard_errors.rb +218 -0
  155. data/lib/roby/state.rb +5 -0
  156. data/lib/roby/state/events.rb +221 -0
  157. data/lib/roby/state/information.rb +55 -0
  158. data/lib/roby/state/pos.rb +110 -0
  159. data/lib/roby/state/shapes.rb +32 -0
  160. data/lib/roby/state/state.rb +353 -0
  161. data/lib/roby/support.rb +92 -0
  162. data/lib/roby/task-operations.rb +182 -0
  163. data/lib/roby/task.rb +1618 -0
  164. data/lib/roby/test/common.rb +399 -0
  165. data/lib/roby/test/distributed.rb +214 -0
  166. data/lib/roby/test/tasks/empty_task.rb +9 -0
  167. data/lib/roby/test/tasks/goto.rb +36 -0
  168. data/lib/roby/test/tasks/simple_task.rb +23 -0
  169. data/lib/roby/test/testcase.rb +519 -0
  170. data/lib/roby/test/tools.rb +160 -0
  171. data/lib/roby/thread_task.rb +87 -0
  172. data/lib/roby/transactions.rb +462 -0
  173. data/lib/roby/transactions/proxy.rb +292 -0
  174. data/lib/roby/transactions/updates.rb +139 -0
  175. data/plugins/fault_injection/History.txt +4 -0
  176. data/plugins/fault_injection/README.txt +37 -0
  177. data/plugins/fault_injection/Rakefile +18 -0
  178. data/plugins/fault_injection/TODO.txt +0 -0
  179. data/plugins/fault_injection/app.rb +52 -0
  180. data/plugins/fault_injection/fault_injection.rb +89 -0
  181. data/plugins/fault_injection/test/test_fault_injection.rb +84 -0
  182. data/plugins/subsystems/README.txt +40 -0
  183. data/plugins/subsystems/Rakefile +18 -0
  184. data/plugins/subsystems/app.rb +171 -0
  185. data/plugins/subsystems/test/app/README +24 -0
  186. data/plugins/subsystems/test/app/Rakefile +8 -0
  187. data/plugins/subsystems/test/app/config/app.yml +71 -0
  188. data/plugins/subsystems/test/app/config/init.rb +9 -0
  189. data/plugins/subsystems/test/app/config/roby.yml +3 -0
  190. data/plugins/subsystems/test/app/planners/main.rb +20 -0
  191. data/plugins/subsystems/test/app/scripts/distributed +3 -0
  192. data/plugins/subsystems/test/app/scripts/replay +3 -0
  193. data/plugins/subsystems/test/app/scripts/results +3 -0
  194. data/plugins/subsystems/test/app/scripts/run +3 -0
  195. data/plugins/subsystems/test/app/scripts/server +3 -0
  196. data/plugins/subsystems/test/app/scripts/shell +3 -0
  197. data/plugins/subsystems/test/app/scripts/test +3 -0
  198. data/plugins/subsystems/test/app/tasks/services.rb +15 -0
  199. data/plugins/subsystems/test/test_subsystems.rb +71 -0
  200. data/test/distributed/test_communication.rb +178 -0
  201. data/test/distributed/test_connection.rb +282 -0
  202. data/test/distributed/test_execution.rb +373 -0
  203. data/test/distributed/test_mixed_plan.rb +341 -0
  204. data/test/distributed/test_plan_notifications.rb +238 -0
  205. data/test/distributed/test_protocol.rb +516 -0
  206. data/test/distributed/test_query.rb +102 -0
  207. data/test/distributed/test_remote_plan.rb +491 -0
  208. data/test/distributed/test_transaction.rb +463 -0
  209. data/test/mockups/tasks.rb +27 -0
  210. data/test/planning/test_loops.rb +380 -0
  211. data/test/planning/test_model.rb +427 -0
  212. data/test/planning/test_task.rb +106 -0
  213. data/test/relations/test_conflicts.rb +42 -0
  214. data/test/relations/test_ensured.rb +38 -0
  215. data/test/relations/test_executed_by.rb +149 -0
  216. data/test/relations/test_hierarchy.rb +158 -0
  217. data/test/relations/test_planned_by.rb +54 -0
  218. data/test/suite_core.rb +24 -0
  219. data/test/suite_distributed.rb +9 -0
  220. data/test/suite_planning.rb +3 -0
  221. data/test/suite_relations.rb +8 -0
  222. data/test/test_bgl.rb +508 -0
  223. data/test/test_control.rb +399 -0
  224. data/test/test_event.rb +894 -0
  225. data/test/test_exceptions.rb +592 -0
  226. data/test/test_interface.rb +37 -0
  227. data/test/test_log.rb +114 -0
  228. data/test/test_log_server.rb +132 -0
  229. data/test/test_plan.rb +584 -0
  230. data/test/test_propagation.rb +210 -0
  231. data/test/test_query.rb +266 -0
  232. data/test/test_relations.rb +180 -0
  233. data/test/test_state.rb +414 -0
  234. data/test/test_support.rb +16 -0
  235. data/test/test_task.rb +938 -0
  236. data/test/test_testcase.rb +122 -0
  237. data/test/test_thread_task.rb +73 -0
  238. data/test/test_transactions.rb +569 -0
  239. data/test/test_transactions_proxy.rb +198 -0
  240. metadata +570 -0
data/.gitignore ADDED
@@ -0,0 +1,29 @@
1
+ Makefile
2
+ ext/*/*.o
3
+ ext/*/*.so
4
+ ext/*/mkmf.log
5
+ lib/roby/*.so
6
+ *_ui.rb
7
+
8
+ doc/rdoc
9
+ doc/cache
10
+
11
+ .*.swp
12
+
13
+ plugins/genom/test/prefix.init
14
+ plugins/genom/test/prefix.mockup
15
+ plugins/genom/test/modules/*/*.pc
16
+ plugins/genom/test/modules/*/Makefile.in
17
+ plugins/genom/test/modules/*/config.status
18
+ plugins/genom/test/modules/*/configure
19
+ plugins/genom/test/modules/*/config.log
20
+ plugins/genom/test/modules/*/.genom
21
+ plugins/genom/test/modules/*/local.mk
22
+ plugins/genom/test/modules/*/server
23
+ plugins/genom/test/modules/*/*/posix-obj
24
+ plugins/genom/test/modules/*/libtool
25
+ plugins/genom/test/modules/*/autoconf
26
+ plugins/genom/test/modules/*/libtool
27
+ plugins/genom/test/modules/*/config.mk
28
+ plugins/genom/test/modules/*/autogen
29
+
data/History.txt ADDED
@@ -0,0 +1,4 @@
1
+ === 0.7
2
+
3
+ * First public release. This release is still not compatible with Ruby 1.9, as
4
+ too many bugs remain in 1.9.0
data/License-fr.txt ADDED
@@ -0,0 +1,519 @@
1
+
2
+ CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B
3
+
4
+
5
+ Avertissement
6
+
7
+ Ce contrat est une licence de logiciel libre issue d'une concertation
8
+ entre ses auteurs afin que le respect de deux grands principes pr�side �
9
+ sa r�daction:
10
+
11
+ * d'une part, le respect des principes de diffusion des logiciels
12
+ libres: acc�s au code source, droits �tendus conf�r�s aux
13
+ utilisateurs,
14
+ * d'autre part, la d�signation d'un droit applicable, le droit
15
+ fran�ais, auquel elle est conforme, tant au regard du droit de la
16
+ responsabilit� civile que du droit de la propri�t� intellectuelle
17
+ et de la protection qu'il offre aux auteurs et titulaires des
18
+ droits patrimoniaux sur un logiciel.
19
+
20
+ Les auteurs de la licence CeCILL-B (pour Ce[a] C[nrs] I[nria] L[ogiciel]
21
+ L[ibre]) sont:
22
+
23
+ Commissariat � l'Energie Atomique - CEA, �tablissement public de
24
+ recherche � caract�re scientifique, technique et industriel, dont le
25
+ si�ge est situ� 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris.
26
+
27
+ Centre National de la Recherche Scientifique - CNRS, �tablissement
28
+ public � caract�re scientifique et technologique, dont le si�ge est
29
+ situ� 3 rue Michel-Ange, 75794 Paris cedex 16.
30
+
31
+ Institut National de Recherche en Informatique et en Automatique -
32
+ INRIA, �tablissement public � caract�re scientifique et technologique,
33
+ dont le si�ge est situ� Domaine de Voluceau, Rocquencourt, BP 105, 78153
34
+ Le Chesnay cedex.
35
+
36
+
37
+ Pr�ambule
38
+
39
+ Ce contrat est une licence de logiciel libre dont l'objectif est de
40
+ conf�rer aux utilisateurs une tr�s large libert� de modification et de
41
+ redistribution du logiciel r�gi par cette licence.
42
+
43
+ L'exercice de cette libert� est assorti d'une obligation forte de
44
+ citation � la charge de ceux qui distribueraient un logiciel incorporant
45
+ un logiciel r�gi par la pr�sente licence afin d'assurer que les
46
+ contributions de tous soient correctement identifi�es et reconnues.
47
+
48
+ L'accessibilit� au code source et les droits de copie, de modification
49
+ et de redistribution qui d�coulent de ce contrat ont pour contrepartie
50
+ de n'offrir aux utilisateurs qu'une garantie limit�e et de ne faire
51
+ peser sur l'auteur du logiciel, le titulaire des droits patrimoniaux et
52
+ les conc�dants successifs qu'une responsabilit� restreinte.
53
+
54
+ A cet �gard l'attention de l'utilisateur est attir�e sur les risques
55
+ associ�s au chargement, � l'utilisation, � la modification et/ou au
56
+ d�veloppement et � la reproduction du logiciel par l'utilisateur �tant
57
+ donn� sa sp�cificit� de logiciel libre, qui peut le rendre complexe �
58
+ manipuler et qui le r�serve donc � des d�veloppeurs ou des
59
+ professionnels avertis poss�dant des connaissances informatiques
60
+ approfondies. Les utilisateurs sont donc invit�s � charger et tester
61
+ l'ad�quation du logiciel � leurs besoins dans des conditions permettant
62
+ d'assurer la s�curit� de leurs syst�mes et/ou de leurs donn�es et, plus
63
+ g�n�ralement, � l'utiliser et l'exploiter dans les m�mes conditions de
64
+ s�curit�. Ce contrat peut �tre reproduit et diffus� librement, sous
65
+ r�serve de le conserver en l'�tat, sans ajout ni suppression de clauses.
66
+
67
+ Ce contrat est susceptible de s'appliquer � tout logiciel dont le
68
+ titulaire des droits patrimoniaux d�cide de soumettre l'exploitation aux
69
+ dispositions qu'il contient.
70
+
71
+
72
+ Article 1 - DEFINITIONS
73
+
74
+ Dans ce contrat, les termes suivants, lorsqu'ils seront �crits avec une
75
+ lettre capitale, auront la signification suivante:
76
+
77
+ Contrat: d�signe le pr�sent contrat de licence, ses �ventuelles versions
78
+ post�rieures et annexes.
79
+
80
+ Logiciel: d�signe le logiciel sous sa forme de Code Objet et/ou de Code
81
+ Source et le cas �ch�ant sa documentation, dans leur �tat au moment de
82
+ l'acceptation du Contrat par le Licenci�.
83
+
84
+ Logiciel Initial: d�signe le Logiciel sous sa forme de Code Source et
85
+ �ventuellement de Code Objet et le cas �ch�ant sa documentation, dans
86
+ leur �tat au moment de leur premi�re diffusion sous les termes du Contrat.
87
+
88
+ Logiciel Modifi�: d�signe le Logiciel modifi� par au moins une
89
+ Contribution.
90
+
91
+ Code Source: d�signe l'ensemble des instructions et des lignes de
92
+ programme du Logiciel et auquel l'acc�s est n�cessaire en vue de
93
+ modifier le Logiciel.
94
+
95
+ Code Objet: d�signe les fichiers binaires issus de la compilation du
96
+ Code Source.
97
+
98
+ Titulaire: d�signe le ou les d�tenteurs des droits patrimoniaux d'auteur
99
+ sur le Logiciel Initial.
100
+
101
+ Licenci�: d�signe le ou les utilisateurs du Logiciel ayant accept� le
102
+ Contrat.
103
+
104
+ Contributeur: d�signe le Licenci� auteur d'au moins une Contribution.
105
+
106
+ Conc�dant: d�signe le Titulaire ou toute personne physique ou morale
107
+ distribuant le Logiciel sous le Contrat.
108
+
109
+ Contribution: d�signe l'ensemble des modifications, corrections,
110
+ traductions, adaptations et/ou nouvelles fonctionnalit�s int�gr�es dans
111
+ le Logiciel par tout Contributeur, ainsi que tout Module Interne.
112
+
113
+ Module: d�signe un ensemble de fichiers sources y compris leur
114
+ documentation qui permet de r�aliser des fonctionnalit�s ou services
115
+ suppl�mentaires � ceux fournis par le Logiciel.
116
+
117
+ Module Externe: d�signe tout Module, non d�riv� du Logiciel, tel que ce
118
+ Module et le Logiciel s'ex�cutent dans des espaces d'adressage
119
+ diff�rents, l'un appelant l'autre au moment de leur ex�cution.
120
+
121
+ Module Interne: d�signe tout Module li� au Logiciel de telle sorte
122
+ qu'ils s'ex�cutent dans le m�me espace d'adressage.
123
+
124
+ Parties: d�signe collectivement le Licenci� et le Conc�dant.
125
+
126
+ Ces termes s'entendent au singulier comme au pluriel.
127
+
128
+
129
+ Article 2 - OBJET
130
+
131
+ Le Contrat a pour objet la concession par le Conc�dant au Licenci� d'une
132
+ licence non exclusive, cessible et mondiale du Logiciel telle que
133
+ d�finie ci-apr�s � l'article 5 pour toute la dur�e de protection des droits
134
+ portant sur ce Logiciel.
135
+
136
+
137
+ Article 3 - ACCEPTATION
138
+
139
+ 3.1 L'acceptation par le Licenci� des termes du Contrat est r�put�e
140
+ acquise du fait du premier des faits suivants:
141
+
142
+ * (i) le chargement du Logiciel par tout moyen notamment par
143
+ t�l�chargement � partir d'un serveur distant ou par chargement �
144
+ partir d'un support physique;
145
+ * (ii) le premier exercice par le Licenci� de l'un quelconque des
146
+ droits conc�d�s par le Contrat.
147
+
148
+ 3.2 Un exemplaire du Contrat, contenant notamment un avertissement
149
+ relatif aux sp�cificit�s du Logiciel, � la restriction de garantie et �
150
+ la limitation � un usage par des utilisateurs exp�riment�s a �t� mis �
151
+ disposition du Licenci� pr�alablement � son acceptation telle que
152
+ d�finie � l'article 3.1 ci dessus et le Licenci� reconna�t en avoir pris
153
+ connaissance.
154
+
155
+
156
+ Article 4 - ENTREE EN VIGUEUR ET DUREE
157
+
158
+
159
+ 4.1 ENTREE EN VIGUEUR
160
+
161
+ Le Contrat entre en vigueur � la date de son acceptation par le Licenci�
162
+ telle que d�finie en 3.1.
163
+
164
+
165
+ 4.2 DUREE
166
+
167
+ Le Contrat produira ses effets pendant toute la dur�e l�gale de
168
+ protection des droits patrimoniaux portant sur le Logiciel.
169
+
170
+
171
+ Article 5 - ETENDUE DES DROITS CONCEDES
172
+
173
+ Le Conc�dant conc�de au Licenci�, qui accepte, les droits suivants sur
174
+ le Logiciel pour toutes destinations et pour la dur�e du Contrat dans
175
+ les conditions ci-apr�s d�taill�es.
176
+
177
+ Par ailleurs, si le Conc�dant d�tient ou venait � d�tenir un ou
178
+ plusieurs brevets d'invention prot�geant tout ou partie des
179
+ fonctionnalit�s du Logiciel ou de ses composants, il s'engage � ne pas
180
+ opposer les �ventuels droits conf�r�s par ces brevets aux Licenci�s
181
+ successifs qui utiliseraient, exploiteraient ou modifieraient le
182
+ Logiciel. En cas de cession de ces brevets, le Conc�dant s'engage �
183
+ faire reprendre les obligations du pr�sent alin�a aux cessionnaires.
184
+
185
+
186
+ 5.1 DROIT D'UTILISATION
187
+
188
+ Le Licenci� est autoris� � utiliser le Logiciel, sans restriction quant
189
+ aux domaines d'application, �tant ci-apr�s pr�cis� que cela comporte:
190
+
191
+ 1. la reproduction permanente ou provisoire du Logiciel en tout ou
192
+ partie par tout moyen et sous toute forme.
193
+
194
+ 2. le chargement, l'affichage, l'ex�cution, ou le stockage du
195
+ Logiciel sur tout support.
196
+
197
+ 3. la possibilit� d'en observer, d'en �tudier, ou d'en tester le
198
+ fonctionnement afin de d�terminer les id�es et principes qui sont
199
+ � la base de n'importe quel �l�ment de ce Logiciel; et ceci,
200
+ lorsque le Licenci� effectue toute op�ration de chargement,
201
+ d'affichage, d'ex�cution, de transmission ou de stockage du
202
+ Logiciel qu'il est en droit d'effectuer en vertu du Contrat.
203
+
204
+
205
+ 5.2 DROIT D'APPORTER DES CONTRIBUTIONS
206
+
207
+ Le droit d'apporter des Contributions comporte le droit de traduire,
208
+ d'adapter, d'arranger ou d'apporter toute autre modification au Logiciel
209
+ et le droit de reproduire le logiciel en r�sultant.
210
+
211
+ Le Licenci� est autoris� � apporter toute Contribution au Logiciel sous
212
+ r�serve de mentionner, de fa�on explicite, son nom en tant qu'auteur de
213
+ cette Contribution et la date de cr�ation de celle-ci.
214
+
215
+
216
+ 5.3 DROIT DE DISTRIBUTION
217
+
218
+ Le droit de distribution comporte notamment le droit de diffuser, de
219
+ transmettre et de communiquer le Logiciel au public sur tout support et
220
+ par tout moyen ainsi que le droit de mettre sur le march� � titre
221
+ on�reux ou gratuit, un ou des exemplaires du Logiciel par tout proc�d�.
222
+
223
+ Le Licenci� est autoris� � distribuer des copies du Logiciel, modifi� ou
224
+ non, � des tiers dans les conditions ci-apr�s d�taill�es.
225
+
226
+
227
+ 5.3.1 DISTRIBUTION DU LOGICIEL SANS MODIFICATION
228
+
229
+ Le Licenci� est autoris� � distribuer des copies conformes du Logiciel,
230
+ sous forme de Code Source ou de Code Objet, � condition que cette
231
+ distribution respecte les dispositions du Contrat dans leur totalit� et
232
+ soit accompagn�e:
233
+
234
+ 1. d'un exemplaire du Contrat,
235
+
236
+ 2. d'un avertissement relatif � la restriction de garantie et de
237
+ responsabilit� du Conc�dant telle que pr�vue aux articles 8
238
+ et 9,
239
+
240
+ et que, dans le cas o� seul le Code Objet du Logiciel est redistribu�,
241
+ le Licenci� permette un acc�s effectif au Code Source complet du
242
+ Logiciel pendant au moins toute la dur�e de sa distribution du Logiciel,
243
+ �tant entendu que le co�t additionnel d'acquisition du Code Source ne
244
+ devra pas exc�der le simple co�t de transfert des donn�es.
245
+
246
+
247
+ 5.3.2 DISTRIBUTION DU LOGICIEL MODIFIE
248
+
249
+ Lorsque le Licenci� apporte une Contribution au Logiciel, le Logiciel
250
+ Modifi� peut �tre distribu� sous un contrat de licence autre que le
251
+ pr�sent Contrat sous r�serve du respect des dispositions de l'article
252
+ 5.3.4.
253
+
254
+
255
+ 5.3.3 DISTRIBUTION DES MODULES EXTERNES
256
+
257
+ Lorsque le Licenci� a d�velopp� un Module Externe les conditions du
258
+ Contrat ne s'appliquent pas � ce Module Externe, qui peut �tre distribu�
259
+ sous un contrat de licence diff�rent.
260
+
261
+
262
+ 5.3.4 CITATIONS
263
+
264
+ Le Licenci� qui distribue un Logiciel Modifi� s'engage express�ment:
265
+
266
+ 1. � indiquer dans sa documentation qu'il a �t� r�alis� � partir du
267
+ Logiciel r�gi par le Contrat, en reproduisant les mentions de
268
+ propri�t� intellectuelle du Logiciel,
269
+
270
+ 2. � faire en sorte que l'utilisation du Logiciel, ses mentions de
271
+ propri�t� intellectuelle et le fait qu'il est r�gi par le Contrat
272
+ soient indiqu�s dans un texte facilement accessible depuis
273
+ l'interface du Logiciel Modifi�,
274
+
275
+ 3. � mentionner, sur un site Web librement accessible d�crivant le
276
+ Logiciel Modifi�, et pendant au moins toute la dur�e de sa
277
+ distribution, qu'il a �t� r�alis� � partir du Logiciel r�gi par le
278
+ Contrat, en reproduisant les mentions de propri�t� intellectuelle
279
+ du Logiciel,
280
+
281
+ 4. lorsqu'il le distribue � un tiers susceptible de distribuer
282
+ lui-m�me un Logiciel Modifi�, sans avoir � en distribuer le code
283
+ source, � faire ses meilleurs efforts pour que les obligations du
284
+ pr�sent article 5.3.4 soient reprises par le dit tiers.
285
+
286
+ Lorsque le Logiciel modifi� ou non est distribu� avec un Module Externe
287
+ qui a �t� con�u pour l'utiliser, le Licenci� doit soumettre le dit
288
+ Module Externe aux obligations pr�c�dentes.
289
+
290
+
291
+ 5.3.5 COMPATIBILITE AVEC LES LICENCES CeCILL et CeCILL-C
292
+
293
+ Lorsqu'un Logiciel Modifi� contient une Contribution soumise au contrat
294
+ de licence CeCILL, les stipulations pr�vues � l'article 5.3.4 sont
295
+ facultatives.
296
+
297
+ Un Logiciel Modifi� peut �tre distribu� sous le contrat de licence
298
+ CeCILL-C. Les stipulations pr�vues � l'article 5.3.4 sont alors
299
+ facultatives.
300
+
301
+
302
+ Article 6 - PROPRIETE INTELLECTUELLE
303
+
304
+
305
+ 6.1 SUR LE LOGICIEL INITIAL
306
+
307
+ Le Titulaire est d�tenteur des droits patrimoniaux sur le Logiciel
308
+ Initial. Toute utilisation du Logiciel Initial est soumise au respect
309
+ des conditions dans lesquelles le Titulaire a choisi de diffuser son
310
+ oeuvre et nul autre n'a la facult� de modifier les conditions de
311
+ diffusion de ce Logiciel Initial.
312
+
313
+ Le Titulaire s'engage � ce que le Logiciel Initial reste au moins r�gi
314
+ par le Contrat et ce, pour la dur�e vis�e � l'article 4.2.
315
+
316
+
317
+ 6.2 SUR LES CONTRIBUTIONS
318
+
319
+ Le Licenci� qui a d�velopp� une Contribution est titulaire sur celle-ci
320
+ des droits de propri�t� intellectuelle dans les conditions d�finies par
321
+ la l�gislation applicable.
322
+
323
+
324
+ 6.3 SUR LES MODULES EXTERNES
325
+
326
+ Le Licenci� qui a d�velopp� un Module Externe est titulaire sur celui-ci
327
+ des droits de propri�t� intellectuelle dans les conditions d�finies par
328
+ la l�gislation applicable et reste libre du choix du contrat r�gissant
329
+ sa diffusion.
330
+
331
+
332
+ 6.4 DISPOSITIONS COMMUNES
333
+
334
+ Le Licenci� s'engage express�ment:
335
+
336
+ 1. � ne pas supprimer ou modifier de quelque mani�re que ce soit les
337
+ mentions de propri�t� intellectuelle appos�es sur le Logiciel;
338
+
339
+ 2. � reproduire � l'identique lesdites mentions de propri�t�
340
+ intellectuelle sur les copies du Logiciel modifi� ou non.
341
+
342
+ Le Licenci� s'engage � ne pas porter atteinte, directement ou
343
+ indirectement, aux droits de propri�t� intellectuelle du Titulaire et/ou
344
+ des Contributeurs sur le Logiciel et � prendre, le cas �ch�ant, �
345
+ l'�gard de son personnel toutes les mesures n�cessaires pour assurer le
346
+ respect des dits droits de propri�t� intellectuelle du Titulaire et/ou
347
+ des Contributeurs.
348
+
349
+
350
+ Article 7 - SERVICES ASSOCIES
351
+
352
+ 7.1 Le Contrat n'oblige en aucun cas le Conc�dant � la r�alisation de
353
+ prestations d'assistance technique ou de maintenance du Logiciel.
354
+
355
+ Cependant le Conc�dant reste libre de proposer ce type de services. Les
356
+ termes et conditions d'une telle assistance technique et/ou d'une telle
357
+ maintenance seront alors d�termin�s dans un acte s�par�. Ces actes de
358
+ maintenance et/ou assistance technique n'engageront que la seule
359
+ responsabilit� du Conc�dant qui les propose.
360
+
361
+ 7.2 De m�me, tout Conc�dant est libre de proposer, sous sa seule
362
+ responsabilit�, � ses licenci�s une garantie, qui n'engagera que lui,
363
+ lors de la redistribution du Logiciel et/ou du Logiciel Modifi� et ce,
364
+ dans les conditions qu'il souhaite. Cette garantie et les modalit�s
365
+ financi�res de son application feront l'objet d'un acte s�par� entre le
366
+ Conc�dant et le Licenci�.
367
+
368
+
369
+ Article 8 - RESPONSABILITE
370
+
371
+ 8.1 Sous r�serve des dispositions de l'article 8.2, le Licenci� a la
372
+ facult�, sous r�serve de prouver la faute du Conc�dant concern�, de
373
+ solliciter la r�paration du pr�judice direct qu'il subirait du fait du
374
+ Logiciel et dont il apportera la preuve.
375
+
376
+ 8.2 La responsabilit� du Conc�dant est limit�e aux engagements pris en
377
+ application du Contrat et ne saurait �tre engag�e en raison notamment:
378
+ (i) des dommages dus � l'inex�cution, totale ou partielle, de ses
379
+ obligations par le Licenci�, (ii) des dommages directs ou indirects
380
+ d�coulant de l'utilisation ou des performances du Logiciel subis par le
381
+ Licenci� et (iii) plus g�n�ralement d'un quelconque dommage indirect. En
382
+ particulier, les Parties conviennent express�ment que tout pr�judice
383
+ financier ou commercial (par exemple perte de donn�es, perte de
384
+ b�n�fices, perte d'exploitation, perte de client�le ou de commandes,
385
+ manque � gagner, trouble commercial quelconque) ou toute action dirig�e
386
+ contre le Licenci� par un tiers, constitue un dommage indirect et
387
+ n'ouvre pas droit � r�paration par le Conc�dant.
388
+
389
+
390
+ Article 9 - GARANTIE
391
+
392
+ 9.1 Le Licenci� reconna�t que l'�tat actuel des connaissances
393
+ scientifiques et techniques au moment de la mise en circulation du
394
+ Logiciel ne permet pas d'en tester et d'en v�rifier toutes les
395
+ utilisations ni de d�tecter l'existence d'�ventuels d�fauts. L'attention
396
+ du Licenci� a �t� attir�e sur ce point sur les risques associ�s au
397
+ chargement, � l'utilisation, la modification et/ou au d�veloppement et �
398
+ la reproduction du Logiciel qui sont r�serv�s � des utilisateurs avertis.
399
+
400
+ Il rel�ve de la responsabilit� du Licenci� de contr�ler, par tous
401
+ moyens, l'ad�quation du produit � ses besoins, son bon fonctionnement et
402
+ de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
403
+
404
+ 9.2 Le Conc�dant d�clare de bonne foi �tre en droit de conc�der
405
+ l'ensemble des droits attach�s au Logiciel (comprenant notamment les
406
+ droits vis�s � l'article 5).
407
+
408
+ 9.3 Le Licenci� reconna�t que le Logiciel est fourni "en l'�tat" par le
409
+ Conc�dant sans autre garantie, expresse ou tacite, que celle pr�vue �
410
+ l'article 9.2 et notamment sans aucune garantie sur sa valeur commerciale,
411
+ son caract�re s�curis�, innovant ou pertinent.
412
+
413
+ En particulier, le Conc�dant ne garantit pas que le Logiciel est exempt
414
+ d'erreur, qu'il fonctionnera sans interruption, qu'il sera compatible
415
+ avec l'�quipement du Licenci� et sa configuration logicielle ni qu'il
416
+ remplira les besoins du Licenci�.
417
+
418
+ 9.4 Le Conc�dant ne garantit pas, de mani�re expresse ou tacite, que le
419
+ Logiciel ne porte pas atteinte � un quelconque droit de propri�t�
420
+ intellectuelle d'un tiers portant sur un brevet, un logiciel ou sur tout
421
+ autre droit de propri�t�. Ainsi, le Conc�dant exclut toute garantie au
422
+ profit du Licenci� contre les actions en contrefa�on qui pourraient �tre
423
+ diligent�es au titre de l'utilisation, de la modification, et de la
424
+ redistribution du Logiciel. N�anmoins, si de telles actions sont
425
+ exerc�es contre le Licenci�, le Conc�dant lui apportera son aide
426
+ technique et juridique pour sa d�fense. Cette aide technique et
427
+ juridique est d�termin�e au cas par cas entre le Conc�dant concern� et
428
+ le Licenci� dans le cadre d'un protocole d'accord. Le Conc�dant d�gage
429
+ toute responsabilit� quant � l'utilisation de la d�nomination du
430
+ Logiciel par le Licenci�. Aucune garantie n'est apport�e quant �
431
+ l'existence de droits ant�rieurs sur le nom du Logiciel et sur
432
+ l'existence d'une marque.
433
+
434
+
435
+ Article 10 - RESILIATION
436
+
437
+ 10.1 En cas de manquement par le Licenci� aux obligations mises � sa
438
+ charge par le Contrat, le Conc�dant pourra r�silier de plein droit le
439
+ Contrat trente (30) jours apr�s notification adress�e au Licenci� et
440
+ rest�e sans effet.
441
+
442
+ 10.2 Le Licenci� dont le Contrat est r�sili� n'est plus autoris� �
443
+ utiliser, modifier ou distribuer le Logiciel. Cependant, toutes les
444
+ licences qu'il aura conc�d�es ant�rieurement � la r�siliation du Contrat
445
+ resteront valides sous r�serve qu'elles aient �t� effectu�es en
446
+ conformit� avec le Contrat.
447
+
448
+
449
+ Article 11 - DISPOSITIONS DIVERSES
450
+
451
+
452
+ 11.1 CAUSE EXTERIEURE
453
+
454
+ Aucune des Parties ne sera responsable d'un retard ou d'une d�faillance
455
+ d'ex�cution du Contrat qui serait d� � un cas de force majeure, un cas
456
+ fortuit ou une cause ext�rieure, telle que, notamment, le mauvais
457
+ fonctionnement ou les interruptions du r�seau �lectrique ou de
458
+ t�l�communication, la paralysie du r�seau li�e � une attaque
459
+ informatique, l'intervention des autorit�s gouvernementales, les
460
+ catastrophes naturelles, les d�g�ts des eaux, les tremblements de terre,
461
+ le feu, les explosions, les gr�ves et les conflits sociaux, l'�tat de
462
+ guerre...
463
+
464
+ 11.2 Le fait, par l'une ou l'autre des Parties, d'omettre en une ou
465
+ plusieurs occasions de se pr�valoir d'une ou plusieurs dispositions du
466
+ Contrat, ne pourra en aucun cas impliquer renonciation par la Partie
467
+ int�ress�e � s'en pr�valoir ult�rieurement.
468
+
469
+ 11.3 Le Contrat annule et remplace toute convention ant�rieure, �crite
470
+ ou orale, entre les Parties sur le m�me objet et constitue l'accord
471
+ entier entre les Parties sur cet objet. Aucune addition ou modification
472
+ aux termes du Contrat n'aura d'effet � l'�gard des Parties � moins
473
+ d'�tre faite par �crit et sign�e par leurs repr�sentants d�ment habilit�s.
474
+
475
+ 11.4 Dans l'hypoth�se o� une ou plusieurs des dispositions du Contrat
476
+ s'av�rerait contraire � une loi ou � un texte applicable, existants ou
477
+ futurs, cette loi ou ce texte pr�vaudrait, et les Parties feraient les
478
+ amendements n�cessaires pour se conformer � cette loi ou � ce texte.
479
+ Toutes les autres dispositions resteront en vigueur. De m�me, la
480
+ nullit�, pour quelque raison que ce soit, d'une des dispositions du
481
+ Contrat ne saurait entra�ner la nullit� de l'ensemble du Contrat.
482
+
483
+
484
+ 11.5 LANGUE
485
+
486
+ Le Contrat est r�dig� en langue fran�aise et en langue anglaise, ces
487
+ deux versions faisant �galement foi.
488
+
489
+
490
+ Article 12 - NOUVELLES VERSIONS DU CONTRAT
491
+
492
+ 12.1 Toute personne est autoris�e � copier et distribuer des copies de
493
+ ce Contrat.
494
+
495
+ 12.2 Afin d'en pr�server la coh�rence, le texte du Contrat est prot�g�
496
+ et ne peut �tre modifi� que par les auteurs de la licence, lesquels se
497
+ r�servent le droit de publier p�riodiquement des mises � jour ou de
498
+ nouvelles versions du Contrat, qui poss�deront chacune un num�ro
499
+ distinct. Ces versions ult�rieures seront susceptibles de prendre en
500
+ compte de nouvelles probl�matiques rencontr�es par les logiciels libres.
501
+
502
+ 12.3 Tout Logiciel diffus� sous une version donn�e du Contrat ne pourra
503
+ faire l'objet d'une diffusion ult�rieure que sous la m�me version du
504
+ Contrat ou une version post�rieure.
505
+
506
+
507
+ Article 13 - LOI APPLICABLE ET COMPETENCE TERRITORIALE
508
+
509
+ 13.1 Le Contrat est r�gi par la loi fran�aise. Les Parties conviennent
510
+ de tenter de r�gler � l'amiable les diff�rends ou litiges qui
511
+ viendraient � se produire par suite ou � l'occasion du Contrat.
512
+
513
+ 13.2 A d�faut d'accord amiable dans un d�lai de deux (2) mois � compter
514
+ de leur survenance et sauf situation relevant d'une proc�dure d'urgence,
515
+ les diff�rends ou litiges seront port�s par la Partie la plus diligente
516
+ devant les Tribunaux comp�tents de Paris.
517
+
518
+
519
+ Version 1.0 du 2006-09-05.