1pkginfo(4) File Formats pkginfo(4)
2
3
4
6 pkginfo - package characteristics file
7
9 pkginfo is an ASCII file that describes the characteristics of the
10 package along with information that helps control the flow of installa‐
11 tion. It is created by the software package developer.
12
13
14 Each entry in the pkginfo file is a line that establishes the value of
15 a parameter in the following form:
16
17 PARAM="value"
18
19
20
21 There is no required order in which the parameters must be specified
22 within the file. The PKG, NAME, ARCH, VERSION and CATEGORY parameters
23 are mandatory. Other parameters are optional.
24
25
26 pkginfo provides optional parameters and an environment variable in
27 support of the zones (multiple Solaris environments) feature. See
28 zones(5).
29
30
31 The following paramaters are mandatory:
32
33 ARCH
34
35 A comma-separated list of alphanumeric tokens that indicate the
36 architecture associated with the package. The pkgmk(1) tool can be
37 used to create or modify this value when actually building the
38 package. The maximum length of a token is 16 characters and it can‐
39 not include a comma.
40
41 Solaris's installation software meaningfully uses only one archi‐
42 tecture token of the form:
43
44 <instruction_set_architecture>[.<platform_group>]
45
46 where platform_group is intended only for Solaris installation
47 packages. Third party application software should restrict itself
48 to ARCH values from the following Solaris-supported instruction set
49 architectures (uname -p): sparc, i386, and ppc. Examples of
50 Solaris' platform groups (uname -m) are sun4u for the SPARC
51 instruction set and i86pc for the i386 instruction set. See
52 uname(1) and isalist(1) for more details.
53
54
55 CATEGORY
56
57 A comma-separated list of categories under which a package can be
58 displayed. A package must at least belong to the system or applica‐
59 tion category. Categories are case-insensitive and can contain only
60 alphanumerics. Each category is limited in length to 16 characters.
61
62
63 NAME
64
65 Text that specifies the package name (maximum length of 256 ASCII
66 characters). Use the NAME parameter as the foundation for describ‐
67 ing the functionality and purpose of the package; spell out any
68 acronyms and avoid internal product/project code names. The DESC
69 parameter can then be used to expand the descriptive information.
70 Use the NAME parameter to state as specifically as possible the use
71 of the package, why a user would need to load it, and so on.
72
73
74 PKG
75
76 Abbreviation for the package being installed. All characters in the
77 abbreviation must be alphanumeric. You can also use the − and +
78 characters in the abbreviation. The first character cannot be
79 numeric, a + or a -.
80
81 The abbreviation is limited to a maximum length of 32 characters.
82 install, new, and all are reserved abbreviations. It is customary
83 to make the first four letters unique to your company, such as the
84 company's stock symbol.
85
86
87 VERSION
88
89 Text that specifies the current version associated with the soft‐
90 ware package. The maximum length is 256 ASCII characters and the
91 first character cannot be a left parenthesis. The pkgmk(1) tool can
92 be used to create or modify this value when actually building the
93 package. Current Solaris software practice is to assign this param‐
94 eter monotonically increasing Dewey decimal values of the form:
95
96 <major_revision>.<minor_revision>[.<micro_revision>]
97
98 where all the revision fields are integers. The versioning fields
99 can be extended to an arbitrary string of numbers in Dewey-decimal
100 format, if necessary.
101
102
103
104 The following parameters are optional:
105
106 BASEDIR
107
108 The pathname to a default directory where "relocatable" files can
109 be installed. If blank, the package is not relocatable and any
110 files that have relative pathnames are not installed. An adminis‐
111 trator can override the default directory.
112
113
114 CLASSES
115
116 A space-separated list of classes defined for a package. The order
117 of the list determines the order in which the classes are
118 installed. Classes listed first are installed first (on a media by
119 media basis). This parameter can be modified by the request script.
120
121
122 DESC
123
124 Text that describes the package (maximum length of 256 ASCII char‐
125 acters). This parameter value is used to provide the installer with
126 a description of what the package contains and should build on the
127 description provided in the NAME parameter. Try to make the two
128 parameters work together so that a pkginfo -l provides a fairly
129 comprehensive textual description of the package.
130
131
132 EMAIL
133
134 An electronic address where further information is available or
135 bugs can be reported (maximum length of 256 ASCII characters).
136
137
138 HOTLINE
139
140 Phone number and/or mailing address where further information can
141 be received or bugs can be reported (maximum length of 256 ASCII
142 characters).
143
144
145 INTONLY
146
147 Indicates that the package should only be installed interactively
148 when set to any non-null value.
149
150
151 ISTATES
152
153 A list of allowable run states for package installation (for exam‐
154 ple, "S s 1" allows run states of S, s or 1). The Solaris operating
155 environment supports the run levels s, S, 0, 1, 2, 3, 5, and 6.
156 Applicable run levels for this parameter are s, S, 1, 2, and 3. See
157 init(1M) for details.
158
159
160 MAXINST
161
162 The maximum number of package instances that should be allowed on a
163 machine at the same time. By default, only one instance of a pack‐
164 age is allowed. This parameter must be set in order to have multi‐
165 ple instances of a package. In order to support multiple instances
166 of packages (for example, packages that differ in their ARCH or
167 VERSION parameter value), the value of this parameter must be high
168 enough to allow for all instances of a given package, including
169 multiple versions coexisting on a software server.
170
171
172 ORDER
173
174 A list of classes defining the order in which they should be put on
175 the medium. Used by pkgmk(1) in creating the package. Classes not
176 defined in this field are placed on the medium using the standard
177 ordering procedures.
178
179
180 PSTAMP
181
182 Production stamp used to mark the pkgmap(4) file on the output vol‐
183 umes. Provides a means for distinguishing between production copies
184 of a version if more than one is in use at a time. If PSTAMP is not
185 defined, the default is used. The default consists of the UNIX sys‐
186 tem machine name followed by the string "YYYYMMDDHHMMSS" (year,
187 month, date, hour, minutes, seconds).
188
189
190 RSTATES
191
192 A list of allowable run states for package removal (for example, "S
193 s 1" allows run states of S, s or 1). The Solaris operating envi‐
194 ronment supports the run levels s, S, 0, 1, 2, 3, 5, and 6. Appli‐
195 cable run levels for this parameter are s, S, 1, 2, and 3 See
196 init(1M) for details.
197
198
199 SUNW_ISA
200
201 Solaris-only optional parameter that indicates a software package
202 contains 64-bit objects if it is set to sparcv9. If this parameter
203 is not set, the default ISA (instruction set architecture) is set
204 to the value of the ARCH parameter.
205
206
207 SUNW_LOC
208
209 Solaris-only optional parameter used to indicate a software package
210 containing localization files for a given product or application.
211 The parameter value is a comma-separated list of locales supported
212 by a package. It is only used for packages containing localization
213 files, typically the message catalogues. The allowable values for
214 this string field are those found in the table of Standard Locale
215 Names located in the International Language Environments Guide.
216
217 SUNW_LOC="<locale_name>,<locale_name>,..,\
218 <locale_name>"
219
220 where
221
222 <locale_name>::= <language>[_<territory>]\
223 [.<codeset>]
224 <language>::= the set of names from ISO 639
225 <territory>::= the set of territories specified
226 in ISO 3166
227 <codeset>::= is a string corresponding to the coded
228 character set
229
230 Since a value of C specifies the traditional UNIX system behavior
231 (American English, en_US), packages belonging to the C locale are
232 viewed as non-localized packages, and thus must not have SUNW_LOC
233 and SUNW_PKGLIST included in their pkginfo file. See also the
234 SUNW_LOC parameter in packagetoc(4) and setlocale(3C) for more
235 information. This keyword is not recognized by the add-on software
236 utility Software Manager.
237
238
239 SUNW_PKG_DIR
240
241 A value set by pkgadd that contains the location of the installing
242 package. This value is provided to any install time package proce‐
243 dure scripts that need to know where the installing package is
244 located. This parameter should never be set manually from within a
245 pkginfo file.
246
247
248 SUNW_PKG_ALLZONES
249
250 Defines whether a package, when installed, must be installed and
251 must be identical in all zones. Assigned value can be true or
252 false. The default value is false. The setting of SUNW_PKG_ALLZONES
253 has the effects described below.
254
255 If set to true, the following conditions are in effect:
256
257 o The package must be installed in the global zone.
258
259 o The package must be installed in any non-global zone
260 that is created.
261
262 o The package must be identical in all zones.
263
264 o The package can be installed only by the global zone
265 administrator.
266
267 o The package cannot be installed by a non-global zone
268 administrator.
269 If set to false, the following conditions are in effect:
270
271 o The package is not required to be installed in all
272 zones.
273
274 o The package is not required to be identical across all
275 zones.
276
277 o The package can be installed by the global zone adminis‐
278 trator or by a non-global zone administrator.
279 Packages that must be identical across all zones must set this
280 variable to true. This would include packages that deliver compo‐
281 nents that are part of the core operating system, or that are
282 dependent on interfaces exported by the core operating system, or
283 that deliver device drivers, or runtime libraries that use or
284 export operating system interfaces that are not guaranteed to be
285 stable across minor releases.
286
287 Packages that deliver components that are not part of the core
288 operating system (such as application programs) that can be differ‐
289 ent between any two zones must set this variable to false.
290
291 With respect to SUNW_PKG_ALLZONES, keep in mind the following:
292
293 o Use of pkgadd in the global zone installs packages in
294 all zones unless -G is specified, in which case packages
295 are installed in the global zone only. The setting of
296 SUNW_PKG_ALLZONES does not change this behavior. For
297 example, a package that has a setting of SUNW_PKG_ALL‐
298 ZONES=false is not installed in the global zone only.
299
300 o The SUNW_PKG_ALLZONES attribute controls whether a pack‐
301 age must be installed in all zones (and must be the same
302 in all zones) when it is installed.
303
304 o Use of the -G option to pkgadd with a package that has
305 SUNW_PKG_ALLZONES=true is an error and causes installa‐
306 tion of that package to fail.
307
308
309 SUNW_PKG_HOLLOW
310
311 Defines whether a package should be visible in any non-global zone
312 if that package is required to be installed and be identical in all
313 zones (for example, a package that has SUNW_PKG_ALLZONES=true).
314 Assigned value can be true or false. The default value is false.
315 The package is not required to be installed, but if it is
316 installed, the setting of SUNW_PKG_HOLLOW has the effects described
317 below.
318
319 If set to false, the following conditions are in effect:
320
321 o If installed in the global zone, the package content and
322 installation information are required in all non-global
323 zones.
324
325 o Software delivered by the package is visible in all non-
326 global zones. An example of such a a package is the
327 package that delivers the truss(1) command.
328 If set to true, the following conditions are in effect:
329
330 o The package content is not delivered on any non-global
331 zone. However, the package installation information is
332 required on all non-global zones.
333
334 o The package delivers software that should not be visible
335 in all non-global zones. Examples include kernel drivers
336 and system configuration files that work only in the
337 global zone. This setting allows the non-global zone to
338 resolve dependencies on packages that are installed only
339 in the global zone without actually installing the pack‐
340 age data.
341
342 o In the global zone, the package is recognized as having
343 been installed, and all components of the package are
344 installed. Directories are created, files are installed,
345 and class action and other scripts are run as appropri‐
346 ate when the package is installed.
347
348 o In a non-global zone, the package is recognized as hav‐
349 ing been installed, but no components of the package are
350 installed. No directories are created, no files are
351 installed, and no class action or other install scripts
352 are run when the package is installed.
353
354 o When removed from the global zone, the package is recog‐
355 nized as having been completely installed. Appropriate
356 directories and files are removed, and class action or
357 other install scripts are run when the package is
358 removed.
359
360 o When removed from a non-global zone, the package is rec‐
361 ognized as not having been completely installed. No
362 directories are removed, no files are removed, and no
363 class action or other install scripts are run when the
364 package is removed.
365
366 o The package is recognized as being installed in all
367 zones for purposes of dependency checking by other pack‐
368 ages that rely on this package being installed.
369 If SUNW_PKG_ALLZONES is set to false, the value of this variable
370 has no meaning. It is a package construction error to set
371 SUNW_PKG_ALLZONES to false, then set SUNW_PKG_HOLLOW to true.
372
373
374 SUNW_PKG_THISZONE
375
376 Defines whether a package must be installed in the current zone
377 only. Assigned value can be true or false. The default value is
378 false. The setting of SUNW_PKG_THISZONE has the effects described
379 below.
380
381 If set to true, the following conditions are in effect:
382
383 o The package is installed in the current zone only.
384
385 o If installed in the global zone, the package is not
386 added to any currently existing or yet-to-be-created
387 non-global zones. This is the same behavior that would
388 occur if the -G option were specified to pkgadd.
389 If set to false, the following conditions are in effect:
390
391 o If pkgadd is run in a non-global zone, the package is
392 installed in the current zone only.
393
394 o If pkgadd is run in the global zone, the package is
395 installed in the global zone, and is also installed in
396 all currently installed non-global zones. In addition,
397 the package will be propagated to all future, newly
398 installed non-global zones.
399
400
401 SUNW_PKGLIST
402
403 Solaris-only optional parameter used to associate a localization
404 package to the package(s) from which it is derived. It is required
405 whenever the SUNW_LOC parameter is defined. This parameter value is
406 an comma-separated list of package abbreviations of the form:
407
408 SUNW_PKGLIST="pkg1[:version],pkg2[:version],..."
409
410 where version (if specified) should match the version string in the
411 base package specified (see VERSION parameter in this manual page).
412 When in use, SUNW_PKGLIST helps determine the order of package
413 installation. The packages listed in the parameter are installed
414 before the localization package in question is installed. When left
415 blank, SUNW_PKGLIST="", the package is assumed to be required for
416 the locale to function correctly. See the SUNW_PKGLIST parameter in
417 packagetoc(4) for more information. This keyword is not recognized
418 by the add-on software utility Software Manager.
419
420
421 SUNW_PKGTYPE
422
423 Solaris-only parameter for Sun internal use only. Required for
424 packages part of the Solaris operating environment releases which
425 install into the /, /usr, /usr/kvm, and /usr/openwin file systems.
426 The Solaris operating environment installation software must know
427 which packages are part of which file system to properly install a
428 server/client configuration. The currently allowable values for
429 this parameter are root, usr, kvm, and ow. If no SUNW_PKGTYPE
430 parameter is present, the package is assumed to be of BASEDIR=/opt.
431 SUNW_PKGTYPE is optional only for packages which install into the
432 /opt name space as is the case for the majority of Solaris add-on
433 software. See the SUNW_PKGTYPE parameter in packagetoc(4) for fur‐
434 ther information.
435
436
437 SUNW_PKGVERS
438
439 Solaris-only parameter indicating of version of the Solaris operat‐
440 ing environment package interface.
441
442 SUNW_PKGVERS="<sunw_package_version>"
443
444 where <unw_package_version> has the form x.y[.z] and x, y, and z
445 are integers. For packages built for this release and previous
446 releases, use SUNW_PKGVERS="1.0".
447
448
449 SUNW_PRODNAME
450
451 Solaris-only parameter indicating the name of the product this
452 package is a part of or comprises (maximum length of 256 ASCII
453 characters). A few examples of currently used SUNW_PRODNAME values
454 are: "SunOS", "OpenWindows", and "Common Desktop Environment".
455
456
457 SUNW_PRODVERS
458
459 Solaris-only parameter indicating the version or release of the
460 product described in SUNW_PRODNAME (maximum length of 256 ASCII
461 characters). For example, where SUNW_PRODNAME="SunOS", and the
462 Solaris 2.x Beta release, this string could be "5.x BETA", while
463 for the Solaris 2.x FCS release, the string would be "5.x". For
464 Solaris 10, the string is "5.10". If the SUNW_PRODNAME parameter is
465 NULL, so should be the SUNW_PRODVERS parameter.
466
467
468 ULIMIT
469
470 If set, this parameter is passed as an argument to the ulimit(1)
471 command (see limit(1)), which establishes the maximum size of a
472 file during installation.
473
474
475 VENDOR
476
477 Used to identify the vendor that holds the software copyright (max‐
478 imum length of 256 ASCII characters).
479
480
481 VSTOCK
482
483 The vendor stock number, if any, that identifies this product (max‐
484 imum length of 256 ASCII characters).
485
486
487
488 For further discussion of the zones-related parameters described above,
489 see System Administration Guide: Virtualization Using the Solaris
490 Operating System.
491
493 The following environment variables are available only to package class
494 action scripts and to checkinstall, preinstall, postinstall scripts.
495
496 SUNW_PKG_INSTALL_ZONENAME
497
498 This variable is set only during the initial installation of a
499 zone.
500
501 If this variable is not set, the system does not support the
502 zones(5) feature. In this case, the package is being installed to
503 or removed from a system that is not configured for zones.
504
505 If the variable is set, and equal to global, the package is being
506 installed to or removed from the global zone.
507
508 If the variable is set and not equal to global, the package is
509 being installed to or removed from the non-global zone named by the
510 contents of the environment variable ${SUNW_PKG_INSTALL_ZONENAME}.
511
512
513 PKG_INIT_INSTALL
514
515 This variable is set only during an initial installation of
516 Solaris, such as installing Solaris from a CD, DVD, or net install
517 image.
518
519 If this variable is set and equal to TRUE, then the package is
520 being installed as part of an initial installation of Solaris.
521
522 If this variable is not set, or set and not equal to TRUE, then the
523 package is not being installed as part of an initial installation
524 of Solaris.
525
526
527
528 The following code excerpt illustrates the semantics of the preceding
529 environment variables.
530
531 if [ $PKG_INIT_INSTALL != "" ] ; then
532 # Package being installed as part of initial
533 # installation of Solaris.
534
535 elif [ $SUNW_PKG_INSTALL_ZONENAME != "" ] ; then
536
537 if [ $SUNW_PKG_INSTALL_ZONENAME != "global" ] ; then
538 # Package being installed as part of initial installation
539 # of non-global zone $SUNW_PKG_INSTALL_ZONENAME
540 else
541 # Package being installed as part of initial installation
542 # of a global zone.
543 fi
544
545 else
546 # Package not being installed as part of initial installation of
547 # Solaris and package not being installed as part of initial
548 # installation of non-global zone.
549 fi
550
551
553 Example 1 A Sample pkginfo File
554
555
556 Here is a sample pkginfo file:
557
558
559 SUNW_PRODNAME="SunOS"
560 SUNW_PRODVERS="5.5"
561 SUNW_PKGTYPE="usr"
562 SUNW_PKG_ALLZONES=false
563 SUNW_PKG_HOLLOW=false
564 PKG="SUNWesu"
565 NAME="Extended System Utilities"
566 VERSION="11.5.1"
567 ARCH="sparc"
568 VENDOR="Sun Microsystems, Inc."
569 HOTLINE="Please contact your local service provider"
570 EMAIL=""
571 VSTOCK="0122c3f5566"
572 CATEGORY="system"
573 ISTATES="S 2"
574 RSTATES="S 2"
575
576
578 See attributes(5) for descriptions of the following attributes:
579
580
581
582
583 ┌─────────────────────────────┬─────────────────────────────┐
584 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
585 ├─────────────────────────────┼─────────────────────────────┤
586 │Availability │SUNWcsu │
587 ├─────────────────────────────┼─────────────────────────────┤
588 │Interface Stability │See entries below │
589 ├─────────────────────────────┼─────────────────────────────┤
590 │PKG value │Evolving │
591 ├─────────────────────────────┼─────────────────────────────┤
592 │VERSION value │Evolving │
593 ├─────────────────────────────┼─────────────────────────────┤
594 │NAME value │Evolving │
595 ├─────────────────────────────┼─────────────────────────────┤
596 │DESC value │Evolving │
597 ├─────────────────────────────┼─────────────────────────────┤
598 │ARCH value │Evolving │
599 ├─────────────────────────────┼─────────────────────────────┤
600 │CATEGORY value │Evolving │
601 ├─────────────────────────────┼─────────────────────────────┤
602 │BASEDIR value │Evolving │
603 ├─────────────────────────────┼─────────────────────────────┤
604 │ISTATES value │Evolving │
605 ├─────────────────────────────┼─────────────────────────────┤
606 │RSTATES value │Evolving │
607 ├─────────────────────────────┼─────────────────────────────┤
608 │MAXINST value │Evolving │
609 ├─────────────────────────────┼─────────────────────────────┤
610 │SUNW_PKG_ALLZONES │Evolving │
611 ├─────────────────────────────┼─────────────────────────────┤
612 │SUNW_PKG_HOLLOW │Evolving │
613 ├─────────────────────────────┼─────────────────────────────┤
614 │SUNW_PKG_THISZONE │Evolving │
615 ├─────────────────────────────┼─────────────────────────────┤
616 │SUNW_PRODNAME │Evolving │
617 ├─────────────────────────────┼─────────────────────────────┤
618 │SUNW_PRODVERS │Evolving │
619 ├─────────────────────────────┼─────────────────────────────┤
620 │SUNW_PKGVERS │Evolving │
621 ├─────────────────────────────┼─────────────────────────────┤
622 │SUNW_PKGTYPE │Unstable │
623 ├─────────────────────────────┼─────────────────────────────┤
624 │SUNW_LOC │Evolving │
625 ├─────────────────────────────┼─────────────────────────────┤
626 │SUNW_PKGLIST │Evolving │
627 ├─────────────────────────────┼─────────────────────────────┤
628 │SUNW_PKG_DIR │Evolving │
629 ├─────────────────────────────┼─────────────────────────────┤
630 │PKG_INIT_INSTALL │Unstable │
631 └─────────────────────────────┴─────────────────────────────┘
632
634 isalist(1), limit(1), pkgmk(1), uname(1), init(1M), setlocale(3C),
635 clustertoc(4), order(4), packagetoc(4), pkgmap(4), attributes(5),
636 zones(5)
637
638
639 Application Packaging Developer's Guide
640
641
642 International Language Environments Guide
643
644
645 System Administration Guide: Virtualization Using the Solaris Operat‐
646 ing System
647
649 Developers can define their own installation parameters by adding a
650 definition to this file. A developer-defined parameter must begin with
651 a capital letter.
652
653
654 Trailing white space after any parameter value is ignored. For example,
655 VENDOR="Sun Microsystems, Inc." is the same as VENDOR="Sun Microsys‐
656 tems, Inc. ".
657
658
659
660SunOS 5.11 24 Mar 2006 pkginfo(4)