autoproj 1.7.0.rc2 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/History.txt +29 -20
  2. data/Manifest.txt +2 -29
  3. data/Rakefile +7 -28
  4. data/bin/autolocate +9 -37
  5. data/{doc/guide/src → bin}/autoproj_bootstrap +36 -0
  6. data/bin/autoproj_stress_test +40 -0
  7. data/lib/autoproj/cmdline.rb +22 -3
  8. data/lib/autoproj/manifest.rb +0 -2
  9. data/lib/autoproj/version.rb +1 -1
  10. metadata +12 -40
  11. data/doc/guide/config.yaml +0 -29
  12. data/doc/guide/ext/init.rb +0 -18
  13. data/doc/guide/ext/previous_next.rb +0 -40
  14. data/doc/guide/ext/rdoc_links.rb +0 -33
  15. data/doc/guide/src/adding_packages.page +0 -40
  16. data/doc/guide/src/customization.page +0 -230
  17. data/doc/guide/src/default.css +0 -340
  18. data/doc/guide/src/default.template +0 -74
  19. data/doc/guide/src/error_messages.page +0 -37
  20. data/doc/guide/src/htmldoc.metainfo +0 -8
  21. data/doc/guide/src/htmldoc.virtual +0 -19
  22. data/doc/guide/src/images/bodybg.png +0 -0
  23. data/doc/guide/src/images/contbg.png +0 -0
  24. data/doc/guide/src/images/footerbg.png +0 -0
  25. data/doc/guide/src/images/gradient1.png +0 -0
  26. data/doc/guide/src/images/gradient2.png +0 -0
  27. data/doc/guide/src/index.page +0 -64
  28. data/doc/guide/src/manifest.xml +0 -14
  29. data/doc/guide/src/overview.png +0 -0
  30. data/doc/guide/src/overview.svg +0 -537
  31. data/doc/guide/src/package_sets/autobuild.page +0 -239
  32. data/doc/guide/src/package_sets/importers.page +0 -165
  33. data/doc/guide/src/package_sets/index.page +0 -223
  34. data/doc/guide/src/package_sets/manifest-xml.page +0 -29
  35. data/doc/guide/src/package_sets/osdeps.page +0 -128
  36. data/doc/guide/src/quick_start.page +0 -128
  37. data/doc/guide/src/toc.page +0 -7
  38. data/doc/guide/src/writing_manifest.page +0 -146
@@ -1,29 +0,0 @@
1
- ---
2
- title: The manifest.xml file
3
- sort_info: 120
4
- ---
5
-
6
- The manifest.xml is an optional (but *very recommended*) file that lies in the
7
- root of every source package. This file describes both what the package *is*
8
- (i.e. short description, contact information), and dependency information (what
9
- should be installed for that package to be built successfully).
10
-
11
- The general form of the file is:
12
-
13
- {coderay:: xml}
14
- <package>
15
- <description brief="one line of text">
16
- long description goes here,
17
- <em>XHTML is allowed</em>
18
- </description>
19
- <author>Alice/alice@somewhere.bar, Bob/bob@nowhere.foo</author>
20
- <license>BSD</license>
21
- <url>http://sites.google.com/site/rubyinmotion</url>
22
- <logo>http://sites.google.com/site/rubyinmotion</logo>
23
-
24
- <depend package="pkgname"/> <!-- add dependency on either another
25
- autoproj-built package, or an OS-provided one -->
26
- <depend package="common"/>
27
- </package>
28
- {coderay}
29
-
@@ -1,128 +0,0 @@
1
- ---
2
- title: Operating System dependencies
3
- sort_info: 300
4
- ---
5
-
6
- Autoproj offers the possibility to use OS-packaged software instead of building
7
- it, to leverage the underlying platform's software. This page details how it's
8
- done.
9
-
10
- Defining dependencies between source packages and OS packages
11
- -------------------------------------------------------------
12
-
13
- If a source package depends on an OS package, this dependency should be declared
14
- in the same way than between source packages:
15
-
16
- * either by adding the <depend package="os_dep_name" /> tag in the
17
- manifest.xml, or
18
- * by calling #depends_on("os_dep_name") in the autobuild file.
19
-
20
- The os_dep_name above being the name of the package as declared in the OS
21
- dependencies files defined below.
22
-
23
- During the build, autoproj looks first for OS dependencies. If no dependency is
24
- available for that particular platform, it will then look for a source package
25
- definition and build it. If none of the two exist, an error is returned.
26
-
27
- OS packages
28
- -----------
29
-
30
- The general format of the an OS package definition:
31
-
32
- ~~~~~~~~~~~~~~~~~~
33
- name:
34
- distribution1,distribution2:
35
- version1,version2: [package_name1, package_name2]
36
- ~~~~~~~~~~~~~~~~~~
37
-
38
- Where 'name' is the name used to declare the dependency (see above), `distribution`
39
- the name of the distribution and <tt>version</tt> the
40
- distribution's version, and <tt>package_name</tt> the name of the package in
41
- the underlying OS.
42
-
43
- Since the osdeps file is a YAML file, it could also be written
44
-
45
- ~~~~~~~~~~~~~~~~~~
46
- name:
47
- distribution1,distribution2:
48
- version1,version2:
49
- - package_name1
50
- - package_name2
51
- ~~~~~~~~~~~~~~~~~~
52
-
53
- If only one package needs to be installed, one can use the shortcut
54
-
55
- ~~~~~~~~~~~~~~~~~~
56
- name:
57
- distribution1,distribution2:
58
- version1,version2: package_name
59
- ~~~~~~~~~~~~~~~~~~
60
-
61
- Finally, if the package name is version-independent, the version can be omitted:
62
-
63
-
64
- ~~~~~~~~~~~~~~~~~~
65
- name:
66
- distribution1,distribution2: package_name
67
- ~~~~~~~~~~~~~~~~~~
68
-
69
- Examples:
70
-
71
- ~~~~~~~~~~~~~~~~~~
72
- ruby:
73
- debian,ubuntu:
74
- 9.04,10.04,sid: libruby-dev
75
- boost:
76
- debian:
77
- - libboost1.38-dev
78
- - libboost-program1.38-dev
79
- ubuntu:
80
- 9.04,10.04: libboost-dev
81
- ~~~~~~~~~~~~~~~~~~
82
-
83
- At the time of this writing, autoproj is able to install packages on
84
- Ubuntu/Debian and Gentoo. Support for other operating systems can be easily
85
- added, so [contact me](http://github.com/doudou) if you want to do so.
86
-
87
- RubyGems packages
88
- -----------------
89
-
90
- RubyGems packages are OS-independent. In the osdeps files, they can be referred
91
- to by replacing the OS distribution name by 'gem'.
92
-
93
- Example:
94
-
95
- ~~~~~~~~~~~~~~~~~~
96
- hoe:
97
- gem:
98
- hoe
99
- ~~~~~~~~~~~~~~~~~~
100
-
101
- If the OS dep name and the RubyGems name are the same, one can use the shortcut
102
-
103
- ~~~~~~~~~~~~~~~~~~
104
- hoe: gem
105
- ~~~~~~~~~~~~~~~~~~
106
-
107
- Note that it is possible to use a mixture of RubyGems and OS packages. For
108
- instance, the following snippet will both install the gnuplot package and the
109
- gnuplot RubyGems whenever an osdep on 'gnuplot' is declared.
110
-
111
- ~~~~~~~~~~~~~~~~~~
112
- gnuplot:
113
- gem: gnuplot
114
- debian: gnuplot
115
- ~~~~~~~~~~~~~~~~~~
116
-
117
- Ignoring some dependencies
118
- --------------------------
119
- It is possible that, on some operating systems, a given package should simply be
120
- ignored. To do so, simply use the 'ignore' keyword. Example:
121
-
122
- ~~~~~~~~~~~~~~~~~~
123
- gnuplot:
124
- gem: gnuplot
125
- debian: ignore
126
- ubuntu: gnuplot
127
- ~~~~~~~~~~~~~~~~~~
128
-
@@ -1,128 +0,0 @@
1
- ---
2
- title: Quick start
3
- sort_info: 25
4
- ---
5
-
6
- Bootstrapping
7
- -------------
8
- "Bootstrapping" means getting autoproj itself before it can work its magic ...
9
- The canonical way is the following:
10
-
11
- * install Ruby by yourself. On Debian or Ubuntu, this is done with
12
- done with
13
-
14
- sudo apt-get install wget ruby
15
- {: .cmdline}
16
-
17
- * then, [download this script](autoproj_bootstrap) *in the directory where
18
- you want to create an autoproj installation*, and run it. This can be done with
19
-
20
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
21
- ruby autoproj\_bootstrap
22
- {: .cmdline}
23
-
24
- * follow the instructions printed by the script<tt>manifest</tt>.
25
-
26
- Additionally, if you are given a reference to a source code repository in which
27
- an autoproj configuration is stored (i.e. a directory in which a manifest is
28
- present), you can bootstrap this configuration directly:
29
-
30
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
31
- ruby autoproj\_bootstrap VCS
32
- {: .cmdline}
33
-
34
- For instance, to build all packages made available by the RubyInMotion project,
35
- do
36
-
37
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
38
- ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git
39
- {: .cmdline}
40
-
41
- Additional options can be given for the version control system. For instance,
42
-
43
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
44
- ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git branch=stable
45
- {: .cmdline}
46
-
47
- Switching configuration after bootstrapping
48
- -------------------------------------------
49
- Let's assume that you want to switch what configuration autoproj is tracking,
50
- but without having to redo a complete bootstrap -- i.e. avoiding to rebuild
51
- stuff that is common between the configurations.
52
-
53
- autoproj provides the switch-config command for that. This command takes the
54
- same arguments than the bootstrap script, that is:
55
-
56
- autoproj switch-config \[vcs_type] \[vcs_url] \[vcs_options]
57
- {: .cmdline}
58
-
59
- As a shortcut, one can omit vcs_type and vcs_url if they don't change.
60
- This is especially useful when switching between branches:
61
-
62
- autoproj switch-config branch=experimental
63
- {: .cmdline}
64
-
65
- Management
66
- ----------
67
-
68
- To build the packages, simply do:
69
-
70
- autoproj build
71
- {: .commandline}
72
-
73
- It will ask the value of newly defined configuration options, import code hosted
74
- remotely that is not yet present, install OS packages (e.g. Ubuntu packages on
75
- an Ubunut installation) and build everything.
76
-
77
- autoproj will *not* ask you again about the configuration questions you already
78
- answered, so if you want to change them, do:
79
-
80
- autoproj build --reconfigure
81
- {: .commandline}
82
-
83
- Alternatively, you can edit the autoproj/config.yml file directly.
84
-
85
- By default, autoproj does not automatically update the package sources. To do
86
- that, you have to explicitely call
87
-
88
- autoproj update
89
- {: .commandline}
90
-
91
- Finally, if you want to make sure that your build is fresh, then do
92
-
93
- autoproj rebuild
94
- {: .commandline}
95
-
96
- A less intrusive version of it only forces all tools to reconsider building. It
97
- is mainly useful for CMake when the build environment changed -- cmake caches a
98
- lot of values. To trigger this, do
99
-
100
- autoproj force-build
101
- {: .commandline}
102
-
103
- To add a new set, one edits the <tt>autoproj/manifest</tt> file and adds it
104
- there. Then, simply starting the build will update everything and rebuild what
105
- is needed.
106
-
107
- Documentation is generated only when asked explicitely:
108
-
109
- autoproj doc
110
- {: .commandline}
111
-
112
- It generates documentation of packages that have some, and copies that
113
- documentation into build/doc/, following the same layout than the source
114
- directory.
115
-
116
- All these commands (i.e. build, doc, and update) accept a package name as
117
- argument, thus triggering build only for this package and its dependencies. For
118
- instance:
119
-
120
- autoproj build orocos/rtt
121
- {: .commandline}
122
-
123
- **Exception**: to avoid long builds, the rebuild and force-build commands apply only
124
- to the packages given on the command line. E.g., autoproj rebuild orocos/rtt
125
- will only rebuild the orocos/rtt packages. If you want to rebuild both the
126
- packages and its dependencies, use the --with-depends options.
127
- {: .warning}
128
-
@@ -1,7 +0,0 @@
1
- ---
2
- title: Table of Contents
3
- sort_info: -1
4
- ---
5
-
6
- {menu: {nested: true, used_nodes: all, min_levels: 10, max_levels: 10}}
7
-
@@ -1,146 +0,0 @@
1
- ---
2
- title: The manifest file.
3
- sort_info: 50
4
- ---
5
-
6
- This page describes the structure of a autoproj installation, and describes how
7
- to manage one. See [the introduction](index.html) for the bootstrapping process.
8
-
9
- Structure
10
- ---------
11
-
12
- ![Structure overview](overview.png)!
13
- {: .full}
14
-
15
- The autoproj configuration and build process goes like this:
16
-
17
- * a set of packages are declared in _package sets_. These package sets can
18
- either be local (saved along with the rest of the autoproj configuration) or
19
- remote (imported from a VCS). They declare how to get, build and install
20
- a certain number of packages. On the image above, there are three of those
21
- sets: rubim.base, rubim.orocos and rubim.drivers.
22
- * packages that are relevant to the local installation are cherry-picked from
23
- the package sets. One can either select packages one-by-one (the case for the
24
- two packages of rubim.drivers above), or a package set can be imported as a
25
- whole (rubim.orocos and rubim.base).
26
- * autoproj will then import the selected packages, auto-select their
27
- dependencies and import them as well, build and install all of this.
28
- * the selected packages can be imported and built in subdirectories of the
29
- installation tree. In the above example, all packages from rubim.orocos are
30
- built in the tools/ subdirectory, one package of rubim.drivers in the
31
- perception/ subdirectory and so on.
32
-
33
- In practice, the autoproj configuration is saved in an autoproj/ directory. It
34
- is split like this:
35
-
36
- * autoproj/manifest: list of available package sets, package selection and
37
- installation layout (where to put what).
38
- * autoproj/\*/: local sets, i.e. sets that have not been imported from a remote
39
- version control system.
40
- * autoproj/remotes/\*/: package sets that are imported from a remote version
41
- control system
42
- * autoproj/init.rb, autoproj/overrides.rb and autoproj/overrides.yml:
43
- installation customization
44
-
45
- The build is done in two steps:
46
-
47
- * each package is being built in a <tt>build</tt> subdirectory of the package's
48
- source (<tt>package_directory/build/</tt>)
49
- * it is then installed in the build/ directory at the toplevel of the autoproj
50
- installation
51
-
52
- Moreover, the <tt>build/log</tt> directory contains the output of all commands
53
- that have been run during the build.
54
-
55
- Finally, a <tt>env.sh</tt> script is generated to set up your shell for the use
56
- of the installed software.
57
-
58
- Listing and adding package sets
59
- -------------------------------
60
- Package sets are listed in the <tt>package_sets</tt> section of
61
- <tt>autoproj/manifest</tt> file. This section looks like this:
62
-
63
- {coderay:: yaml}
64
- package_sets:
65
- - imoby
66
- - type: git
67
- url: git://github.com/doudou/autoproj-orocos.git
68
- {coderay}
69
-
70
- It lists both local and remote sets that are available for this installation.
71
- Local sets are subdirectories of the <tt>autoproj/</tt> directory: for instance,
72
- in the above example, autoproj will look at the <tt>autoproj/imoby/</tt>
73
- directory. Remote sets are taken from remote version control systems. Its
74
- general format is:
75
-
76
- {coderay:: yaml}
77
- - type: version_control_type # git, svn, cvs, darcs
78
- url: repository_url
79
- {coderay}
80
-
81
- For the git importer, one of 'branch' or 'tag' options can be provided as well:
82
- {coderay:: yaml}
83
- - type: version_control_type # git, svn, cvs, darcs
84
- url: repository_url
85
- branch: branch_to_track
86
- tag: tag_to_stick_to # it is branch OR tag
87
- {coderay}
88
-
89
- Imported package sets are saved in the <tt>.remotes</tt> directory of the
90
- autoproj installation. The importers that are available for configuration are
91
- the same than the ones available for the packages themselves, so see [this
92
- page](package_sets/importers.html#all_importers) for the list of available importers.
93
-
94
- Listing the available packages.
95
- -----------------------------
96
- Once you have updated your manifest file to list all the package sets that you
97
- want to use, you can list all the packages that are now available with
98
-
99
- autoproj list-sets
100
- {: .commandline}
101
-
102
- Its output looks like this:
103
-
104
- <pre>
105
- rubim.orocos
106
- local source in /home/doudou/dfki/imoby1.9/autoproj/orocos
107
- packages:
108
- | orocos/base | git:/home/doudou/dfki/dfki-share/projects/all/Intelligent_Mobility/development/software/git/tools/orocos/base.git |
109
- | orocos/logger | git:/home/doudou/dfki/dfki-share/projects/all/Intelligent_Mobility/development/software/git/tools/orocos/logger.git branch=fast_log |
110
- | orocos/ocl | git:/home/doudou/dfki/dfki-share/projects/all/Intelligent_Mobility/development/software/git/tools/orocos/ocl.git branch=rubim |
111
- </pre>
112
-
113
- The first line is the **package set name**. It is defined in the package set's
114
- source.yml file and *does not have to be identical to the set's directory
115
- name*. In the example above, the package set is saved in autoproj/orocos but is
116
- called dfki.orocos.
117
-
118
- The second line tells you where this set comes from. It is local if it comes
119
- along with the main autoproj configuration (manifest and so on). It is remote
120
- if it is imported from a version control system.
121
-
122
- Finally comes the list of packages that are defined in this set, along with the
123
- importer setup (URL and options, as for instance branches for orocos/logger
124
- above).
125
-
126
- Picking the packages to build
127
- -----------------------------
128
- If you do not wish to build all the packages that are available (you rarely
129
- wish that), you have to list the desired packages in your manifest file.
130
-
131
- To do so, you will have to create a <tt>layout</tt> section and list the
132
- desired packages:
133
-
134
- {coderay:: yaml}
135
- layout:
136
- - rubim.base
137
- - orocos/rtt
138
- - orocos/logger
139
- {coderay}
140
-
141
- This layout can either list packages one by one, but complete package sets can
142
- also be selected (the rubim.base above)
143
-
144
- More advanced mechanisms are available to customize this list. These mechanisms
145
- are [detailed here](customization.html)
146
-