roby 0.7

Sign up to get free protection for your applications and to get access to all the features.
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/License.txt ADDED
@@ -0,0 +1,515 @@
1
+
2
+ CeCILL-B FREE SOFTWARE LICENSE AGREEMENT
3
+
4
+
5
+ Notice
6
+
7
+ This Agreement is a Free Software license agreement that is the result
8
+ of discussions between its authors in order to ensure compliance with
9
+ the two main principles guiding its drafting:
10
+
11
+ * firstly, compliance with the principles governing the distribution
12
+ of Free Software: access to source code, broad rights granted to
13
+ users,
14
+ * secondly, the election of a governing law, French law, with which
15
+ it is conformant, both as regards the law of torts and
16
+ intellectual property law, and the protection that it offers to
17
+ both authors and holders of the economic rights over software.
18
+
19
+ The authors of the CeCILL-B (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
20
+ license are:
21
+
22
+ Commissariat � l'Energie Atomique - CEA, a public scientific, technical
23
+ and industrial research establishment, having its principal place of
24
+ business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
25
+
26
+ Centre National de la Recherche Scientifique - CNRS, a public scientific
27
+ and technological establishment, having its principal place of business
28
+ at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
29
+
30
+ Institut National de Recherche en Informatique et en Automatique -
31
+ INRIA, a public scientific and technological establishment, having its
32
+ principal place of business at Domaine de Voluceau, Rocquencourt, BP
33
+ 105, 78153 Le Chesnay cedex, France.
34
+
35
+
36
+ Preamble
37
+
38
+ This Agreement is an open source software license intended to give users
39
+ significant freedom to modify and redistribute the software licensed
40
+ hereunder.
41
+
42
+ The exercising of this freedom is conditional upon a strong obligation
43
+ of giving credits for everybody that distributes a software
44
+ incorporating a software ruled by the current license so as all
45
+ contributions to be properly identified and acknowledged.
46
+
47
+ In consideration of access to the source code and the rights to copy,
48
+ modify and redistribute granted by the license, users are provided only
49
+ with a limited warranty and the software's author, the holder of the
50
+ economic rights, and the successive licensors only have limited liability.
51
+
52
+ In this respect, the risks associated with loading, using, modifying
53
+ and/or developing or reproducing the software by the user are brought to
54
+ the user's attention, given its Free Software status, which may make it
55
+ complicated to use, with the result that its use is reserved for
56
+ developers and experienced professionals having in-depth computer
57
+ knowledge. Users are therefore encouraged to load and test the
58
+ suitability of the software as regards their requirements in conditions
59
+ enabling the security of their systems and/or data to be ensured and,
60
+ more generally, to use and operate it in the same conditions of
61
+ security. This Agreement may be freely reproduced and published,
62
+ provided it is not altered, and that no provisions are either added or
63
+ removed herefrom.
64
+
65
+ This Agreement may apply to any or all software for which the holder of
66
+ the economic rights decides to submit the use thereof to its provisions.
67
+
68
+
69
+ Article 1 - DEFINITIONS
70
+
71
+ For the purpose of this Agreement, when the following expressions
72
+ commence with a capital letter, they shall have the following meaning:
73
+
74
+ Agreement: means this license agreement, and its possible subsequent
75
+ versions and annexes.
76
+
77
+ Software: means the software in its Object Code and/or Source Code form
78
+ and, where applicable, its documentation, "as is" when the Licensee
79
+ accepts the Agreement.
80
+
81
+ Initial Software: means the Software in its Source Code and possibly its
82
+ Object Code form and, where applicable, its documentation, "as is" when
83
+ it is first distributed under the terms and conditions of the Agreement.
84
+
85
+ Modified Software: means the Software modified by at least one
86
+ Contribution.
87
+
88
+ Source Code: means all the Software's instructions and program lines to
89
+ which access is required so as to modify the Software.
90
+
91
+ Object Code: means the binary files originating from the compilation of
92
+ the Source Code.
93
+
94
+ Holder: means the holder(s) of the economic rights over the Initial
95
+ Software.
96
+
97
+ Licensee: means the Software user(s) having accepted the Agreement.
98
+
99
+ Contributor: means a Licensee having made at least one Contribution.
100
+
101
+ Licensor: means the Holder, or any other individual or legal entity, who
102
+ distributes the Software under the Agreement.
103
+
104
+ Contribution: means any or all modifications, corrections, translations,
105
+ adaptations and/or new functions integrated into the Software by any or
106
+ all Contributors, as well as any or all Internal Modules.
107
+
108
+ Module: means a set of sources files including their documentation that
109
+ enables supplementary functions or services in addition to those offered
110
+ by the Software.
111
+
112
+ External Module: means any or all Modules, not derived from the
113
+ Software, so that this Module and the Software run in separate address
114
+ spaces, with one calling the other when they are run.
115
+
116
+ Internal Module: means any or all Module, connected to the Software so
117
+ that they both execute in the same address space.
118
+
119
+ Parties: mean both the Licensee and the Licensor.
120
+
121
+ These expressions may be used both in singular and plural form.
122
+
123
+
124
+ Article 2 - PURPOSE
125
+
126
+ The purpose of the Agreement is the grant by the Licensor to the
127
+ Licensee of a non-exclusive, transferable and worldwide license for the
128
+ Software as set forth in Article 5 hereinafter for the whole term of the
129
+ protection granted by the rights over said Software.
130
+
131
+
132
+ Article 3 - ACCEPTANCE
133
+
134
+ 3.1 The Licensee shall be deemed as having accepted the terms and
135
+ conditions of this Agreement upon the occurrence of the first of the
136
+ following events:
137
+
138
+ * (i) loading the Software by any or all means, notably, by
139
+ downloading from a remote server, or by loading from a physical
140
+ medium;
141
+ * (ii) the first time the Licensee exercises any of the rights
142
+ granted hereunder.
143
+
144
+ 3.2 One copy of the Agreement, containing a notice relating to the
145
+ characteristics of the Software, to the limited warranty, and to the
146
+ fact that its use is restricted to experienced users has been provided
147
+ to the Licensee prior to its acceptance as set forth in Article 3.1
148
+ hereinabove, and the Licensee hereby acknowledges that it has read and
149
+ understood it.
150
+
151
+
152
+ Article 4 - EFFECTIVE DATE AND TERM
153
+
154
+
155
+ 4.1 EFFECTIVE DATE
156
+
157
+ The Agreement shall become effective on the date when it is accepted by
158
+ the Licensee as set forth in Article 3.1.
159
+
160
+
161
+ 4.2 TERM
162
+
163
+ The Agreement shall remain in force for the entire legal term of
164
+ protection of the economic rights over the Software.
165
+
166
+
167
+ Article 5 - SCOPE OF RIGHTS GRANTED
168
+
169
+ The Licensor hereby grants to the Licensee, who accepts, the following
170
+ rights over the Software for any or all use, and for the term of the
171
+ Agreement, on the basis of the terms and conditions set forth hereinafter.
172
+
173
+ Besides, if the Licensor owns or comes to own one or more patents
174
+ protecting all or part of the functions of the Software or of its
175
+ components, the Licensor undertakes not to enforce the rights granted by
176
+ these patents against successive Licensees using, exploiting or
177
+ modifying the Software. If these patents are transferred, the Licensor
178
+ undertakes to have the transferees subscribe to the obligations set
179
+ forth in this paragraph.
180
+
181
+
182
+ 5.1 RIGHT OF USE
183
+
184
+ The Licensee is authorized to use the Software, without any limitation
185
+ as to its fields of application, with it being hereinafter specified
186
+ that this comprises:
187
+
188
+ 1. permanent or temporary reproduction of all or part of the Software
189
+ by any or all means and in any or all form.
190
+
191
+ 2. loading, displaying, running, or storing the Software on any or
192
+ all medium.
193
+
194
+ 3. entitlement to observe, study or test its operation so as to
195
+ determine the ideas and principles behind any or all constituent
196
+ elements of said Software. This shall apply when the Licensee
197
+ carries out any or all loading, displaying, running, transmission
198
+ or storage operation as regards the Software, that it is entitled
199
+ to carry out hereunder.
200
+
201
+
202
+ 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
203
+
204
+ The right to make Contributions includes the right to translate, adapt,
205
+ arrange, or make any or all modifications to the Software, and the right
206
+ to reproduce the resulting software.
207
+
208
+ The Licensee is authorized to make any or all Contributions to the
209
+ Software provided that it includes an explicit notice that it is the
210
+ author of said Contribution and indicates the date of the creation thereof.
211
+
212
+
213
+ 5.3 RIGHT OF DISTRIBUTION
214
+
215
+ In particular, the right of distribution includes the right to publish,
216
+ transmit and communicate the Software to the general public on any or
217
+ all medium, and by any or all means, and the right to market, either in
218
+ consideration of a fee, or free of charge, one or more copies of the
219
+ Software by any means.
220
+
221
+ The Licensee is further authorized to distribute copies of the modified
222
+ or unmodified Software to third parties according to the terms and
223
+ conditions set forth hereinafter.
224
+
225
+
226
+ 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
227
+
228
+ The Licensee is authorized to distribute true copies of the Software in
229
+ Source Code or Object Code form, provided that said distribution
230
+ complies with all the provisions of the Agreement and is accompanied by:
231
+
232
+ 1. a copy of the Agreement,
233
+
234
+ 2. a notice relating to the limitation of both the Licensor's
235
+ warranty and liability as set forth in Articles 8 and 9,
236
+
237
+ and that, in the event that only the Object Code of the Software is
238
+ redistributed, the Licensee allows effective access to the full Source
239
+ Code of the Software at a minimum during the entire period of its
240
+ distribution of the Software, it being understood that the additional
241
+ cost of acquiring the Source Code shall not exceed the cost of
242
+ transferring the data.
243
+
244
+
245
+ 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
246
+
247
+ If the Licensee makes any Contribution to the Software, the resulting
248
+ Modified Software may be distributed under a license agreement other
249
+ than this Agreement subject to compliance with the provisions of Article
250
+ 5.3.4.
251
+
252
+
253
+ 5.3.3 DISTRIBUTION OF EXTERNAL MODULES
254
+
255
+ When the Licensee has developed an External Module, the terms and
256
+ conditions of this Agreement do not apply to said External Module, that
257
+ may be distributed under a separate license agreement.
258
+
259
+
260
+ 5.3.4 CREDITS
261
+
262
+ Any Licensee who may distribute a Modified Software hereby expressly
263
+ agrees to:
264
+
265
+ 1. indicate in the related documentation that it is based on the
266
+ Software licensed hereunder, and reproduce the intellectual
267
+ property notice for the Software,
268
+
269
+ 2. ensure that written indications of the Software intended use,
270
+ intellectual property notice and license hereunder are included in
271
+ easily accessible format from the Modified Software interface,
272
+
273
+ 3. mention, on a freely accessible website describing the Modified
274
+ Software, at least throughout the distribution term thereof, that
275
+ it is based on the Software licensed hereunder, and reproduce the
276
+ Software intellectual property notice,
277
+
278
+ 4. where it is distributed to a third party that may distribute a
279
+ Modified Software without having to make its source code
280
+ available, make its best efforts to ensure that said third party
281
+ agrees to comply with the obligations set forth in this Article .
282
+
283
+ If the Software, whether or not modified, is distributed with an
284
+ External Module designed for use in connection with the Software, the
285
+ Licensee shall submit said External Module to the foregoing obligations.
286
+
287
+
288
+ 5.3.5 COMPATIBILITY WITH THE CeCILL AND CeCILL-C LICENSES
289
+
290
+ Where a Modified Software contains a Contribution subject to the CeCILL
291
+ license, the provisions set forth in Article 5.3.4 shall be optional.
292
+
293
+ A Modified Software may be distributed under the CeCILL-C license. In
294
+ such a case the provisions set forth in Article 5.3.4 shall be optional.
295
+
296
+
297
+ Article 6 - INTELLECTUAL PROPERTY
298
+
299
+
300
+ 6.1 OVER THE INITIAL SOFTWARE
301
+
302
+ The Holder owns the economic rights over the Initial Software. Any or
303
+ all use of the Initial Software is subject to compliance with the terms
304
+ and conditions under which the Holder has elected to distribute its work
305
+ and no one shall be entitled to modify the terms and conditions for the
306
+ distribution of said Initial Software.
307
+
308
+ The Holder undertakes that the Initial Software will remain ruled at
309
+ least by this Agreement, for the duration set forth in Article 4.2.
310
+
311
+
312
+ 6.2 OVER THE CONTRIBUTIONS
313
+
314
+ The Licensee who develops a Contribution is the owner of the
315
+ intellectual property rights over this Contribution as defined by
316
+ applicable law.
317
+
318
+
319
+ 6.3 OVER THE EXTERNAL MODULES
320
+
321
+ The Licensee who develops an External Module is the owner of the
322
+ intellectual property rights over this External Module as defined by
323
+ applicable law and is free to choose the type of agreement that shall
324
+ govern its distribution.
325
+
326
+
327
+ 6.4 JOINT PROVISIONS
328
+
329
+ The Licensee expressly undertakes:
330
+
331
+ 1. not to remove, or modify, in any manner, the intellectual property
332
+ notices attached to the Software;
333
+
334
+ 2. to reproduce said notices, in an identical manner, in the copies
335
+ of the Software modified or not.
336
+
337
+ The Licensee undertakes not to directly or indirectly infringe the
338
+ intellectual property rights of the Holder and/or Contributors on the
339
+ Software and to take, where applicable, vis-�-vis its staff, any and all
340
+ measures required to ensure respect of said intellectual property rights
341
+ of the Holder and/or Contributors.
342
+
343
+
344
+ Article 7 - RELATED SERVICES
345
+
346
+ 7.1 Under no circumstances shall the Agreement oblige the Licensor to
347
+ provide technical assistance or maintenance services for the Software.
348
+
349
+ However, the Licensor is entitled to offer this type of services. The
350
+ terms and conditions of such technical assistance, and/or such
351
+ maintenance, shall be set forth in a separate instrument. Only the
352
+ Licensor offering said maintenance and/or technical assistance services
353
+ shall incur liability therefor.
354
+
355
+ 7.2 Similarly, any Licensor is entitled to offer to its licensees, under
356
+ its sole responsibility, a warranty, that shall only be binding upon
357
+ itself, for the redistribution of the Software and/or the Modified
358
+ Software, under terms and conditions that it is free to decide. Said
359
+ warranty, and the financial terms and conditions of its application,
360
+ shall be subject of a separate instrument executed between the Licensor
361
+ and the Licensee.
362
+
363
+
364
+ Article 8 - LIABILITY
365
+
366
+ 8.1 Subject to the provisions of Article 8.2, the Licensee shall be
367
+ entitled to claim compensation for any direct loss it may have suffered
368
+ from the Software as a result of a fault on the part of the relevant
369
+ Licensor, subject to providing evidence thereof.
370
+
371
+ 8.2 The Licensor's liability is limited to the commitments made under
372
+ this Agreement and shall not be incurred as a result of in particular:
373
+ (i) loss due the Licensee's total or partial failure to fulfill its
374
+ obligations, (ii) direct or consequential loss that is suffered by the
375
+ Licensee due to the use or performance of the Software, and (iii) more
376
+ generally, any consequential loss. In particular the Parties expressly
377
+ agree that any or all pecuniary or business loss (i.e. loss of data,
378
+ loss of profits, operating loss, loss of customers or orders,
379
+ opportunity cost, any disturbance to business activities) or any or all
380
+ legal proceedings instituted against the Licensee by a third party,
381
+ shall constitute consequential loss and shall not provide entitlement to
382
+ any or all compensation from the Licensor.
383
+
384
+
385
+ Article 9 - WARRANTY
386
+
387
+ 9.1 The Licensee acknowledges that the scientific and technical
388
+ state-of-the-art when the Software was distributed did not enable all
389
+ possible uses to be tested and verified, nor for the presence of
390
+ possible defects to be detected. In this respect, the Licensee's
391
+ attention has been drawn to the risks associated with loading, using,
392
+ modifying and/or developing and reproducing the Software which are
393
+ reserved for experienced users.
394
+
395
+ The Licensee shall be responsible for verifying, by any or all means,
396
+ the suitability of the product for its requirements, its good working
397
+ order, and for ensuring that it shall not cause damage to either persons
398
+ or properties.
399
+
400
+ 9.2 The Licensor hereby represents, in good faith, that it is entitled
401
+ to grant all the rights over the Software (including in particular the
402
+ rights set forth in Article 5).
403
+
404
+ 9.3 The Licensee acknowledges that the Software is supplied "as is" by
405
+ the Licensor without any other express or tacit warranty, other than
406
+ that provided for in Article 9.2 and, in particular, without any warranty
407
+ as to its commercial value, its secured, safe, innovative or relevant
408
+ nature.
409
+
410
+ Specifically, the Licensor does not warrant that the Software is free
411
+ from any error, that it will operate without interruption, that it will
412
+ be compatible with the Licensee's own equipment and software
413
+ configuration, nor that it will meet the Licensee's requirements.
414
+
415
+ 9.4 The Licensor does not either expressly or tacitly warrant that the
416
+ Software does not infringe any third party intellectual property right
417
+ relating to a patent, software or any other property right. Therefore,
418
+ the Licensor disclaims any and all liability towards the Licensee
419
+ arising out of any or all proceedings for infringement that may be
420
+ instituted in respect of the use, modification and redistribution of the
421
+ Software. Nevertheless, should such proceedings be instituted against
422
+ the Licensee, the Licensor shall provide it with technical and legal
423
+ assistance for its defense. Such technical and legal assistance shall be
424
+ decided on a case-by-case basis between the relevant Licensor and the
425
+ Licensee pursuant to a memorandum of understanding. The Licensor
426
+ disclaims any and all liability as regards the Licensee's use of the
427
+ name of the Software. No warranty is given as regards the existence of
428
+ prior rights over the name of the Software or as regards the existence
429
+ of a trademark.
430
+
431
+
432
+ Article 10 - TERMINATION
433
+
434
+ 10.1 In the event of a breach by the Licensee of its obligations
435
+ hereunder, the Licensor may automatically terminate this Agreement
436
+ thirty (30) days after notice has been sent to the Licensee and has
437
+ remained ineffective.
438
+
439
+ 10.2 A Licensee whose Agreement is terminated shall no longer be
440
+ authorized to use, modify or distribute the Software. However, any
441
+ licenses that it may have granted prior to termination of the Agreement
442
+ shall remain valid subject to their having been granted in compliance
443
+ with the terms and conditions hereof.
444
+
445
+
446
+ Article 11 - MISCELLANEOUS
447
+
448
+
449
+ 11.1 EXCUSABLE EVENTS
450
+
451
+ Neither Party shall be liable for any or all delay, or failure to
452
+ perform the Agreement, that may be attributable to an event of force
453
+ majeure, an act of God or an outside cause, such as defective
454
+ functioning or interruptions of the electricity or telecommunications
455
+ networks, network paralysis following a virus attack, intervention by
456
+ government authorities, natural disasters, water damage, earthquakes,
457
+ fire, explosions, strikes and labor unrest, war, etc.
458
+
459
+ 11.2 Any failure by either Party, on one or more occasions, to invoke
460
+ one or more of the provisions hereof, shall under no circumstances be
461
+ interpreted as being a waiver by the interested Party of its right to
462
+ invoke said provision(s) subsequently.
463
+
464
+ 11.3 The Agreement cancels and replaces any or all previous agreements,
465
+ whether written or oral, between the Parties and having the same
466
+ purpose, and constitutes the entirety of the agreement between said
467
+ Parties concerning said purpose. No supplement or modification to the
468
+ terms and conditions hereof shall be effective as between the Parties
469
+ unless it is made in writing and signed by their duly authorized
470
+ representatives.
471
+
472
+ 11.4 In the event that one or more of the provisions hereof were to
473
+ conflict with a current or future applicable act or legislative text,
474
+ said act or legislative text shall prevail, and the Parties shall make
475
+ the necessary amendments so as to comply with said act or legislative
476
+ text. All other provisions shall remain effective. Similarly, invalidity
477
+ of a provision of the Agreement, for any reason whatsoever, shall not
478
+ cause the Agreement as a whole to be invalid.
479
+
480
+
481
+ 11.5 LANGUAGE
482
+
483
+ The Agreement is drafted in both French and English and both versions
484
+ are deemed authentic.
485
+
486
+
487
+ Article 12 - NEW VERSIONS OF THE AGREEMENT
488
+
489
+ 12.1 Any person is authorized to duplicate and distribute copies of this
490
+ Agreement.
491
+
492
+ 12.2 So as to ensure coherence, the wording of this Agreement is
493
+ protected and may only be modified by the authors of the License, who
494
+ reserve the right to periodically publish updates or new versions of the
495
+ Agreement, each with a separate number. These subsequent versions may
496
+ address new issues encountered by Free Software.
497
+
498
+ 12.3 Any Software distributed under a given version of the Agreement may
499
+ only be subsequently distributed under the same version of the Agreement
500
+ or a subsequent version.
501
+
502
+
503
+ Article 13 - GOVERNING LAW AND JURISDICTION
504
+
505
+ 13.1 The Agreement is governed by French law. The Parties agree to
506
+ endeavor to seek an amicable solution to any disagreements or disputes
507
+ that may arise during the performance of the Agreement.
508
+
509
+ 13.2 Failing an amicable solution within two (2) months as from their
510
+ occurrence, and unless emergency proceedings are necessary, the
511
+ disagreements or disputes shall be referred to the Paris Courts having
512
+ jurisdiction, by the more diligent Party.
513
+
514
+
515
+ Version 1.0 dated 2006-09-05.