annotate doc/interpreter/package.txi @ 7016:93c65f2a5668

[project @ 2007-10-12 06:40:56 by jwe]
author jwe
date Fri, 12 Oct 2007 06:41:26 +0000
parents 6304d9ea0a30
children fd42779a8428
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
6616
66e30383481b [project @ 2007-05-14 13:56:34 by dbateman]
dbateman
parents: 6538
diff changeset
52 @print{} Package Name | Version | Installation directory
66e30383481b [project @ 2007-05-14 13:56:34 by dbateman]
dbateman
parents: 6538
diff changeset
53 @print{} --------------+---------+-----------------------
66e30383481b [project @ 2007-05-14 13:56:34 by dbateman]
dbateman
parents: 6538
diff changeset
54 @print{} image *| 1.0.0 | /home/jwe/octave/image-1.0.0
6537
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
6616
66e30383481b [project @ 2007-05-14 13:56:34 by dbateman]
dbateman
parents: 6538
diff changeset
60 installed. The '*' character next to the package name shows that the
66e30383481b [project @ 2007-05-14 13:56:34 by dbateman]
dbateman
parents: 6538
diff changeset
61 image package is loaded and ready for use.
6537
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
62
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
63 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
64 @code{pkg uninstall} command like this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
65
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
66 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
67 pkg uninstall image
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
68 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
69
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
70 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
71 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
72 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
73 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
74 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
75 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
76 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
77 @code{pkg uninstall} command.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
78
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
79 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
80 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
81 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
82 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
83 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
84 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
85 command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
86
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
87 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
88 pkg install -nodeps my_package_with_dependencies.tar.gz
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
89 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
90
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
91 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
92 Since the installed package expects its dependencies to be installed
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
93 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
94 to disable dependency checking.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
95
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
96 @node Using Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
97 @section Using Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
98
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
99 By default installed packages are available from the Octave prompt,
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
100 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
101 @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
102 removed from the Octave path by typing
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
103
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
104 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
105 pkg unload package_name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
106 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
107
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
108 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
109 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
110 from the path.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
111
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
112 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
113 typing
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
114
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
115 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
116 pkg load package_name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
117 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
118
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
119 @node Administrating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
120 @section Administrating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
121
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
122 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
123 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
124 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
125 system-wide directory that defaults to
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
126 @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
127 @code{root} the default installation directory is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
128 @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
129 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
130 possible to change the installation directory by using the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
131 @code{pkg prefix} command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
132
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
133 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
134 pkg prefix new_installation_directory
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
135 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
136
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
137 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
138 The current installation directory can be retrieved by typing
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
139
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
140 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
141 current_installation_directory = pkg prefix
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
142 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
143
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
144 To function properly the package manager needs to keep some
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
145 information about the installed packages. For per-user packages this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
146 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
147 and for system-wide installations it is stored in
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
148 @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
149 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
150
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
151 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
152 pkg local_list /path/to/new_file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
153 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
154
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
155 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
156 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
157 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
158 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
159
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
160 @node Creating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
161 @section Creating Packages
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
162
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
163 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
164 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
165 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
166 following files
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
167
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
168 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
169 @table @code
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
170 @item package/DESCRIPTION
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
171 This is a required file containing information about the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
172 @xref{The DESCRIPTION File}, for details on this file.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
173
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
174 @item package/COPYING
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
175 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
176 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
177 package contains dynamically linked functions the license must be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
178 compatible with the GNU General Public License.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
179
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
180 @item package/INDEX
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
181 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
182 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
183 automatically from the functions in the package and the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
184 @code{Categories} keyword in the @code{DESCRIPTION} file.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
185 @xref{The INDEX file}, for details on this file.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
186
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
187 @item package/PKG_ADD
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
188 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
189 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
190 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
191 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
192 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
193 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
194
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
195 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
196 ln -s foo.oct bar.oct
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
197 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
198
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
199 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
200 with an autoload directive like
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
201
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
202 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
203 autoload ('bar', which ('foo'));
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
204 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
205
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
206 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
207 @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
208 directives.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
209
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
210 @item package/PKG_DEL
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
211 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
212 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
213 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
214 Octave package manager.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
215 @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
216 directives.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
217
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
218 @item package/pre_install.m
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
219 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
220 package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
221
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
222 @item package/post_install.m
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
223 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
224 package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
225
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
226 @item package/on_uninstall.m
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
227 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
228 package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
229 @end table
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
230
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
231 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
232 more of the following directories
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
233
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
234 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
235 @table @code
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
236 @item package/inst
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
237 An optional directory containing any files that are directly installed
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
238 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
239
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
240 @item package/src
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
241 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
242 packages installation. The Octave package manager will execute
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
243 @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
244 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
245 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
246 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
247 @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
248 @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
249 will be copied to the @code{inst} directory.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
250
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
251 @item package/doc
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
252 An optional directory containing documentation for the package. The
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
253 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
254 of the installed package for future reference.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
255
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
256 @item package/bin
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
257 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
258 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
259 external scripts, etc, called by functions within the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
260 @end table
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
261
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
262 @menu
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
263 * The DESCRIPTION File::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
264 * The INDEX file::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
265 * PKG_ADD and PKG_DEL directives::
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
266 @end menu
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
267
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
268 @node The DESCRIPTION File
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
269 @subsection The DESCRIPTION File
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
270
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
271 The @code{DESCRIPTION} file contains various information about the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
272 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
273 simple format
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
274
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
275 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
276 @itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
277 @item
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
278 Lines starting with @code{#} are comments.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
279
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
280 @item
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
281 Lines starting with a blank character are continuations from the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
282 previous line.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
283
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
284 @item
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
285 Everything else is of the form @code{NameOfOption: ValueOfOption}.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
286 @end itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
287
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
288 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
289 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
290
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
291 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
292 Name: The name of my package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
293 Version: 1.0.0
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
294 Date: 2007-18-04
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
295 Author: The name (and possibly email) of the package author.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
296 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
297 Title: The title of the package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
298 Description: A short description of the package. If this description
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
299 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
300 space to the beginning of the following lines.
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 7007
diff changeset
301 License: GPL version 3 or later
6537
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
302 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
303
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
304 The package manager currently recognizes the following keywords
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
305
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
306 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
307 @table @code
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
308 @item Name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
309 Name of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
310
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
311 @item Version
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
312 Version of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
313
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
314 @item Date
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
315 Date of last update.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
316
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
317 @item Author
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
318 Original author of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
319
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
320 @item Maintainer
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
321 Maintainer of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
322
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
323 @item Title
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
324 A one line description of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
325
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
326 @item Description
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
327 A one paragraph description of the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
328
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
329 @item Categories
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
330 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
331 given this is mandatory).
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
332
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
333 @item Problems
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
334 Optional list of known problems.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
335
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
336 @item Url
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
337 Optional list of homepages related to the package.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
338
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
339 @item Autoload
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
340 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
341 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
342 automatically load the package when starting. Otherwise the package
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
343 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
344 behavior can be overridden when the package is installed.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
345
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
346 @item Depends
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
347 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
348 include dependencies on particular versions, with a format
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
349
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
350 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
351 Depends: package (>= 1.0.0)
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
352 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
353
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
354 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
355 Possible operators are @code{<}, @code{<=}, @code{==}, @code{>=} or
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
356 @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
357 version of the package is acceptable. Multiple dependencies can be
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
358 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
359 lines.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
360
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
361 @item License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 7007
diff changeset
362 An optional short description of the used license (e.g. GPL version 3
6537
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
363 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
364
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
365 @item SystemRequirements
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
366 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
367 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
368 distribution packager. They follows the same conventions as the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
369 @code{Depends} keyword.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
370
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
371 @item BuildRequires
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
372 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
373 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
374 distribution packager. They follows the same conventions as the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
375 @code{Depends} keyword. Note that in general, packaging systems such
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
376 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
377 from the build dependencies, and therefore the often a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
378 @code{BuildRequires} dependency removes the need for a
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
379 @code{SystemRequirements} dependency.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
380
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
381 @end table
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
382
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
383 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
384 The developer is free to add additional arguments to the
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
385 @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
386 aid the packager is that the @code{SystemRequirments} and
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
387 @code{BuildRequires} keywords can have distribution dependent section,
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
388 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
389 format of this is
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
390
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
391 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
392 BuildRequires: libtermcap-devel [Mandriva] libtermcap2-devel
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
393 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
394
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
395 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
396 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
397 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
398 name will be used instead.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
399
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
400 @node The INDEX file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
401 @subsection The INDEX file
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
402
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
403 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
404 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
405
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
406 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
407 @itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
408 @item Lines beginning with @code{#} are comments.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
409
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
410 @item The first non-comment line should look like this
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
411
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
412 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
413 toolbox >> Toolbox name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
414 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
415
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
416 @item Lines beginning with an alphabetical character indicates a new
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
417 category of functions.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
418
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
419 @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
420 function names on the line belong to last mentioned category.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
421 @end itemize
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
422
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
423 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
424 The format can be summarized with the following example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
425
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
426 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
427 # A comment
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
428 toolbox >> Toolbox name
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
429 Category Name 1
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
430 function1 function2 function3
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
431 function4
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
432 Category Name 2
7007
6304d9ea0a30 [project @ 2007-10-11 16:26:36 by jwe]
jwe
parents: 6616
diff changeset
433 function2 function5
6537
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
434 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
435
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
436 @node PKG_ADD and PKG_DEL directives
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
437 @subsection PKG_ADD and PKG_DEL directives
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
438
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
439 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
440 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
441 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
442 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
443 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
444 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
445 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
446
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
447 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
448
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
449 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
450 ## PKG_ADD: some_octave_command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
451 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
452
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
453 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
454 Such lines should be added before the @code{function} keyword.
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
455 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
456
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
457 @example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
458 // PKG_ADD: some_octave_command
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
459 @end example
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
460
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
461 @noindent
062bade36bf7 [project @ 2007-04-18 16:40:25 by jwe]
jwe
parents:
diff changeset
462 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
463 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
464 @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
465 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
466 to the @code{PKG_DEL} file.