annotate doc/interpreter/package.txi @ 6558:e0e1c6df5ab2

[project @ 2007-04-20 19:33:24 by jwe]
author jwe
date Fri, 20 Apr 2007 19:33:24 +0000
parents e3a7611430a8
children 66e30383481b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6537
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
1 @c Copyright (C) 2007 Sren Hauberg
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
2 @c This is part of the Octave manual.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
3 @c For copying conditions, see the file gpl.texi.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
4
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
5 @node Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
6 @chapter Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
7
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
8 Since Octave is Free Software users are encouraged to share their
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
9 programs amongst each other. To aid this sharing Octave supports the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
10 installation of extra packages. The `Octave-Forge' project is a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
11 community-maintained set of packages that can be downloaded and
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
12 installed in Octave. At the time of writing the `Octave-Forge' project
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
13 can be found on-line at @uref{http://octave.sourceforge.net}, but
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
14 since the Internet is an ever-changing place this may not be true at
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
15 the time of reading. Therefore it is recommended to see the Octave
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
16 website for an updated reference.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
17
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
18 @menu
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
19 * Installing and Removing Packages::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
20 * Using Packages::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
21 * Administrating Packages::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
22 * Creating Packages::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
23 @end menu
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
24
6538
e3a7611430a8 [project @ 2007-04-18 18:27:47 by jwe]
jwe
parents: 6537
diff changeset
25 @findex pkg
6537
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
26 @node Installing and Removing Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
27 @section Installing and Removing Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
28
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
29 Assuming a package is available in the file @code{image-1.0.0.tar.gz}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
30 it can be installed from the Octave prompt by writing
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
31
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
32 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
33 pkg install image-1.0.0.tar.gz
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
34 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
35
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
36 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
37 If the package is installed successfully nothing will be printed on
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
38 the prompt, but if an error occurred during installation it will be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
39 reported. It is possible to install several packages at once by
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
40 writing several package files after the @code{pkg install} command.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
41 If a different version of the package is already installed it will
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
42 be removed prior to installing the new package. This makes it easy to
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
43 upgrade and downgrade the version of a package, but makes it
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
44 impossible to have several versions of the same package installed at
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
45 once.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
46
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
47 To see which packages are installed type
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
48
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
49 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
50 @group
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
51 pkg list
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
52 @print{} Package Name | Version | Installation directory
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
53 @print{} -------------+---------+-----------------------
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
54 @print{} image | 1.0.0 | /home/jwe/octave/image-1.0.0
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
55 @end group
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
56 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
57
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
58 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
59 In this case only version 1.0.0 of the @code{image} package is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
60 installed.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
61
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
62 It is possible to remove a package from the system using the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
63 @code{pkg uninstall} command like this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
64
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
65 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
66 pkg uninstall image
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
67 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
68
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
69 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
70 If the package is removed successfully nothing will be printed in the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
71 prompt, but if an error occurred it will be reported. It should be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
72 noted that the package file used for installation is not needed for
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
73 removal, and that only the package name as reported by @code{pkg list}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
74 should be used when removing a package. It is possible to remove
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
75 several packages at once by writing several package names after the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
76 @code{pkg uninstall} command.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
77
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
78 To minimize the amount of code duplication between packages it is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
79 possible that one package depends on another one. If a package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
80 depends on another, it will check if that package is installed
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
81 during installation. If it is not, an error will be reported and
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
82 the package will not be installed. This behaviour can be disabled
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
83 by passing the @code{-nodeps} flag to the @code{pkg install}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
84 command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
85
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
86 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
87 pkg install -nodeps my_package_with_dependencies.tar.gz
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
88 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
89
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
90 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
91 Since the installed package expects its dependencies to be installed
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
92 it may not function correctly. Because of this it is not recommended
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
93 to disable dependency checking.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
94
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
95 @node Using Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
96 @section Using Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
97
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
98 By default installed packages are available from the Octave prompt,
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
99 but it is possible to control this using the @code{pkg load} and
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
100 @code{pkg unload} commands. The functions from a package can be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
101 removed from the Octave path by typing
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
102
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
103 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
104 pkg unload package_name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
105 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
106
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
107 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
108 where @code{package_name} is the name of the package to be removed
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
109 from the path.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
110
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
111 In much the same way a package can be added to the Octave path by
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
112 typing
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
113
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
114 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
115 pkg load package_name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
116 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
117
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
118 @node Administrating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
119 @section Administrating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
120
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
121 On UNIX-like systems it is possible to make both per-user and
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
122 system-wide installations of a package. If the user performing the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
123 installation is @code{root} the packages will be installed in a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
124 system-wide directory that defaults to
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
125 @code{OCTAVE_HOME/share/octave/packages/}. If the user is not
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
126 @code{root} the default installation directory is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
127 @code{~/octave/}. Packages will be installed in a subdirectory of the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
128 installation directory that will be named after the package. It is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
129 possible to change the installation directory by using the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
130 @code{pkg prefix} command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
131
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
132 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
133 pkg prefix new_installation_directory
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
134 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
135
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
136 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
137 The current installation directory can be retrieved by typing
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
138
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
139 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
140 current_installation_directory = pkg prefix
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
141 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
142
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
143 To function properly the package manager needs to keep some
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
144 information about the installed packages. For per-user packages this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
145 information is by default stored in the file @code{~/.octave_packages}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
146 and for system-wide installations it is stored in
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
147 @code{OCTAVE_HOME/share/octave/octave_packages}. The path to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
148 per-user file can be changed with the @code{pkg local_list} command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
149
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
150 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
151 pkg local_list /path/to/new_file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
152 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
153
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
154 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
155 For system-wide installations this can be changed in the same way
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
156 using the @code{pkg global_list} command. If these commands are
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
157 called without a new path, the current path will be returned.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
158
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
159 @node Creating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
160 @section Creating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
161
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
162 Internally a package is simply a gzipped tar file that contains a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
163 top level directory of any given name. This directory will in the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
164 following be referred to as @code{package} and may contain the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
165 following files
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
166
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
167 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
168 @table @code
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
169 @item package/DESCRIPTION
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
170 This is a required file containing information about the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
171 @xref{The DESCRIPTION File}, for details on this file.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
172
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
173 @item package/COPYING
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
174 This is a required file containing the license of the package. No
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
175 restrictions is made on the license in general. If however the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
176 package contains dynamically linked functions the license must be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
177 compatible with the GNU General Public License.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
178
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
179 @item package/INDEX
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
180 This is an optional file describing the functions provided by the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
181 package. If this file is not given then one with be created
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
182 automatically from the functions in the package and the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
183 @code{Categories} keyword in the @code{DESCRIPTION} file.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
184 @xref{The INDEX file}, for details on this file.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
185
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
186 @item package/PKG_ADD
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
187 An optional file that includes commands that are run when the package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
188 is added to the users path. Note that @code{PKG_ADD} directives in the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
189 source code of the package will also be added to this file by the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
190 Octave package manager. Note that symbolic links are to be avoided in
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
191 packages, as symbolic links do not exist on some file systems, and so
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
192 a typical use for this file is the replacement of the symbolic link
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
193
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
194 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
195 ln -s foo.oct bar.oct
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
196 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
197
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
198 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
199 with an autoload directive like
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
200
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
201 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
202 autoload ('bar', which ('foo'));
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
203 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
204
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
205 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
206 @xref{PKG_ADD and PKG_DEL directives}, for details on @code{PKG_ADD}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
207 directives.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
208
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
209 @item package/PKG_DEL
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
210 An optional file that includes commands that are run when the package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
211 is removed from the users path. Note that @code{PKG_DEL} directives in
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
212 the source code of the package will also be added to this file by the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
213 Octave package manager.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
214 @xref{PKG_ADD and PKG_DEL directives}, for details on @code{PKG_DEL}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
215 directives.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
216
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
217 @item package/pre_install.m
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
218 This is an optional script that is run prior to the installation of a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
219 package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
220
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
221 @item package/post_install.m
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
222 This is an optional script that is run after the installation of a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
223 package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
224
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
225 @item package/on_uninstall.m
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
226 This is an optional script that is run prior to the removal of a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
227 package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
228 @end table
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
229
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
230 Besides the above mentioned files, a package can also contain on or
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
231 more of the following directories
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
232
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
233 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
234 @table @code
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
235 @item package/inst
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
236 An optional directory containing any files that are directly installed
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
237 by the package. Typically this will include any @code{m}-files.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
238
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
239 @item package/src
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
240 An optional directory containing code that must be built prior to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
241 packages installation. The Octave package manager will execute
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
242 @code{./configure} in this directory if this script exists, and will
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
243 then call @code{make} if a file @code{Makefile} exists in this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
244 directory. @code{make install} will however not be called. If a file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
245 called @code{FILES} exist all files listed there will be copied to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
246 @code{inst} directory, so they also will be installed. If the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
247 @code{FILES} file doesn't exist, @code{src/*.m} and @code{src/*.oct}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
248 will be copied to the @code{inst} directory.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
249
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
250 @item package/doc
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
251 An optional directory containing documentation for the package. The
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
252 files in this directory will be directly installed in a sub-directory
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
253 of the installed package for future reference.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
254
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
255 @item package/bin
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
256 An optional directory containing files that will be added to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
257 Octave @code{EXEC_PATH} when the package is loaded. This might contain
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
258 external scripts, etc, called by functions within the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
259 @end table
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
260
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
261 @menu
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
262 * The DESCRIPTION File::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
263 * The INDEX file::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
264 * PKG_ADD and PKG_DEL directives::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
265 @end menu
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
266
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
267 @node The DESCRIPTION File
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
268 @subsection The DESCRIPTION File
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
269
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
270 The @code{DESCRIPTION} file contains various information about the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
271 package, such as it's name, author, and version. This file has a very
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
272 simple format
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
273
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
274 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
275 @itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
276 @item
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
277 Lines starting with @code{#} are comments.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
278
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
279 @item
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
280 Lines starting with a blank character are continuations from the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
281 previous line.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
282
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
283 @item
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
284 Everything else is of the form @code{NameOfOption: ValueOfOption}.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
285 @end itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
286
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
287 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
288 The following is a simple example of a @code{DESCRIPTION} file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
289
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
290 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
291 Name: The name of my package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
292 Version: 1.0.0
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
293 Date: 2007-18-04
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
294 Author: The name (and possibly email) of the package author.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
295 Maintainer: The name (and possibly email) of the current package maintainer.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
296 Title: The title of the package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
297 Description: A short description of the package. If this description
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
298 gets too long for one line it can continue on the next by adding a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
299 space to the beginning of the following lines.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
300 License: GPL version 2 or later
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
301 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
302
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
303 The package manager currently recognizes the following keywords
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
304
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
305 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
306 @table @code
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
307 @item Name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
308 Name of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
309
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
310 @item Version
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
311 Version of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
312
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
313 @item Date
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
314 Date of last update.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
315
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
316 @item Author
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
317 Original author of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
318
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
319 @item Maintainer
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
320 Maintainer of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
321
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
322 @item Title
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
323 A one line description of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
324
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
325 @item Description
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
326 A one paragraph description of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
327
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
328 @item Categories
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
329 Optional keyword describing the package (if no @code{INDEX} file is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
330 given this is mandatory).
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
331
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
332 @item Problems
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
333 Optional list of known problems.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
334
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
335 @item Url
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
336 Optional list of homepages related to the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
337
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
338 @item Autoload
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
339 Optional field that sets the default loading behavior for the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
340 If set to @code{yes}, @code{true} or @code{on}, then Octave will
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
341 automatically load the package when starting. Otherwise the package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
342 must be manually loaded with the pkg load command. This default
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
343 behavior can be overridden when the package is installed.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
344
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
345 @item Depends
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
346 A list of other Octave packages that this package depends on. This can
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
347 include dependencies on particular versions, with a format
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
348
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
349 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
350 Depends: package (>= 1.0.0)
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
351 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
352
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
353 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
354 Possible operators are @code{<}, @code{<=}, @code{==}, @code{>=} or
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
355 @code{>}. If the part of the dependency in @code{()} is missing, any
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
356 version of the package is acceptable. Multiple dependencies can be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
357 defined either as a comma separated list or on separate @code{Depends}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
358 lines.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
359
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
360 @item License
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
361 An optional short description of the used license (e.g. GPL version 2
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
362 or newer). This is optional since the file @code{COPYING} is mandatory.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
363
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
364 @item SystemRequirements
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
365 These are the external install dependencies of the package and are not
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
366 checked by the package manager. This is here as a hint to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
367 distribution packager. They follows the same conventions as the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
368 @code{Depends} keyword.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
369
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
370 @item BuildRequires
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
371 These are the external build dependencies of the package and are not
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
372 checked by the package manager. This is here as a hint to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
373 distribution packager. They follows the same conventions as the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
374 @code{Depends} keyword. Note that in general, packaging systems such
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
375 as @code{rpm} or @code{deb} and autoprobe the install dependencies
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
376 from the build dependencies, and therefore the often a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
377 @code{BuildRequires} dependency removes the need for a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
378 @code{SystemRequirements} dependency.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
379
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
380 @end table
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
381
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
382 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
383 The developer is free to add additional arguments to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
384 @code{DESCRIPTION} file for their own purposes. One further detail to
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
385 aid the packager is that the @code{SystemRequirments} and
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
386 @code{BuildRequires} keywords can have distribution dependent section,
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
387 and the automatic build process will use these. An example of the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
388 format of this is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
389
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
390 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
391 BuildRequires: libtermcap-devel [Mandriva] libtermcap2-devel
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
392 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
393
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
394 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
395 where the first package name will be used as a default and if the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
396 RPMs are built on a Mandriva distribution, then the second package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
397 name will be used instead.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
398
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
399 @node The INDEX file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
400 @subsection The INDEX file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
401
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
402 The optional @code{INDEX} file provides an categorical view of the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
403 functions in the package. This file has a very simple format
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
404
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
405 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
406 @itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
407 @item Lines beginning with @code{#} are comments.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
408
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
409 @item The first non-comment line should look like this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
410
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
411 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
412 toolbox >> Toolbox name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
413 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
414
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
415 @item Lines beginning with an alphabetical character indicates a new
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
416 category of functions.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
417
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
418 @item Lines starting with a white space character indicate that the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
419 function names on the line belong to last mentioned category.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
420 @end itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
421
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
422 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
423 The format can be summarized with the following example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
424
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
425 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
426 # A comment
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
427 toolbox >> Toolbox name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
428 Category Name 1
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
429 function1 function2 function3
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
430 function4
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
431 Category Name 2
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
432 functio2 function5
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
433 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
434
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
435 @node PKG_ADD and PKG_DEL directives
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
436 @subsection PKG_ADD and PKG_DEL directives
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
437
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
438 If the package contains files called @code{PKG_ADD} or @code{PKG_DEL}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
439 the commands in these files will be executed when the package is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
440 added or removed from the users path. In some situations such files
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
441 are a bit cumbersome to maintain, so the package manager supports
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
442 automatic creation of such files. If a source file in the package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
443 contains a @code{PKG_ADD} or @code{PKG_DEL} directive they will be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
444 added to either the @code{PKG_ADD} or @code{PKG_DEL} files.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
445
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
446 In @code{m}-files a @code{PKG_ADD} directive looks like this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
447
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
448 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
449 ## PKG_ADD: some_octave_command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
450 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
451
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
452 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
453 Such lines should be added before the @code{function} keyword.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
454 In C++ files a @code{PKG_ADD} directive looks like this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
455
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
456 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
457 // PKG_ADD: some_octave_command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
458 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
459
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
460 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
461 In both cases @code{some_octave_command} should be replaced by the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
462 command that should be placed in the @code{PKG_ADD} file.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
463 @code{PKG_DEL} directives work in the same way, except the @code{PKG_ADD}
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
464 keyword is replaced with @code{PKG_DEL} and the commands get added
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
465 to the @code{PKG_DEL} file.