autoproj 1.4.4 → 1.5.0

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.
@@ -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>