autoproj 1.4.4 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -69,12 +69,12 @@ require 'tempfile'
69
69
  module Autoproj
70
70
  class OSDependencies
71
71
  def self.load(file)
72
- data =
73
- begin
74
- YAML.load(File.read(file))
75
- rescue ArgumentError => e
76
- raise ConfigError, "error in #{file}: #{e.message}"
77
- end
72
+ begin
73
+ data = YAML.load(File.read(file))
74
+ verify_definitions(data)
75
+ rescue ArgumentError => e
76
+ raise ConfigError, "error in #{file}: #{e.message}"
77
+ end
78
78
 
79
79
  OSDependencies.new(data)
80
80
  end
@@ -114,6 +114,23 @@ module Autoproj
114
114
  @definitions = definitions.merge(info.definitions)
115
115
  end
116
116
 
117
+ def self.verify_definitions(hash = nil)
118
+ hash ||= definitions
119
+ hash.each do |key, value|
120
+ if !key.kind_of?(String)
121
+ raise ArgumentError, "invalid osdeps definition: found an #{key.class}. Don't forget to put quotes around numbers"
122
+ end
123
+ next if !value
124
+ if value.kind_of?(Array) || value.kind_of?(Hash)
125
+ verify_definitions(value)
126
+ else
127
+ if !value.kind_of?(String)
128
+ raise ArgumentError, "invalid osdeps definition: found an #{value.class}. Don't forget to put quotes around numbers"
129
+ end
130
+ end
131
+ end
132
+ end
133
+
117
134
  def operating_system
118
135
  if @operating_system
119
136
  return @operating_system
@@ -211,7 +228,9 @@ module Autoproj
211
228
  version_entry = data.find do |version_list, data|
212
229
  version_list.to_s.split(',').
213
230
  map(&:downcase).
214
- any? { |v| os_version.include?(v) }
231
+ any? do |v|
232
+ os_version.any? { |osv| Regexp.new(v) =~ osv }
233
+ end
215
234
  end
216
235
 
217
236
  if !version_entry
@@ -235,8 +254,24 @@ module Autoproj
235
254
  "\n" + shell_snippets
236
255
  end
237
256
 
257
+ # Returns true if there is an operating-system package with that name,
258
+ # and false otherwise
259
+ def has?(name)
260
+ partition_packages([name].to_set)
261
+ true
262
+ rescue ConfigError
263
+ false
264
+ end
265
+
238
266
  # call-seq:
239
267
  # partition_packages(package_names) => os_packages, gem_packages
268
+ #
269
+ # Resolves the package names listed in +package_set+, and returns a set
270
+ # of packages that have to be installed using the platform's native
271
+ # package manager, and the set of packages that have to be installed
272
+ # using Ruby's package manager, RubyGems.
273
+ #
274
+ # Raises ConfigError if no package can be found
240
275
  def partition_packages(package_set, package_osdeps = Hash.new)
241
276
  package_set = package_set.
242
277
  map { |name| OSDependencies.aliases[name] || name }.
@@ -377,7 +412,17 @@ ruby18:
377
412
  - dev-lang/ruby:1.8
378
413
 
379
414
  ruby19:
380
- debian,ubuntu:
415
+ debian:
416
+ squeeze,sid:
417
+ - ruby1.9.1
418
+ - ruby1.9.1-dev
419
+ - rubygems1.9.1
420
+ stable:
421
+ - ruby1.9.1
422
+ - ruby1.9.1-dev
423
+ - rubygems1.9.1
424
+
425
+ ubuntu:
381
426
  - ruby1.9.1
382
427
  - ruby1.9.1-dev
383
428
  - rubygems1.9.1
@@ -411,7 +456,7 @@ autoproj: gem
411
456
  # The following definitions are for the VCS and build systems
412
457
  git:
413
458
  debian,ubuntu: git-core
414
- gentoo: dev-util/git
459
+ gentoo: dev-vcs/git
415
460
  arch: git
416
461
  svn:
417
462
  debian,ubuntu: subversion
@@ -7,6 +7,7 @@ Changing the installation's layout
7
7
  ----------------------------------
8
8
 
9
9
  The <tt>layout</tt> section of <tt>autoproj/manifest</tt> offers two things:
10
+
10
11
  * select which packages/package sets to build and
11
12
  * build packages in specific subdirectories
12
13
 
@@ -137,8 +138,8 @@ Autobuild.parallel_build_level = 10 # build with -j10
137
138
  More complex customization
138
139
  --------------------------
139
140
 
140
- More complex customization can be achieved by accessing the Autoproj and
141
- Autobuild API directly in the <tt>autoproj/init.rb</tt> and
141
+ More complex customization can be achieved by accessing the [Autoproj API](api/index.html) and
142
+ the [Autobuild API](http://doudou.github.com/autobuild/index.html) directly in the <tt>autoproj/init.rb</tt> and
142
143
  <tt>autoproj/overrides.rb</tt>
143
144
  files. The former is loaded before all source files and the latter is loaded
144
145
  after all source files.
@@ -177,12 +178,12 @@ layout:
177
178
  If the command line is
178
179
 
179
180
  autoproj build modules/logger
180
- {: .cmdline}
181
+ {: .commandline}
181
182
 
182
183
  then modules/logger and its dependencies will be built. Idem, if the command line is:
183
184
 
184
185
  autoproj build asguard
185
- {: .cmdline}
186
+ {: .commandline}
186
187
 
187
188
  then all packages or asguard/ are built, including their dependencies
188
189
 
@@ -43,48 +43,8 @@ Each package definition includes:
43
43
  * on what the package depends. This can be either another package built by
44
44
  autoproj, or an operating system package.
45
45
 
46
- See [this page](structure.html) for more information.
46
+ See [this page](writing_manifest.html) for more information.
47
47
 
48
- Bootstrapping
49
- -------------
50
- "Bootstrapping" means getting autoproj itself before it can work its magic ...
51
- The canonical way is the following:
52
-
53
- * install Ruby by yourself. On Debian or Ubuntu, this is done with
54
- done with
55
-
56
- sudo apt-get install wget ruby
57
- {.cmdline}
58
-
59
- * then, [download this script](autoproj_bootstrap) *in the directory where
60
- you want to create an autoproj installation*, and run it. This can be done with
61
-
62
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
63
- ruby autoproj\_bootstrap
64
- {.cmdline}
65
-
66
- * follow the instructions printed by the script<tt>manifest</tt>.
67
-
68
- Additionally, if you are given a reference to a source code repository in which
69
- an autoproj configuration is stored (i.e. a directory in which a manifest is
70
- present), you can bootstrap this configuration directly:
71
-
72
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
73
- ruby autoproj\_bootstrap VCS
74
- {.cmdline}
75
-
76
- For instance, to build all packages made available by the RubyInMotion project,
77
- do
78
-
79
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
80
- ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git
81
- {.cmdline}
82
-
83
- Additional options can be given for the version control system. For instance,
84
-
85
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
86
- ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git branch=stable
87
- {.cmdline}
88
48
 
89
49
  Software packages in Autoproj
90
50
  -----------------------------
@@ -0,0 +1,537 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="744.09448819"
13
+ height="1052.3622047"
14
+ id="svg2"
15
+ version="1.1"
16
+ inkscape:version="0.47 r22583"
17
+ sodipodi:docname="overview.svg"
18
+ inkscape:export-filename="/home/doudou/src/autoproj/doc/guide/src/overview.png"
19
+ inkscape:export-xdpi="60.000832"
20
+ inkscape:export-ydpi="60.000832">
21
+ <defs
22
+ id="defs4">
23
+ <marker
24
+ inkscape:stockid="TriangleOutL"
25
+ orient="auto"
26
+ refY="0.0"
27
+ refX="0.0"
28
+ id="TriangleOutL"
29
+ style="overflow:visible">
30
+ <path
31
+ id="path4003"
32
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
33
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
34
+ transform="scale(0.8)" />
35
+ </marker>
36
+ <inkscape:perspective
37
+ sodipodi:type="inkscape:persp3d"
38
+ inkscape:vp_x="0 : 526.18109 : 1"
39
+ inkscape:vp_y="0 : 1000 : 0"
40
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
41
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
42
+ id="perspective10" />
43
+ <inkscape:perspective
44
+ id="perspective2830"
45
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
46
+ inkscape:vp_z="1 : 0.5 : 1"
47
+ inkscape:vp_y="0 : 1000 : 0"
48
+ inkscape:vp_x="0 : 0.5 : 1"
49
+ sodipodi:type="inkscape:persp3d" />
50
+ <inkscape:perspective
51
+ id="perspective2830-6"
52
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
53
+ inkscape:vp_z="1 : 0.5 : 1"
54
+ inkscape:vp_y="0 : 1000 : 0"
55
+ inkscape:vp_x="0 : 0.5 : 1"
56
+ sodipodi:type="inkscape:persp3d" />
57
+ <inkscape:perspective
58
+ id="perspective2830-2"
59
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
60
+ inkscape:vp_z="1 : 0.5 : 1"
61
+ inkscape:vp_y="0 : 1000 : 0"
62
+ inkscape:vp_x="0 : 0.5 : 1"
63
+ sodipodi:type="inkscape:persp3d" />
64
+ <inkscape:perspective
65
+ id="perspective2830-3"
66
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
67
+ inkscape:vp_z="1 : 0.5 : 1"
68
+ inkscape:vp_y="0 : 1000 : 0"
69
+ inkscape:vp_x="0 : 0.5 : 1"
70
+ sodipodi:type="inkscape:persp3d" />
71
+ <inkscape:perspective
72
+ id="perspective2830-4"
73
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
74
+ inkscape:vp_z="1 : 0.5 : 1"
75
+ inkscape:vp_y="0 : 1000 : 0"
76
+ inkscape:vp_x="0 : 0.5 : 1"
77
+ sodipodi:type="inkscape:persp3d" />
78
+ <inkscape:perspective
79
+ id="perspective2888"
80
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
81
+ inkscape:vp_z="1 : 0.5 : 1"
82
+ inkscape:vp_y="0 : 1000 : 0"
83
+ inkscape:vp_x="0 : 0.5 : 1"
84
+ sodipodi:type="inkscape:persp3d" />
85
+ <inkscape:perspective
86
+ id="perspective2947"
87
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
88
+ inkscape:vp_z="1 : 0.5 : 1"
89
+ inkscape:vp_y="0 : 1000 : 0"
90
+ inkscape:vp_x="0 : 0.5 : 1"
91
+ sodipodi:type="inkscape:persp3d" />
92
+ <inkscape:perspective
93
+ id="perspective3754"
94
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
95
+ inkscape:vp_z="1 : 0.5 : 1"
96
+ inkscape:vp_y="0 : 1000 : 0"
97
+ inkscape:vp_x="0 : 0.5 : 1"
98
+ sodipodi:type="inkscape:persp3d" />
99
+ <inkscape:perspective
100
+ id="perspective3791"
101
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
102
+ inkscape:vp_z="1 : 0.5 : 1"
103
+ inkscape:vp_y="0 : 1000 : 0"
104
+ inkscape:vp_x="0 : 0.5 : 1"
105
+ sodipodi:type="inkscape:persp3d" />
106
+ <inkscape:perspective
107
+ id="perspective3813"
108
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
109
+ inkscape:vp_z="1 : 0.5 : 1"
110
+ inkscape:vp_y="0 : 1000 : 0"
111
+ inkscape:vp_x="0 : 0.5 : 1"
112
+ sodipodi:type="inkscape:persp3d" />
113
+ <inkscape:perspective
114
+ id="perspective3838"
115
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
116
+ inkscape:vp_z="1 : 0.5 : 1"
117
+ inkscape:vp_y="0 : 1000 : 0"
118
+ inkscape:vp_x="0 : 0.5 : 1"
119
+ sodipodi:type="inkscape:persp3d" />
120
+ <inkscape:perspective
121
+ id="perspective4323"
122
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
123
+ inkscape:vp_z="1 : 0.5 : 1"
124
+ inkscape:vp_y="0 : 1000 : 0"
125
+ inkscape:vp_x="0 : 0.5 : 1"
126
+ sodipodi:type="inkscape:persp3d" />
127
+ <marker
128
+ inkscape:stockid="TriangleOutL"
129
+ orient="auto"
130
+ refY="0"
131
+ refX="0"
132
+ id="TriangleOutL-5"
133
+ style="overflow:visible">
134
+ <path
135
+ id="path4003-4"
136
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
137
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
138
+ transform="scale(0.8,0.8)" />
139
+ </marker>
140
+ <inkscape:perspective
141
+ id="perspective4354"
142
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
143
+ inkscape:vp_z="1 : 0.5 : 1"
144
+ inkscape:vp_y="0 : 1000 : 0"
145
+ inkscape:vp_x="0 : 0.5 : 1"
146
+ sodipodi:type="inkscape:persp3d" />
147
+ <inkscape:perspective
148
+ id="perspective4354-5"
149
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
150
+ inkscape:vp_z="1 : 0.5 : 1"
151
+ inkscape:vp_y="0 : 1000 : 0"
152
+ inkscape:vp_x="0 : 0.5 : 1"
153
+ sodipodi:type="inkscape:persp3d" />
154
+ <inkscape:perspective
155
+ id="perspective4385"
156
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
157
+ inkscape:vp_z="1 : 0.5 : 1"
158
+ inkscape:vp_y="0 : 1000 : 0"
159
+ inkscape:vp_x="0 : 0.5 : 1"
160
+ sodipodi:type="inkscape:persp3d" />
161
+ <marker
162
+ inkscape:stockid="TriangleOutL"
163
+ orient="auto"
164
+ refY="0"
165
+ refX="0"
166
+ id="TriangleOutL-3"
167
+ style="overflow:visible">
168
+ <path
169
+ id="path4003-7"
170
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
171
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
172
+ transform="scale(0.8,0.8)" />
173
+ </marker>
174
+ <inkscape:perspective
175
+ id="perspective4413"
176
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
177
+ inkscape:vp_z="1 : 0.5 : 1"
178
+ inkscape:vp_y="0 : 1000 : 0"
179
+ inkscape:vp_x="0 : 0.5 : 1"
180
+ sodipodi:type="inkscape:persp3d" />
181
+ <marker
182
+ inkscape:stockid="TriangleOutL"
183
+ orient="auto"
184
+ refY="0"
185
+ refX="0"
186
+ id="TriangleOutL-52"
187
+ style="overflow:visible">
188
+ <path
189
+ id="path4003-5"
190
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
191
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
192
+ transform="scale(0.8,0.8)" />
193
+ </marker>
194
+ <inkscape:perspective
195
+ id="perspective4457"
196
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
197
+ inkscape:vp_z="1 : 0.5 : 1"
198
+ inkscape:vp_y="0 : 1000 : 0"
199
+ inkscape:vp_x="0 : 0.5 : 1"
200
+ sodipodi:type="inkscape:persp3d" />
201
+ </defs>
202
+ <sodipodi:namedview
203
+ id="base"
204
+ pagecolor="#ffffff"
205
+ bordercolor="#666666"
206
+ borderopacity="1.0"
207
+ inkscape:pageopacity="0.0"
208
+ inkscape:pageshadow="2"
209
+ inkscape:zoom="0.7"
210
+ inkscape:cx="237.11418"
211
+ inkscape:cy="875.88569"
212
+ inkscape:document-units="px"
213
+ inkscape:current-layer="layer1"
214
+ showgrid="false"
215
+ inkscape:window-width="1125"
216
+ inkscape:window-height="630"
217
+ inkscape:window-x="151"
218
+ inkscape:window-y="138"
219
+ inkscape:window-maximized="0" />
220
+ <metadata
221
+ id="metadata7">
222
+ <rdf:RDF>
223
+ <cc:Work
224
+ rdf:about="">
225
+ <dc:format>image/svg+xml</dc:format>
226
+ <dc:type
227
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
228
+ <dc:title></dc:title>
229
+ </cc:Work>
230
+ </rdf:RDF>
231
+ </metadata>
232
+ <g
233
+ inkscape:label="Layer 1"
234
+ inkscape:groupmode="layer"
235
+ id="layer1">
236
+ <path
237
+ sodipodi:type="arc"
238
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:4.16965151;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
239
+ id="path2816"
240
+ sodipodi:cx="254.59831"
241
+ sodipodi:cy="163.42795"
242
+ sodipodi:rx="166.71504"
243
+ sodipodi:ry="103.03556"
244
+ d="m 421.31335,163.42795 a 166.71504,103.03556 0 1 1 -333.43008,0 166.71504,103.03556 0 1 1 333.43008,0 z"
245
+ transform="matrix(0.18978279,-0.05247478,0.05168753,0.28877689,103.88856,104.33991)" />
246
+ <path
247
+ sodipodi:type="arc"
248
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
249
+ id="path2818"
250
+ sodipodi:cx="159.09903"
251
+ sodipodi:cy="136.65891"
252
+ sodipodi:rx="16.667517"
253
+ sodipodi:ry="16.667517"
254
+ d="m 175.76655,136.65891 a 16.667517,16.667517 0 1 1 -33.33504,0 16.667517,16.667517 0 1 1 33.33504,0 z" />
255
+ <path
256
+ sodipodi:type="arc"
257
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:1.79343462;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
258
+ id="path2816-8"
259
+ sodipodi:cx="254.59831"
260
+ sodipodi:cy="163.42795"
261
+ sodipodi:rx="166.71504"
262
+ sodipodi:ry="103.03556"
263
+ d="m 421.31335,163.42795 a 166.71504,103.03556 0 1 1 -333.43008,0 166.71504,103.03556 0 1 1 333.43008,0 z"
264
+ transform="matrix(0.50641325,-0.10629939,0.13792213,0.58498209,355.11921,91.858708)" />
265
+ <path
266
+ transform="translate(306.54144,5.5558351)"
267
+ sodipodi:type="arc"
268
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
269
+ id="path2818-4"
270
+ sodipodi:cx="159.09903"
271
+ sodipodi:cy="136.65891"
272
+ sodipodi:rx="16.667517"
273
+ sodipodi:ry="16.667517"
274
+ d="m 175.76655,136.65891 a 16.667517,16.667517 0 1 1 -33.33504,0 16.667517,16.667517 0 1 1 33.33504,0 z" />
275
+ <path
276
+ transform="translate(216.63785,44.951787)"
277
+ sodipodi:type="arc"
278
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
279
+ id="path2820-3-0"
280
+ sodipodi:cx="267.69043"
281
+ sodipodi:cy="142.21474"
282
+ sodipodi:rx="19.192898"
283
+ sodipodi:ry="19.192898"
284
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
285
+ <path
286
+ transform="translate(278.25716,35.860414)"
287
+ sodipodi:type="arc"
288
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
289
+ id="path2820-1-3"
290
+ sodipodi:cx="267.69043"
291
+ sodipodi:cy="142.21474"
292
+ sodipodi:rx="19.192898"
293
+ sodipodi:ry="19.192898"
294
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
295
+ <path
296
+ transform="translate(243.91197,-6.5659926)"
297
+ sodipodi:type="arc"
298
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
299
+ id="path2820-9-6"
300
+ sodipodi:cx="267.69043"
301
+ sodipodi:cy="142.21474"
302
+ sodipodi:rx="19.192898"
303
+ sodipodi:ry="19.192898"
304
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
305
+ <rect
306
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999672;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
307
+ id="rect2929"
308
+ width="529.31995"
309
+ height="29.294422"
310
+ x="97.984795"
311
+ y="292.72748" />
312
+ <text
313
+ xml:space="preserve"
314
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
315
+ x="302.71146"
316
+ y="313.94067"
317
+ id="text2931"><tspan
318
+ sodipodi:role="line"
319
+ id="tspan2933"
320
+ x="302.71146"
321
+ y="313.94067"
322
+ style="font-size:20px;font-weight:bold">- layout:</tspan></text>
323
+ <text
324
+ xml:space="preserve"
325
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
326
+ x="107.07617"
327
+ y="100.79848"
328
+ id="text2935"><tspan
329
+ sodipodi:role="line"
330
+ id="tspan2937"
331
+ x="107.07617"
332
+ y="100.79848"
333
+ style="font-size:20px">rubim.base</tspan></text>
334
+ <text
335
+ xml:space="preserve"
336
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
337
+ x="445.27017"
338
+ y="90.456779"
339
+ id="text2935-6"><tspan
340
+ sodipodi:role="line"
341
+ id="tspan2937-3"
342
+ x="445.27017"
343
+ y="90.456779"
344
+ style="font-size:20px">rubim.orocos</tspan></text>
345
+ <text
346
+ xml:space="preserve"
347
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
348
+ x="-220.74072"
349
+ y="60.887867"
350
+ id="text2964"
351
+ transform="matrix(0,-1,1,0,0,0)"><tspan
352
+ sodipodi:role="line"
353
+ id="tspan2966"
354
+ x="-220.74072"
355
+ y="60.887867"
356
+ style="font-size:12;font-weight:bold">Package sets</tspan></text>
357
+ <path
358
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1,3;stroke-dashoffset:0"
359
+ d="m 42.426407,269.49396 629.325033,0"
360
+ id="path2968" />
361
+ <text
362
+ xml:space="preserve"
363
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
364
+ x="167.68533"
365
+ y="393.37723"
366
+ id="text3742"><tspan
367
+ sodipodi:role="line"
368
+ id="tspan3744"
369
+ x="167.68533"
370
+ y="393.37723">tools/</tspan></text>
371
+ <path
372
+ transform="translate(31.819805,-2.5253825)"
373
+ sodipodi:type="arc"
374
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
375
+ id="path2820"
376
+ sodipodi:cx="267.69043"
377
+ sodipodi:cy="142.21474"
378
+ sodipodi:rx="19.192898"
379
+ sodipodi:ry="19.192898"
380
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
381
+ <path
382
+ transform="translate(-51.012705,61.11423)"
383
+ sodipodi:type="arc"
384
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
385
+ id="path2820-3"
386
+ sodipodi:cx="267.69043"
387
+ sodipodi:cy="142.21474"
388
+ sodipodi:rx="19.192898"
389
+ sodipodi:ry="19.192898"
390
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
391
+ <path
392
+ transform="translate(10.606595,52.022857)"
393
+ sodipodi:type="arc"
394
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
395
+ id="path2820-1"
396
+ sodipodi:cx="267.69043"
397
+ sodipodi:cy="142.21474"
398
+ sodipodi:rx="19.192898"
399
+ sodipodi:ry="19.192898"
400
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
401
+ <path
402
+ transform="translate(-23.738585,9.5964505)"
403
+ sodipodi:type="arc"
404
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
405
+ id="path2820-9"
406
+ sodipodi:cx="267.69043"
407
+ sodipodi:cy="142.21474"
408
+ sodipodi:rx="19.192898"
409
+ sodipodi:ry="19.192898"
410
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
411
+ <path
412
+ transform="translate(79.296965,-30.80965)"
413
+ sodipodi:type="arc"
414
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
415
+ id="path2820-19"
416
+ sodipodi:cx="267.69043"
417
+ sodipodi:cy="142.21474"
418
+ sodipodi:rx="19.192898"
419
+ sodipodi:ry="19.192898"
420
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
421
+ <path
422
+ transform="translate(76.266515,28.789348)"
423
+ sodipodi:type="arc"
424
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
425
+ id="path2820-7"
426
+ sodipodi:cx="267.69043"
427
+ sodipodi:cy="142.21474"
428
+ sodipodi:rx="19.192898"
429
+ sodipodi:ry="19.192898"
430
+ d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
431
+ <path
432
+ sodipodi:type="arc"
433
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:1.3320992;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
434
+ id="path2816-8-2"
435
+ sodipodi:cx="254.59831"
436
+ sodipodi:cy="163.42795"
437
+ sodipodi:rx="166.71504"
438
+ sodipodi:ry="85.728012"
439
+ d="m 421.31335,163.42795 a 166.71504,85.728012 0 1 1 -333.43008,0 166.71504,85.728012 0 1 1 333.43008,0 z"
440
+ transform="matrix(0.59229465,-0.35644403,0.41771,0.70007151,72.366301,138.25152)" />
441
+ <text
442
+ xml:space="preserve"
443
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
444
+ x="261.38611"
445
+ y="66.838287"
446
+ id="text2935-6-0"><tspan
447
+ sodipodi:role="line"
448
+ id="tspan2937-3-6"
449
+ x="261.38611"
450
+ y="66.838287"
451
+ style="font-size:20px">rubim.drivers</tspan></text>
452
+ <text
453
+ xml:space="preserve"
454
+ style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
455
+ x="-373.54053"
456
+ y="37.548969"
457
+ id="text2964-1"
458
+ transform="matrix(0,-1,1,0,0,0)"><tspan
459
+ sodipodi:role="line"
460
+ id="tspan2966-5"
461
+ x="-373.54053"
462
+ y="37.548969"
463
+ style="font-size:20px;font-weight:bold;text-align:center;text-anchor:middle">Final</tspan><tspan
464
+ sodipodi:role="line"
465
+ x="-373.54053"
466
+ y="62.548969"
467
+ style="font-size:20px;font-weight:bold;text-align:center;text-anchor:middle"
468
+ id="tspan4433">Installation</tspan></text>
469
+ <path
470
+ style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutL)"
471
+ d="m 492.95446,224.0371 0,162.68611 -258.09678,0"
472
+ id="path3855" />
473
+ <path
474
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.99999982px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#TriangleOutL);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
475
+ d="m 163.45186,168.26334 0,184.49701 -14.6988,0"
476
+ id="path4305" />
477
+ <text
478
+ xml:space="preserve"
479
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
480
+ x="112.12692"
481
+ y="354.34677"
482
+ id="text4307"><tspan
483
+ sodipodi:role="line"
484
+ id="tspan4309"
485
+ x="112.12692"
486
+ y="354.34677">/</tspan></text>
487
+ <path
488
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
489
+ d="m 121.93769,350.30616 17.75412,0"
490
+ id="path4311" />
491
+ <path
492
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
493
+ d="m 139.40105,350.30616 0,59.599 24.24366,0"
494
+ id="path4313" />
495
+ <text
496
+ xml:space="preserve"
497
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
498
+ x="166.67517"
499
+ y="415.96609"
500
+ id="text4342"><tspan
501
+ sodipodi:role="line"
502
+ id="tspan4344"
503
+ x="166.67517"
504
+ y="415.96609"
505
+ style="font-size:20px">perception/</tspan></text>
506
+ <path
507
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
508
+ d="m 139.81736,385.66152 24.9263,0"
509
+ id="path4311-6" />
510
+ <path
511
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.99999976px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#TriangleOutL);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
512
+ d="m 279.36811,213.63125 0,157.3073 -130.84834,0"
513
+ id="path4305-4" />
514
+ <path
515
+ style="color:#000000;fill:none;stroke:#000000;stroke-width:0.9999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#TriangleOutL);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
516
+ d="m 342.01789,190.27997 0,219.9989 -52.19448,0"
517
+ id="path4305-4-4" />
518
+ <rect
519
+ style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999672;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
520
+ id="rect2929-7"
521
+ width="529.31995"
522
+ height="29.294422"
523
+ x="96.768593"
524
+ y="13.429255" />
525
+ <text
526
+ xml:space="preserve"
527
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
528
+ x="271.49524"
529
+ y="34.642452"
530
+ id="text2931-4"><tspan
531
+ sodipodi:role="line"
532
+ id="tspan2933-4"
533
+ x="271.49524"
534
+ y="34.642452"
535
+ style="font-size:20px;font-weight:bold">- package_sets:</tspan></text>
536
+ </g>
537
+ </svg>