source: ProjectBuilder/devel/pb-doc/pb.conf.pod@ 985

Last change on this file since 985 was 985, checked in by Bruno Cornec, 14 years ago

r3699@localhost: bruno | 2010-02-20 05:22:28 +0100

  • Improves pb.conf documentation
File size: 12.8 KB
Line 
1=pod
2
3=head1 NAME
4
5Documentation for pb configuration files
6
7=head1 DESCRIPTION
8
9pb helps you build various packages directly from your project sources.
10In order to work correctly, it relies on a certain number of configuration files. Most of these configuration parameters can be setup in all the configuration files, however, they generally make more sense in a specific one, which is indicated. There are mainly 4 configuration files, the one in the home directory of the user (used first), the one from the project (use in second), the one in the VM/VE hosting directory, and the one provided by the tool in /etc/pb or /usr/local/etc/pb (lastly).
11
12=head1 SYNOPSIS
13
14Those files have the same format, which is near from a a perl hash structure:
15keyword key = value1[,value2,...]
16
17The key could be also default, in which case it will be used as a default value if no more precise content is given for the key.
18
19Each value is detailed below giving the nature of its use (Mandatory or Optional - only used for certain feature), the value of the key (could be the project, a distribution name, default, ...), the value of the parameter field and its format, the default configuration file in which it should be defined and an example of use.
20
21=head1 OPTIONS
22
23=over 4
24
25=item B<defpkgdir>>
26
27Nature: Mandatory
28Key: project (as defined in the -p option or PBPROJ environment variable)
29Value: coma separated list of packages built by default in this project. When not using any package name as a parameter to pb commands, this list will be used.
30Conffile: project
31Example: defpkgdir mondorescue = mondo,mindi
32NB: a default value is not really meaningful.
33
34=item B<extpkgdir>
35
36Nature: Optional
37Key: project (as defined in the -p option or PBPROJ environment variable)
38Value: coma separated list of packages built in addition in this project. When using the all package name as a parameter to pb commands, this list will be used, in addition to the defpkgdir list.
39Conffile: project
40Example: extpkgdir mondorescue = mondo-doc,mindi-mindibusybox
41
42=item B<filteredfiles>
43
44Nature: Optional
45Key: package (as provided in defpkgdir or extpkgdir)
46Value: coma separated list of files that will be filtered using the macro system from pb, during the creation of the compressed source tar files for this package. Their path is relative to the directory containing the package.
47Conffile: project
48Example: filteredfiles mindi = rootfs/sbin/init,mindi,install.sh,doc/mindi.8
49
50=item B<namingtype>
51
52Nature: Optional
53Key: package (as provided in defpkgdir or extpkgdir)
54Value: perl, if packages are CPAN perl modules that need to be named respecting the distribution perl convention (perl-Name for rpm, libname-perl for deb)
55Conffile: project
56Example: namingtype ProjectBuilder = perl
57
58=item B<osambiguous>
59
60Nature: Optional
61Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). In that case, should be an OS name.
62Value: coma separated list of distributions which use the same file name in /etc for different distributions (ex: /etc/redhat-release for redhat, rhel, mandriva,...). Cf: B<osrelambfile>
63Conffile: pb
64Example: osambiguous debian = debian,ubuntu
65
66=item B<oscodename>
67
68Nature: Optional
69Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). In that case, should be an os-ver.
70Value: code name. Mostly useful for debian and ubuntu, due to debootstrap.
71Conffile: pb
72Example: oscodename debian-5.0 = lenny
73
74=item B<osfamily>
75
76Nature: Mandatory
77Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). In that case, should be an os.
78Value: OS family name (used to group similar distribution for handling)
79Conffile: pb
80Example: osfamily debian = du
81
82=item B<osmindep>
83
84Nature: Optional
85Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). NB: a default value is highly interesting here.
86Value: coma separated list of packages needed before setupvm|ve can be run. Install them with your distribution in VM or automatically in VE when possible.
87Conffile: pb
88Example: osmindep default = perl,sudo,wget,tar,make,gzip
89
90=item B<osnover>
91
92Nature: Optional
93Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
94Value: true|false. True means that this OS has no need to keep the version
95Conffile: pb
96Example: osnover gentoo = true
97
98=item B<osperldep>
99
100Nature: Optional
101Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
102Value: coma separated list of perl modules needed by pb and not provided in a package format for the relative OS, and that will be installed from CPAN in your VM/VE.
103Conffile: pb
104Example: osperldep rhel-5 = Module-Build,File-MimeInfo,File-BaseDir,Mail-Sendmail
105
106=item B<osperlver>
107
108Nature: Mandatory (for each module mentioned in B<osperldep>)
109Key: Perl Module (as defined in B<osperldep>)
110Value: Version of the perl module that needs to be found on CPAN.
111Conffile: pb
112Example: Date-Manip = 5.54
113
114=item B<ospkgdep>
115
116Nature: Optional
117Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
118Value: coma separated list of packages that are needed by pb and should be installed automatically in the VM/VE during the setupvm|ve phasis by pb.
119Conffile: pb
120Example: ospkgdep rhel-5 = wget,make,ntp,patch,perl-DateManip
121
122=item B<osrelambfile>
123
124Nature: Mandatory (per OS mentioned in B<osambiguous>)
125Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). Should be the OS name here.
126Value: full path name of the ambiguous file describing that distribution, as well as some others. All the distributions mentioned here should also be mentioned with their ambiguous other distribution in the B<osambiguous> parameter.
127Conffile: pb
128Example: osrelambfile debian = /etc/debian_version
129
130=item B<osrelexpr>
131
132Nature: Mandatory (per OS mentioned in B<osrelambfile> and B<osrelfile>)
133Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
134Value: the perl regular expression used to parse the B<osrelambfile> in order to extract from it the version of the distribution (in parenthesis to allow its usage as $1 by perl)
135Conffile: pb
136osrelexpr rhel = Red Hat (?:Enterprise Linux|Linux Advanced Server) .*release ([0-9.]+).* \(
137Example:
138
139=item B<osrelfile>
140
141Nature: Mandatory
142Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). Should be the OS name here.
143Value: full path name of the file describing non-ambiguously that distribution. There should be a bijection between the file and the distribution name.
144Conffile: pb
145Example: osrelfile fedora = /etc/fedora-release
146
147=item B<osremovedotinver>
148
149Nature: Optional
150Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
151Value: true|false. If true, then no '.' (dot) character is kept in the version name of that OS.
152Conffile: pb
153Example: osremovedotinver redhat = true
154
155=item B<ossuffix>
156
157Nature: Optional
158Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
159Value: suffix that will be used in the name of the packages created. By default, concatenation of OS name and version.
160Conffile: pb
161Example: ossuffix mandriva = mdv
162
163=item B<ostype>
164
165Nature: Mandatory
166Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
167Value: build type grouping packages family. This is used internaly by pb to make various handling depending on that build type.
168Conffile: pb
169Example: ostype rh = rpm, ostype md = rpm, ostype novell = rpm
170
171=item B<osupd>
172
173Nature: Optional
174Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
175Value: OS command to lauch in order to automatically install packages on it.
176Conffile: pb
177Example: ostype rh = rpm, ostype md = rpm, ostype novell = rpm
178
179=item B<pbconfurl>
180
181Nature: Mandatory
182Key: project (as defined in the -p option or PBPROJ environment variable)
183Value: B<pb URL> giving access to where the pb configuration dir is stored. Under that directory you have the same tree infrastructure as the upstream project, and under the pb packaging infra, including the project configuration file. Cf: man
184Conffile: home|project
185Example: pbconfurl fossology = svn+ssh://user@svn.project-builder.org/mondo/svn/pb/projects/fossology/pbconf, cvs+ssh://:ext:user@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe/pbconf
186
187=item B<pbdefdir>
188
189Nature: Optional
190Key: project (as defined in the -p option or PBPROJ environment variable)
191Value: local directory under which every pb related operation will take place. if not defined then /var/cache. A default value is highly interesting here. If you want to use VMs/VEs, then use $ENV{'HOME'} to make it portable to it.
192Conffile: home
193Example: pbdefdir default = $ENV{'HOME'}/local/pb/projects
194
195=item B<pbml>
196
197Nature: Optional (Mandatory if using announce command)
198Key: project (as defined in the -p option or PBPROJ environment variable)
199Value: white space separated list of e-mail adresses used to send announces with the pb announce option.
200Conffile: project
201Example: pbml pb = pb-announce@project-builder.org pb-devel@project-builder.org
202
203=item B<pbpackager>
204
205Nature: Mandatory
206Key: project (as defined in the -p option or PBPROJ environment variable)
207Value: Firstname Name and e-mail address of the person packaging the software.
208Conffile: project
209Example: pbpackager pb = Bruno Cornec <bruno@project-builder.org>
210
211=item B<pbprojdir>
212
213Nature: Optional
214Key: project (as defined in the -p option or PBPROJ environment variable)
215Value: local directory under which the project is locally exported. NB: a default value is highly interesting here. By default pbdefdir/projectname
216Conffile: home
217Example: pbprojdir mondorescue = $ENV{'HOME'}/local/mondorescue
218
219=item B<pbrepo>
220
221Nature: Mandatory
222Key: project (as defined in the -p option or PBPROJ environment variable)
223Value: URL of the server hosting the upstream tar file.
224Conffile: project
225Example: pbrepo mondorescue = ftp://ftp.mondorescue.org
226
227=item B<pbsmtp>
228
229Nature: Optional (Mandatory if using the announce command)
230Key: project (as defined in the -p option or PBPROJ environment variable)
231Value: FQDN of the mail server to use to send announces. NB: a default value is highly interesting here.
232Conffile: home
233Example: pbsmtp mondorescue = localhost
234
235=item B<pbsockscmd>
236
237Nature: Optional
238Key: project (as defined in the -p option or PBPROJ environment variable)
239Value: name of the command to use to socksify network calls. NB: a default value is highly interesting here.
240Conffile: home
241Example: pbsockscmd default = tsocks
242
243=item B<pburl>
244
245Nature: Optional
246Key: project (as defined in the -p option or PBPROJ environment variable)
247Value: B<pb URL> giving access to where the project is stored. Normaly provided by the project, but could be overloaded for specific authentication information in the home configuration file or when using a DVCS
248Conffile: home|project
249Example: pburl linuxcoe = cvs+ssh://:ext:user@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe, pburl pb = svk:////local/pb
250
251=item B<pbwf>
252
253Nature: Optional
254Key: project (as defined in the -p option or PBPROJ environment variable)
255Value: whatever. As soon as this is defined, then that project is known as not well formed (have a subdirectory in its tar file under which all sources are put named project-version). This should be reported upstream to the project. tar files generated by project-builder to not suffer from that. This is valid when packaging for tar files and not CMS.
256Conffile: project
257Example: pbwf afio = 1
258
259=item B<pkgtag>
260
261Nature: Optional
262Key: package (as provided in defpkgdir or extpkgdir)
263Value: Tag that needs to be used in package name (on rpm: name-ver-tag.arch.rpm). Useful when republishing a package due to package build modification (not code).
264Conffile: project
265Example: pkgtag mindi-busybox = 2
266
267=item B<pkgver>
268
269Nature: Optional
270Key: package (as provided in defpkgdir or extpkgdir)
271Value: Version that needs to be used in package name (on rpm: name-ver-tag.arch.rpm).
272Conffile: project
273Example:
274
275=item B<projtag>
276=item B<projver>
277=item B<supfiles>
278=item B<testver>
279=item B<veb4pi>
280=item B<veconf>
281=item B<vedebtype>
282=item B<velist>
283=item B<velogin>
284=item B<ventp>
285=item B<ventpcmd>
286=item B<vepath>
287=item B<vepi>
288=item B<vepkglist>
289=item B<verebuild>
290=item B<verpmtype>
291=item B<version>
292=item B<vesnap>
293=item B<vetmout>
294=item B<vetype>
295=item B<vmhost>
296=item B<vmlist>
297=item B<vmlogin>
298=item B<vmmonport>
299=item B<vmntp>
300=item B<vmntpcmd>
301=item B<vmopt>
302=item B<vmpath>
303=item B<vmport>
304=item B<vmsize>
305=item B<vmsnap>
306=item B<vmtmout>
307=item B<vmtype>
308=item B<webdir>
309
310=item B<pb URL>
311=item B<pb directory desc>
Note: See TracBrowser for help on using the repository browser.