Sun Jun 21 11:42:52 2009 UTC ()
Pullup the following revisions (requested by joerg in ticket 1325):
	external/bsd/pkg_install/dist/admin/pkg_admin.1:	1.1.1.7
	external/bsd/pkg_install/dist/lib/license.c: 		1.1.1.3
	external/bsd/pkg_install/dist/lib/version.h:		1.1.1.16
Merge pkg_install-20090610 from HEAD


(bouyer)
diff -r1.1.1.6.2.2 -r1.1.1.6.2.3 src/external/bsd/pkg_install/dist/admin/pkg_admin.1
diff -r1.1.1.2.6.2 -r1.1.1.2.6.3 src/external/bsd/pkg_install/dist/lib/license.c
diff -r1.1.1.15.2.2 -r1.1.1.15.2.3 src/external/bsd/pkg_install/dist/lib/version.h

cvs diff -r1.1.1.6.2.2 -r1.1.1.6.2.3 src/external/bsd/pkg_install/dist/admin/pkg_admin.1 (switch to unified diff)

--- src/external/bsd/pkg_install/dist/admin/pkg_admin.1 2009/06/05 17:01:58 1.1.1.6.2.2
+++ src/external/bsd/pkg_install/dist/admin/pkg_admin.1 2009/06/21 11:42:52 1.1.1.6.2.3
@@ -1,347 +1,347 @@ @@ -1,347 +1,347 @@
1.\" $NetBSD: pkg_admin.1,v 1.1.1.6.2.2 2009/06/05 17:01:58 snj Exp $ 1.\" $NetBSD: pkg_admin.1,v 1.1.1.6.2.3 2009/06/21 11:42:52 bouyer Exp $
2.\" 2.\"
3.\" Copyright (c) 1999-2009 The NetBSD Foundation, Inc. 3.\" Copyright (c) 1999-2009 The NetBSD Foundation, Inc.
4.\" All rights reserved. 4.\" All rights reserved.
5.\" 5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation 6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Hubert Feyrer <hubert@feyrer.de>. 7.\" by Hubert Feyrer <hubert@feyrer.de>.
8.\" 8.\"
9.\" Redistribution and use in source and binary forms, with or without 9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions 10.\" modification, are permitted provided that the following conditions
11.\" are met: 11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright 12.\" 1. Redistributions of source code must retain the above copyright
13.\" notice, this list of conditions and the following disclaimer. 13.\" notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright 14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\" notice, this list of conditions and the following disclaimer in the 15.\" notice, this list of conditions and the following disclaimer in the
16.\" documentation and/or other materials provided with the distribution. 16.\" documentation and/or other materials provided with the distribution.
17.\" 3. All advertising materials mentioning features or use of this software 17.\" 3. All advertising materials mentioning features or use of this software
18.\" must display the following acknowledgement: 18.\" must display the following acknowledgement:
19.\" This product includes software developed by the NetBSD 19.\" This product includes software developed by the NetBSD
20.\" Foundation, Inc. and its contributors. 20.\" Foundation, Inc. and its contributors.
21.\" 4. Neither the name of The NetBSD Foundation nor the names of its 21.\" 4. Neither the name of The NetBSD Foundation nor the names of its
22.\" contributors may be used to endorse or promote products derived 22.\" contributors may be used to endorse or promote products derived
23.\" from this software without specific prior written permission. 23.\" from this software without specific prior written permission.
24.\" 24.\"
25.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 25.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
26.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 26.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 27.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 28.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
29.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35.\" POSSIBILITY OF SUCH DAMAGE. 35.\" POSSIBILITY OF SUCH DAMAGE.
36.\" 36.\"
37.Dd April 25, 2009 37.Dd April 25, 2009
38.Dt PKG_ADMIN 1 38.Dt PKG_ADMIN 1
39.Os 39.Os
40.Sh NAME 40.Sh NAME
41.Nm pkg_admin 41.Nm pkg_admin
42.Nd perform various administrative tasks to the pkg system 42.Nd perform various administrative tasks to the pkg system
43.Sh SYNOPSIS 43.Sh SYNOPSIS
44.Nm 44.Nm
45.Op Fl bqSVv 45.Op Fl bqSVv
46.Op Fl C Ar config 46.Op Fl C Ar config
47.Op Fl d Ar lsdir 47.Op Fl d Ar lsdir
48.Op Fl K Ar pkg_dbdir 48.Op Fl K Ar pkg_dbdir
49.Op Fl s Ar sfx_pattern 49.Op Fl s Ar sfx_pattern
50.Ar command Op args ... 50.Ar command Op args ...
51.Sh DESCRIPTION 51.Sh DESCRIPTION
52This command performs various administrative tasks around the 52This command performs various administrative tasks around the
53.Nx 53.Nx
54Packages System. 54Packages System.
55.Sh OPTIONS 55.Sh OPTIONS
56The following command-line options are supported: 56The following command-line options are supported:
57.Bl -tag -width indent 57.Bl -tag -width indent
58.It Fl b 58.It Fl b
59Print only the base names when matching package names for 59Print only the base names when matching package names for
60.Cm lsall 60.Cm lsall
61and 61and
62.Cm lsbest . 62.Cm lsbest .
63.It Fl C Ar config 63.It Fl C Ar config
64Read the configuration file from 64Read the configuration file from
65.Ar config 65.Ar config
66instead of the system default. 66instead of the system default.
67.It Fl d Ar lsdir 67.It Fl d Ar lsdir
68Set 68Set
69.Ar lsdir 69.Ar lsdir
70as the path to the directory in which to find matching package names for 70as the path to the directory in which to find matching package names for
71.Cm lsall 71.Cm lsall
72and 72and
73.Cm lsbest . 73.Cm lsbest .
74.It Fl K Ar pkg_dbdir 74.It Fl K Ar pkg_dbdir
75Set 75Set
76.Ar pkg_dbdir 76.Ar pkg_dbdir
77as the package database directory. 77as the package database directory.
78If this option isn't specified, then the package database directory is 78If this option isn't specified, then the package database directory is
79taken from the value of the environment variable 79taken from the value of the environment variable
80.Ev PKG_DBDIR 80.Ev PKG_DBDIR
81if it's set, otherwise it defaults to 81if it's set, otherwise it defaults to
82.Pa /var/db/pkg . 82.Pa /var/db/pkg .
83.It Fl q 83.It Fl q
84Perform checks in a quiet manner. 84Perform checks in a quiet manner.
85In normal operation, 85In normal operation,
86.Nm 86.Nm
87prints a 87prints a
88.Sq \&. 88.Sq \&.
89to standard output to indicate progress. 89to standard output to indicate progress.
90This option suppresses this progress indicator. 90This option suppresses this progress indicator.
91.It Fl S 91.It Fl S
92Set the shell glob pattern for package suffixes when matching package 92Set the shell glob pattern for package suffixes when matching package
93names for 93names for
94.Cm lsall 94.Cm lsall
95and 95and
96.Cm lsbest 96.Cm lsbest
97to be the null suffix. 97to be the null suffix.
98.It Fl s Ar sfx_pattern 98.It Fl s Ar sfx_pattern
99Set the shell glob pattern for package suffixes when matching package 99Set the shell glob pattern for package suffixes when matching package
100names for 100names for
101.Cm lsall 101.Cm lsall
102and 102and
103.Cm lsbest . 103.Cm lsbest .
104The default pattern is ".t[bg]z". 104The default pattern is ".t[bg]z".
105.It Fl V 105.It Fl V
106Print version number and exit. 106Print version number and exit.
107.It Fl v 107.It Fl v
108Be more verbose. 108Be more verbose.
109.El 109.El
110.Pp 110.Pp
111The following commands are supported: 111The following commands are supported:
112.Bl -tag -width indent 112.Bl -tag -width indent
113.It Cm add Ar pkg ... 113.It Cm add Ar pkg ...
114For each listed package, write the absolute pathnames of the files listed in 114For each listed package, write the absolute pathnames of the files listed in
115its 115its
116.Pa +CONTENTS 116.Pa +CONTENTS
117file together with the package they belong to into the package database. 117file together with the package they belong to into the package database.
118This should be used only by 118This should be used only by
119.Xr pkg_view 1 . 119.Xr pkg_view 1 .
120.It Cm audit Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg Oc ... 120.It Cm audit Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg Oc ...
121Check the listed installed packages for vulnerabilities. 121Check the listed installed packages for vulnerabilities.
122If no package is given, check all installed packages. 122If no package is given, check all installed packages.
123If 123If
124.Fl e 124.Fl e
125is given, also include end-of-life information. 125is given, also include end-of-life information.
126If 126If
127.Fl s 127.Fl s
128is given, check the signature of the pkg-vulnerabilities file before using it. 128is given, check the signature of the pkg-vulnerabilities file before using it.
129.Fl t 129.Fl t
130restricts the reported vulnerabilities to type 130restricts the reported vulnerabilities to type
131.Ar type . 131.Ar type .
132.It Cm audit-pkg Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg Oc ... 132.It Cm audit-pkg Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg Oc ...
133Like 133Like
134.Cm audit , 134.Cm audit ,
135but check only the given package names or patterns. 135but check only the given package names or patterns.
136.It Cm audit-batch Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg-list Oc ... 136.It Cm audit-batch Oo Fl es Oc Oo Fl t Ar type Oc Oo Ar pkg-list Oc ...
137Like 137Like
138.Cm audit-pkg , 138.Cm audit-pkg ,
139but read the package names or patterns one per line from the given files. 139but read the package names or patterns one per line from the given files.
140.It Cm audit-history Oo Fl s Oc Oo Fl t Ar type Oc Oo Ar pkgbase Oc ... 140.It Cm audit-history Oo Fl s Oc Oo Fl t Ar type Oc Oo Ar pkgbase Oc ...
141Print all vulnerabilities for the given base package names. 141Print all vulnerabilities for the given base package names.
142.It Cm check Op Ar pkg ... 142.It Cm check Op Ar pkg ...
143Use this command to check the files belonging to some or all of the 143Use this command to check the files belonging to some or all of the
144packages installed on the local machine against the checksum 144packages installed on the local machine against the checksum
145which was recorded in the 145which was recorded in the
146.Pa +CONTENTS 146.Pa +CONTENTS
147files at package installation time. 147files at package installation time.
148Symbolic links also have their integrity checked against the recorded 148Symbolic links also have their integrity checked against the recorded
149value at package installation time. 149value at package installation time.
150If no additional argument is given, the files of all installed packages 150If no additional argument is given, the files of all installed packages
151are checked, else only the named packages will be checked (wildcards can 151are checked, else only the named packages will be checked (wildcards can
152be used here, see 152be used here, see
153.Xr pkg_info 1 ) . 153.Xr pkg_info 1 ) .
154.Pp 154.Pp
155The packages' 155The packages'
156.Pa +CONTENTS 156.Pa +CONTENTS
157files will be parsed and the 157files will be parsed and the
158checksum will be checked for every file found. 158checksum will be checked for every file found.
159A warning message is printed if the expected checksum differs from the 159A warning message is printed if the expected checksum differs from the
160checksum of the file on disk. 160checksum of the file on disk.
161Symbolic links are also checked, ensuring that the targets on disk are 161Symbolic links are also checked, ensuring that the targets on disk are
162the same as the contents recorded at package installation time. 162the same as the contents recorded at package installation time.
163.It Cm check-license Ar condition 163.It Cm check-license Ar condition
164Check if 164Check if
165.Ar condition 165.Ar condition
166can be fulfilled with the currently set of accepted licenses. 166can be fulfilled with the currently set of accepted licenses.
167Prints either yes or no to stdout if the condition can be parsed, 167Prints either yes or no to stdout if the condition can be parsed,
168otherwise it exits with error. 168otherwise it exits with error.
169.It Cm check-pkg-vulnerabilities Oo Fl s Oc Ar file 169.It Cm check-pkg-vulnerabilities Oo Fl s Oc Ar file
170Check format and hashes in the pkg-vulnerabilities file 170Check format and hashes in the pkg-vulnerabilities file
171.Ar file . 171.Ar file .
172If 172If
173.Fl s 173.Fl s
174is given, also check the embedded signature. 174is given, also check the embedded signature.
175.It Cm check-signature Ar file ... 175.It Cm check-signature Ar file ...
176Reports if 176Reports if
177.Ar file 177.Ar file
178is a correctly signed package. 178is a correctly signed package.
179.It Cm check-single-license Ar liccense 179.It Cm check-single-license Ar license
180Check if 180Check if
181.Ar license 181.Ar license
182is a valid license name and if it is in the set of acceptable licenses. 182is a valid license name and if it is in the set of acceptable licenses.
183Prints either yes or no to stdout if the condition can be parsed, 183Prints either yes or no to stdout if the condition can be parsed,
184otherwise it exits with error. 184otherwise it exits with error.
185.It Cm config-var Ar variable 185.It Cm config-var Ar variable
186Print the current value of 186Print the current value of
187.Ar variable 187.Ar variable
188as used after parsing the configuration file. 188as used after parsing the configuration file.
189.It Cm delete Ar pkg ... 189.It Cm delete Ar pkg ...
190For each listed package, remove all file entries in the package database that 190For each listed package, remove all file entries in the package database that
191belong to the package. 191belong to the package.
192This should be used only by 192This should be used only by
193.Xr pkg_view 1 . 193.Xr pkg_view 1 .
194.It Cm dump 194.It Cm dump
195Dump the contents of the package database, similar to 195Dump the contents of the package database, similar to
196.Cm pkg_info -F . 196.Cm pkg_info -F .
197Columns are printed for the key field used in the pkgdb - the filename -, 197Columns are printed for the key field used in the pkgdb - the filename -,
198and the data field - the package the file belongs to. 198and the data field - the package the file belongs to.
199.It Cm fetch-pkg-vulnerabilities Oo Fl su Oc 199.It Cm fetch-pkg-vulnerabilities Oo Fl su Oc
200Fetch a new pkg-vulnerabilities file, check the format and if 200Fetch a new pkg-vulnerabilities file, check the format and if
201.Fl s 201.Fl s
202is given the signature. 202is given the signature.
203If all checks are passed, write it to pkgdb. 203If all checks are passed, write it to pkgdb.
204If 204If
205.Fl u 205.Fl u
206is given, the fetch is conditional and the file transfer is only done if 206is given, the fetch is conditional and the file transfer is only done if
207the remote version is newer than the one in pkgdb. 207the remote version is newer than the one in pkgdb.
208.It Cm lsall Ar /dir/pkgpattern 208.It Cm lsall Ar /dir/pkgpattern
209.It Cm lsbest Ar /dir/pkgpattern 209.It Cm lsbest Ar /dir/pkgpattern
210List all/best package matching pattern in the given directory 210List all/best package matching pattern in the given directory
211.Pa /dir . 211.Pa /dir .
212If the 212If the
213.Fl d 213.Fl d
214flag is given, then that directory path overrides 214flag is given, then that directory path overrides
215.Pa /dir . 215.Pa /dir .
216Can be used to work around limitations of /bin/sh and other 216Can be used to work around limitations of /bin/sh and other
217filename globbing mechanisms. 217filename globbing mechanisms.
218This option implements matching of 218This option implements matching of
219pkg-wildcards against arbitrary files and directories, useful mainly in 219pkg-wildcards against arbitrary files and directories, useful mainly in
220the build system itself. 220the build system itself.
221See 221See
222.Xr pkg_info 1 222.Xr pkg_info 1
223for a description of the pattern. 223for a description of the pattern.
224.Pp 224.Pp
225Example: 225Example:
226.Bd -literal 226.Bd -literal
227yui# cd /usr/pkgsrc/packages/i386ELF/All/ 227yui# cd /usr/pkgsrc/packages/i386ELF/All/
228yui# ls unzip* 228yui# ls unzip*
229unzip-5.40.tgz unzip-5.41.tgz 229unzip-5.40.tgz unzip-5.41.tgz
230yui# pkg_admin lsall 'unzip*' 230yui# pkg_admin lsall 'unzip*'
231/usr/pkgsrc/packages/i386ELF/All/unzip-5.40.tgz 231/usr/pkgsrc/packages/i386ELF/All/unzip-5.40.tgz
232/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz 232/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz
233yui# pkg_admin lsall 'unzip\*[Ge]5.40' 233yui# pkg_admin lsall 'unzip\*[Ge]5.40'
234/usr/pkgsrc/packages/i386ELF/All/unzip-5.40.tgz 234/usr/pkgsrc/packages/i386ELF/All/unzip-5.40.tgz
235/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz 235/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz
236yui# pkg_admin lsall 'unzip\*[Ge]5.41' 236yui# pkg_admin lsall 'unzip\*[Ge]5.41'
237/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz 237/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz
238yui# pkg_admin lsbest 'unzip\*[Ge]5.40' 238yui# pkg_admin lsbest 'unzip\*[Ge]5.40'
239/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz 239/usr/pkgsrc/packages/i386ELF/All/unzip-5.41.tgz
240yui# pkg_admin lsall /usr/pkgsrc/packages/i386ELF/All/'{mit,unproven}-pthread*' 240yui# pkg_admin lsall /usr/pkgsrc/packages/i386ELF/All/'{mit,unproven}-pthread*'
241/usr/pkgsrc/packages/i386ELF/All/mit-pthreads-1.60b6.tgz 241/usr/pkgsrc/packages/i386ELF/All/mit-pthreads-1.60b6.tgz
242/usr/pkgsrc/packages/i386ELF/All/unproven-pthreads-0.15.tgz 242/usr/pkgsrc/packages/i386ELF/All/unproven-pthreads-0.15.tgz
243.Ed 243.Ed
244.It Cm pmatch Ar pattern Ar pkg 244.It Cm pmatch Ar pattern Ar pkg
245Returns true if 245Returns true if
246.Ar pkg 246.Ar pkg
247matches 247matches
248.Ar pattern , 248.Ar pattern ,
249otherwise returns false. 249otherwise returns false.
250.It Cm rebuild 250.It Cm rebuild
251Rebuild the package database mapping from scratch, scanning 251Rebuild the package database mapping from scratch, scanning
252subdirectories in 252subdirectories in
253.Pa /var/db/pkg 253.Pa /var/db/pkg
254for 254for
255.Pa +CONTENTS 255.Pa +CONTENTS
256files, parsing them and writing the resulting absolute pathnames 256files, parsing them and writing the resulting absolute pathnames
257together with the package they belong to into the package database. 257together with the package they belong to into the package database.
258.Pp 258.Pp
259This option is intended to be used for upgrading from non-pkgdb-pkg_* 259This option is intended to be used for upgrading from non-pkgdb-pkg_*
260tools to pkgdb-pkg_* tools, further manipulation of the pkgdb will be 260tools to pkgdb-pkg_* tools, further manipulation of the pkgdb will be
261done by 261done by
262.Xr pkg_add 1 , 262.Xr pkg_add 1 ,
263.Xr pkg_delete 1 , 263.Xr pkg_delete 1 ,
264and 264and
265.Xr pkg_create 1 . 265.Xr pkg_create 1 .
266.Pp 266.Pp
267Needs to be run as root. 267Needs to be run as root.
268.It Cm rebuild-tree 268.It Cm rebuild-tree
269Rebuild the +REQUIRED_BY files from scratch by reresolving all dependencies. 269Rebuild the +REQUIRED_BY files from scratch by reresolving all dependencies.
270.Pp 270.Pp
271This option is intended to be used for fixing inconsistencies between 271This option is intended to be used for fixing inconsistencies between
272the records of depending and depended-on packages, such as can arise 272the records of depending and depended-on packages, such as can arise
273by the use of 273by the use of
274.Cm pkg_delete -f . 274.Cm pkg_delete -f .
275.It Cm set Ar variable=value pkg ... 275.It Cm set Ar variable=value pkg ...
276Set variable with information about the installed package. 276Set variable with information about the installed package.
277Use 277Use
278.Cm unset 278.Cm unset
279to remove a variable. 279to remove a variable.
280.Pp 280.Pp
281Packages that are not installed directly by the user but pulled in as 281Packages that are not installed directly by the user but pulled in as
282dependencies are marked by setting 282dependencies are marked by setting
283.Dq automatic=YES . 283.Dq automatic=YES .
284.It Cm gpg-sign-package pkg 284.It Cm gpg-sign-package pkg
285Sign the binary package 285Sign the binary package
286.Ar pkg 286.Ar pkg
287using GPG. 287using GPG.
288.It Cm x509-sign-package pkg spkg key cert 288.It Cm x509-sign-package pkg spkg key cert
289Sign the binary package 289Sign the binary package
290.Ar pkg 290.Ar pkg
291using the key 291using the key
292.Ar key 292.Ar key
293and the certificate 293and the certificate
294.Ar cert , 294.Ar cert ,
295using 295using
296.Ar spkg 296.Ar spkg
297as output file. 297as output file.
298.It Cm unset Ar variable pkg ... 298.It Cm unset Ar variable pkg ...
299Remove an installation variable. 299Remove an installation variable.
300.El 300.El
301.Sh ENVIRONMENT 301.Sh ENVIRONMENT
302.Bl -tag -width indent -compact 302.Bl -tag -width indent -compact
303.It Ev PKG_DBDIR 303.It Ev PKG_DBDIR
304If the 304If the
305.Fl K 305.Fl K
306flag isn't given, then 306flag isn't given, then
307.Ev PKG_DBDIR 307.Ev PKG_DBDIR
308is the location of the package database directory. 308is the location of the package database directory.
309The default package database directory is 309The default package database directory is
310.Pa /var/db/pkg . 310.Pa /var/db/pkg .
311.El 311.El
312.Sh CONFIGURATION VARIABLES 312.Sh CONFIGURATION VARIABLES
313The following variables change the behavior of 313The following variables change the behavior of
314.Nm 314.Nm
315and are described in 315and are described in
316.Xr pkg_install.conf 5 : 316.Xr pkg_install.conf 5 :
317.Bl -tag -width CERTIFICATE_ANCHOR_PKGS 317.Bl -tag -width CERTIFICATE_ANCHOR_PKGS
318.It Ev CERTIFICATE_ANCHOR_PKGS 318.It Ev CERTIFICATE_ANCHOR_PKGS
319.It Ev CERTIFICATE_ANCHOR_PKGVULN 319.It Ev CERTIFICATE_ANCHOR_PKGVULN
320.It Ev CERTIFICATE_CHAIN 320.It Ev CERTIFICATE_CHAIN
321.It Ev GPG 321.It Ev GPG
322.It Ev PKGVULNDIR 322.It Ev PKGVULNDIR
323.It Ev PKGVULNURL 323.It Ev PKGVULNURL
324.It Ev IGNORE_URL 324.It Ev IGNORE_URL
325.El 325.El
326.Sh FILES 326.Sh FILES
327.Bl -tag -width /var/db/pkg/pkgdb.byfile.db -compact 327.Bl -tag -width /var/db/pkg/pkgdb.byfile.db -compact
328.It Pa /var/db/pkg/pkgdb.byfile.db 328.It Pa /var/db/pkg/pkgdb.byfile.db
329.It Pa /var/db/pkg/\*[Lt]pkg\*[Gt]/+CONTENTS 329.It Pa /var/db/pkg/\*[Lt]pkg\*[Gt]/+CONTENTS
330.El 330.El
331.Sh SEE ALSO 331.Sh SEE ALSO
332.Xr pkg_add 1 , 332.Xr pkg_add 1 ,
333.Xr pkg_create 1 , 333.Xr pkg_create 1 ,
334.Xr pkg_delete 1 , 334.Xr pkg_delete 1 ,
335.Xr pkg_info 1 , 335.Xr pkg_info 1 ,
336.Xr pkg_view 1 , 336.Xr pkg_view 1 ,
337.Xr pkg_install.conf 5 , 337.Xr pkg_install.conf 5 ,
338.Xr pkgsrc 7 338.Xr pkgsrc 7
339.Sh HISTORY 339.Sh HISTORY
340The 340The
341.Nm 341.Nm
342command first appeared in 342command first appeared in
343.Nx 1.4 . 343.Nx 1.4 .
344.Sh AUTHORS 344.Sh AUTHORS
345The 345The
346.Nm 346.Nm
347command was written by Hubert Feyrer. 347command was written by Hubert Feyrer.

cvs diff -r1.1.1.2.6.2 -r1.1.1.2.6.3 src/external/bsd/pkg_install/dist/lib/license.c (switch to unified diff)

--- src/external/bsd/pkg_install/dist/lib/license.c 2009/06/05 17:02:00 1.1.1.2.6.2
+++ src/external/bsd/pkg_install/dist/lib/license.c 2009/06/21 11:42:52 1.1.1.2.6.3
@@ -1,277 +1,296 @@ @@ -1,277 +1,296 @@
1/* $NetBSD: license.c,v 1.1.1.2.6.2 2009/06/05 17:02:00 snj Exp $ */ 1/* $NetBSD: license.c,v 1.1.1.2.6.3 2009/06/21 11:42:52 bouyer Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2009 Joerg Sonnenberger <joerg@NetBSD.org>. 4 * Copyright (c) 2009 Joerg Sonnenberger <joerg@NetBSD.org>.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 10 *
11 * 1. Redistributions of source code must retain the above copyright 11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer. 12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright 13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in 14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the 15 * the documentation and/or other materials provided with the
16 * distribution. 16 * distribution.
17 * 17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 22 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 23 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 27 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
28 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE. 29 * SUCH DAMAGE.
30 */ 30 */
31 31
32#if HAVE_CONFIG_H 32#if HAVE_CONFIG_H
33#include "config.h" 33#include "config.h"
34#endif 34#endif
35 35
36#include <nbcompat.h> 36#include <nbcompat.h>
37 37
38#if HAVE_ERR_H 38#if HAVE_ERR_H
39#include <err.h> 39#include <err.h>
40#endif 40#endif
41#include <stdlib.h> 41#include <stdlib.h>
42#include <string.h> 42#include <string.h>
43 43
44#include "lib.h" 44#include "lib.h"
45 45
46#define HASH_SIZE 521 46#define HASH_SIZE 521
47 47
48const char *default_acceptable_licenses = 48const char *default_acceptable_licenses =
49 "public-domain " 49 "public-domain "
50 "gnu-fdl-v1.1 gnu-fdl-v1.2 gnu-fdl-v1.3 " 50 "gnu-fdl-v1.1 gnu-fdl-v1.2 gnu-fdl-v1.3 "
51 "gnu-gpl-v2 gnu-lgpl-v2 gnu-lgpl-v2.1 " 51 "gnu-gpl-v2 gnu-lgpl-v2 gnu-lgpl-v2.1 "
52 "gnu-gpl-v3 gnu-lgpl-v3 " 52 "gnu-gpl-v3 gnu-lgpl-v3 "
53 "original-bsd modified-bsd " 53 "original-bsd modified-bsd "
54 "x11 " 54 "x11 mit miros "
55 "apache-1.1 apache-2.0 " 55 "apache-1.1 apache-2.0 "
56 "artistic artistic-2.0 " 56 "artistic artistic-2.0 "
57 "cddl-1.0 " 57 "cddl-1.0 "
58 "cpl-1.0 " 58 "cpl-1.0 "
59 "open-font-license "; 59 "open-font-license ";
60 60
61#ifdef DEBUG 61#ifdef DEBUG
62static size_t hash_collisions; 62static size_t hash_collisions;
63#endif 63#endif
64 64
65static char **license_hash[HASH_SIZE]; 65static char **license_hash[HASH_SIZE];
66static const char license_spaces[] = " \t\n"; 66static const char license_spaces[] = " \t\n";
67static const char license_chars[] = "abcdefghijklmnopqrstuvwxyz0123456789_-."; 67static const char license_chars[] = "abcdefghijklmnopqrstuvwxyz0123456789_-.";
68 68
69static size_t 69static size_t
70hash_license(const char *license, size_t len) 70hash_license(const char *license, size_t len)
71{ 71{
72 size_t hash; 72 size_t hash;
73 73
74 for (hash = 0; *license && len; ++license, --len) 74 for (hash = 0; *license && len; ++license, --len)
75 hash = *license + hash * 32; 75 hash = *license + hash * 32;
76 return hash % HASH_SIZE; 76 return hash % HASH_SIZE;
77} 77}
78 78
79static void 79static void
80add_license_internal(const char *license, size_t len) 80add_license_internal(const char *license, size_t len)
81{ 81{
82 char *new_license; 82 char *new_license;
83 size_t slot, i; 83 size_t slot, i;
84 84
85 slot = hash_license(license, len); 85 slot = hash_license(license, len);
86 86
87 new_license = malloc(len + 1); 87 new_license = malloc(len + 1);
88 memcpy(new_license, license, len); 88 memcpy(new_license, license, len);
89 new_license[len] = '\0'; 89 new_license[len] = '\0';
90 90
91 if (license_hash[slot] == NULL) { 91 if (license_hash[slot] == NULL) {
92 license_hash[slot] = calloc(sizeof(char *), 2); 92 license_hash[slot] = calloc(sizeof(char *), 2);
93 license_hash[slot][0] = new_license; 93 license_hash[slot][0] = new_license;
94 } else { 94 } else {
95 for (i = 0; license_hash[slot][i]; ++i) { 95 for (i = 0; license_hash[slot][i]; ++i) {
96 if (!memcmp(license_hash[slot][i], license, len) && 96 if (!memcmp(license_hash[slot][i], license, len) &&
97 license_hash[slot][i][len] == '\0') { 97 license_hash[slot][i][len] == '\0') {
98 free(new_license); 98 free(new_license);
99 return; 99 return;
100 } 100 }
101 } 101 }
102 102
103#ifdef DEBUG 103#ifdef DEBUG
104 ++hash_collisions; 104 ++hash_collisions;
105#endif 105#endif
106 106
107 license_hash[slot] = realloc(license_hash[slot], 107 license_hash[slot] = realloc(license_hash[slot],
108 sizeof(char *) * (i + 2)); 108 sizeof(char *) * (i + 2));
109 license_hash[slot][i] = new_license; 109 license_hash[slot][i] = new_license;
110 license_hash[slot][i + 1] = NULL; 110 license_hash[slot][i + 1] = NULL;
111 } 111 }
112} 112}
113 113
114int 114int
115add_licenses(const char *line) 115add_licenses(const char *line)
116{ 116{
117 const char *next; 117 const char *next;
118 118
119 if (line == NULL) 119 if (line == NULL)
120 return 0; 120 return 0;
121 121
122 for (line += strspn(line, license_spaces); line; ) { 122 for (line += strspn(line, license_spaces); line; ) {
123 next = line + strspn(line, license_chars); 123 next = line + strspn(line, license_chars);
124 if (next == line) 124 if (next == line)
125 return *line ? -1 : 0; 125 return *line ? -1 : 0;
126 add_license_internal(line, next - line); 126 add_license_internal(line, next - line);
127 line = next + strspn(next, license_spaces); 127 line = next + strspn(next, license_spaces);
128 if (next == line) 128 if (next == line)
129 return *line ? -1 : 0; 129 return *line ? -1 : 0;
130 } 130 }
131 return 0; 131 return 0;
132} 132}
133 133
134static int 134static int
135acceptable_license_internal(const char *license, size_t len) 135acceptable_license_internal(const char *license, size_t len)
136{ 136{
137 size_t slot, i; 137 size_t slot, i;
138 138
139 slot = hash_license(license, len); 139 slot = hash_license(license, len);
140 140
141 if (license_hash[slot] == NULL) 141 if (license_hash[slot] == NULL)
142 return 0; 142 return 0;
143 143
144 for (i = 0; license_hash[slot][i]; ++i) { 144 for (i = 0; license_hash[slot][i]; ++i) {
145 if (strncmp(license_hash[slot][i], license, len) == 0 && 145 if (strncmp(license_hash[slot][i], license, len) == 0 &&
146 license_hash[slot][i][len] == '\0') 146 license_hash[slot][i][len] == '\0')
147 return 1; 147 return 1;
148 } 148 }
149 149
150 return 0; 150 return 0;
151} 151}
152 152
153int 153int
154acceptable_license(const char *license) 154acceptable_license(const char *license)
155{ 155{
156 size_t len; 156 size_t len;
157 157
158 len = strlen(license); 158 len = strlen(license);
159 if (strspn(license, license_chars) != len) 159 if (strspn(license, license_chars) != len) {
 160 warnx("Invalid character in license name at position %zu", len);
160 return -1; 161 return -1;
 162 }
161 163
162 return acceptable_license_internal(license, len); 164 return acceptable_license_internal(license, len);
163} 165}
164 166
165static int 167static int
166acceptable_pkg_license_internal(const char **licensep, int toplevel) 168acceptable_pkg_license_internal(const char **licensep, int toplevel, const char *start)
167{ 169{
168 const char *license = *licensep; 170 const char *license = *licensep;
169 int need_parenthesis, is_true = 0; 171 int need_parenthesis, is_true = 0;
170 int expr_type = 0; /* 0: unset, 1: or, 2: and */ 172 int expr_type = 0; /* 0: unset, 1: or, 2: and */
171 size_t len; 173 size_t len;
172 174
173 license += strspn(license, license_spaces); 175 license += strspn(license, license_spaces);
174 176
175 if (*license == '(' && !toplevel) { 177 if (*license == '(' && !toplevel) {
176 need_parenthesis = 1; 178 need_parenthesis = 1;
177 ++license; 179 ++license;
178 license += strspn(license, license_spaces); 180 license += strspn(license, license_spaces);
179 } else { 181 } else {
180 need_parenthesis = 0; 182 need_parenthesis = 0;
181 } 183 }
182 184
183 for (;;) { 185 for (;;) {
184 if (*license == '(') { 186 if (*license == '(') {
185 switch (acceptable_pkg_license_internal(&license, 0)) { 187 switch (acceptable_pkg_license_internal(&license, 0, start)) {
186 case -1: 188 case -1:
187 return -1; 189 return -1;
188 case 0: 190 case 0:
189 if (expr_type == 2) 191 if (expr_type == 2)
190 is_true = 0; 192 is_true = 0;
191 break; 193 break;
192 case 1: 194 case 1:
193 is_true = 1; 195 is_true = 1;
194 break; 196 break;
195 } 197 }
196 license += strspn(license, license_spaces); 198 license += strspn(license, license_spaces);
197 } else { 199 } else {
198 len = strspn(license, license_chars); 200 len = strspn(license, license_chars);
199 if (len == 0) 201 if (len == 0) {
 202 warnx("Invalid character in license name at position %zu", license - start + 1);
200 return -1; 203 return -1;
 204 }
201 205
202 if (acceptable_license_internal(license, len)) { 206 if (acceptable_license_internal(license, len)) {
203 if (expr_type != 2) 207 if (expr_type != 2)
204 is_true = 1; 208 is_true = 1;
205 } else if (expr_type == 2) { 209 } else if (expr_type == 2) {
206 is_true = 0; 210 is_true = 0;
207 } 211 }
208 212
209 license += len; 213 license += len;
210 214
211 len = strspn(license, license_spaces); 215 len = strspn(license, license_spaces);
212 if (len == 0 && *license && *license != ')') 216 if (len == 0 && *license && *license != ')') {
 217 warnx("Missing space at position %zu", license - start + 1);
213 return -1; 218 return -1;
 219 }
214 license += len; 220 license += len;
215 } 221 }
216 222
217 if (*license == ')') { 223 if (*license == ')') {
218 if (!need_parenthesis) 224 if (!need_parenthesis) {
 225 warnx("Missing open parenthesis at position %zu", license - start + 1);
219 return -1; 226 return -1;
 227 }
220 *licensep = license + 1; 228 *licensep = license + 1;
221 return is_true; 229 return is_true;
222 } 230 }
223 if (*license == '\0') { 231 if (*license == '\0') {
224 if (need_parenthesis) 232 if (need_parenthesis) {
 233 warnx("Unbalanced parenthesis at position %zu", license - start + 1);
225 return -1; 234 return -1;
 235 }
226 *licensep = license; 236 *licensep = license;
227 return is_true; 237 return is_true;
228 } 238 }
229 239
230 if (strncmp(license, "AND", 3) == 0) { 240 if (strncmp(license, "AND", 3) == 0) {
231 if (expr_type == 1) 241 if (expr_type == 1) {
 242 warnx("Invalid operator in OR expression at position %zu", license - start + 1);
232 return -1; 243 return -1;
 244 }
233 expr_type = 2; 245 expr_type = 2;
234 license += 3; 246 license += 3;
235 } else if (strncmp(license, "OR", 2) == 0) { 247 } else if (strncmp(license, "OR", 2) == 0) {
236 if (expr_type == 2) 248 if (expr_type == 2) {
 249 warnx("Invalid operator in AND expression at position %zu", license - start + 1);
237 return -1; 250 return -1;
 251 }
238 expr_type = 1; 252 expr_type = 1;
239 license += 2; 253 license += 2;
240 } else { 254 } else {
 255 warnx("Invalid operator at position %zu", license - start + 1);
241 return -1; 256 return -1;
242 } 257 }
243 len = strspn(license, license_spaces); 258 len = strspn(license, license_spaces);
244 if (len == 0 && *license != '(') 259 if (len == 0 && *license != '(') {
 260 warnx("Missing space at position %zu", license - start + 1);
245 return -1; 261 return -1;
 262 }
246 license += len; 263 license += len;
247 } 264 }
248 265
249 return is_true; 266 return is_true;
250} 267}
251 268
252int 269int
253acceptable_pkg_license(const char *license) 270acceptable_pkg_license(const char *license)
254{ 271{
255 int ret; 272 int ret;
256 273
257 ret = acceptable_pkg_license_internal(&license, 1); 274 ret = acceptable_pkg_license_internal(&license, 1, license);
258 if (ret == -1) 275 if (ret == -1)
259 return -1; 276 return -1;
260 license += strspn(license, license_spaces); 277 license += strspn(license, license_spaces);
261 if (*license) 278 if (*license) {
 279 warnx("Trailing garbage in license specification");
262 return -1; 280 return -1;
 281 }
263 return ret; 282 return ret;
264} 283}
265 284
266void 285void
267load_license_lists(void) 286load_license_lists(void)
268{ 287{
269 if (add_licenses(getenv("PKGSRC_ACCEPTABLE_LICENSES"))) 288 if (add_licenses(getenv("PKGSRC_ACCEPTABLE_LICENSES")))
270 errx(EXIT_FAILURE, "syntax error in PKGSRC_ACCEPTABLE_LICENSES"); 289 errx(EXIT_FAILURE, "syntax error in PKGSRC_ACCEPTABLE_LICENSES");
271 if (add_licenses(acceptable_licenses)) 290 if (add_licenses(acceptable_licenses))
272 errx(EXIT_FAILURE, "syntax error in ACCEPTABLE_LICENSES"); 291 errx(EXIT_FAILURE, "syntax error in ACCEPTABLE_LICENSES");
273 if (add_licenses(getenv("PKGSRC_DEFAULT_ACCEPTABLE_LICENSES"))) 292 if (add_licenses(getenv("PKGSRC_DEFAULT_ACCEPTABLE_LICENSES")))
274 errx(EXIT_FAILURE, "syntax error in PKGSRC_DEFAULT_ACCEPTABLE_LICENSES"); 293 errx(EXIT_FAILURE, "syntax error in PKGSRC_DEFAULT_ACCEPTABLE_LICENSES");
275 if (add_licenses(default_acceptable_licenses)) 294 if (add_licenses(default_acceptable_licenses))
276 errx(EXIT_FAILURE, "syntax error in DEFAULT_ACCEPTABLE_LICENSES"); 295 errx(EXIT_FAILURE, "syntax error in DEFAULT_ACCEPTABLE_LICENSES");
277} 296}

cvs diff -r1.1.1.15.2.2 -r1.1.1.15.2.3 src/external/bsd/pkg_install/dist/lib/version.h (switch to unified diff)

--- src/external/bsd/pkg_install/dist/lib/version.h 2009/06/05 17:02:01 1.1.1.15.2.2
+++ src/external/bsd/pkg_install/dist/lib/version.h 2009/06/21 11:42:52 1.1.1.15.2.3
@@ -1,32 +1,32 @@ @@ -1,32 +1,32 @@
1/* $NetBSD: version.h,v 1.1.1.15.2.2 2009/06/05 17:02:01 snj Exp $ */ 1/* $NetBSD: version.h,v 1.1.1.15.2.3 2009/06/21 11:42:52 bouyer Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2001 Thomas Klausner. All rights reserved. 4 * Copyright (c) 2001 Thomas Klausner. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright 11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the 12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution. 13 * documentation and/or other materials provided with the distribution.
14 * 14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */ 25 */
26 26
27#ifndef _INST_LIB_VERSION_H_ 27#ifndef _INST_LIB_VERSION_H_
28#define _INST_LIB_VERSION_H_ 28#define _INST_LIB_VERSION_H_
29 29
30#define PKGTOOLS_VERSION "20090528" 30#define PKGTOOLS_VERSION "20090610"
31 31
32#endif /* _INST_LIB_VERSION_H_ */ 32#endif /* _INST_LIB_VERSION_H_ */