Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

OpenSolaris 2009.06 - man page for prototype (opensolaris section 4)

prototype(4)				   File Formats 			     prototype(4)

NAME
       prototype - package information file

DESCRIPTION
       prototype  is  an  ASCII  file used to specify package information. Each entry in the file
       describes a single deliverable object. An object can be a  data	file,  directory,  source
       file, executable object, and so forth. This file is generated by the package developer.

       Entries	in  a  prototype file consist of several fields of information separated by white
       space. Comment lines begin with a ``#'' and are ignored. The fields  are  described  below
       and must appear in the order shown.

       part	   An  optional  field designating the part number in which the object resides. A
		   part is a collection of files and is the atomic unit by  which  a  package  is
		   processed. A developer can choose criteria for grouping files into a part (for
		   example, based on class). If this field is not used, part 1 is assumed.

       ftype	   A one-character field that indicates the file type. Valid values are:

		   b	block special device

		   c	character special device

		   d	directory

		   e	a file to be edited upon installation or removal (can be shared  by  sev-
			eral packages)

		   f	a standard executable or data file

		   i	installation script or information file

		   l	linked file

		   p	named pipe

		   s	symbolic link

		   v	volatile  file	(one  whose  contents  are expected to change, like a log
			file)

		   x	an exclusive directory accessible only by this package

       class	   The installation class to which the file belongs. This name can be  no  longer
		   than  64  characters.  The  field  is  not specified for installation scripts.
		   (admin and all classes beginning  with  capital  letters  are  reserved  class
		   names.)

       pathname    The	pathname  where  the  file  resides  on  the target machine, for example,
		   /usr/bin/mail or bin/ras/proc. Relative pathnames (those  that  do  not  begin
		   with a slash) indicate that the file is relocatable. The form

		   path1=path2

		   can be used for two purposes: to define a link and to define local pathnames.

		   For	linked files, path1 indicates the destination of the link and path2 indi-
		   cates the source file. (This format is mandatory for linked files.)

		   For local pathnames, path1 indicates the pathname an object should have on the
		   machine  where the entry is to be installed and path2 indicates either a rela-
		   tive or fixed pathname to a file on the host machine which contains the actual
		   contents.

		   A  pathname	can  contain  a  variable specification of the form $variable. If
		   variable begins with a lower case letter, it is a build variable. If  variable
		   begins  with  an upper case letter, it is an install variable. Build variables
		   are bound at build time. If an install variable is known at	build  time,  its
		   definition  is  inserted  into  the pkginfo(4) file so that it is available at
		   install time. If an install variable is not known at build time, it	is  bound
		   at install time.

       major	   The	major  device  number. The field is only specified for block or character
		   special devices.

       minor	   The minor device number. The field is only specified for  block  or	character
		   special devices.

       mode	   The	octal mode of the file (for example, 0664). A question mark (?) indicates
		   that the mode is left unchanged, implying that the file already exists on  the
		   target  machine. This field is not used for linked files or packaging informa-
		   tion files.

		   The mode can be a variable specification of the form  $variable.  If  variable
		   begins  with  a  lower case letter, it is a build variable. If variable begins
		   with an upper case letter, it is an	install  variable.  Build  variables  are
		   bound  at build time. If an install variable is known at build time, its defi-
		   nition is inserted into the pkginfo(4) file so that it is available at install
		   time.  If  an  install  variable  is  not  known at build time, it is bound at
		   install time.

       owner	   The owner of the file (for example, bin or root). The field is limited  to  14
		   characters  in  length.  A  question mark (?) indicates that the owner is left
		   unchanged, implying that the file already exists on the target  machine.  This
		   field is not used for linked files or packaging information files.

		   The	owner  can be a variable specification of the form $variable. If variable
		   begins with a lower case letter, it is a build variable.  If  variable  begins
		   with  an  upper  case  letter,  it is an install variable. Build variables are
		   bound at build time. If an install variable is known at build time, its  defi-
		   nition is inserted into the pkginfo(4) file so that it is available at install
		   time. If an install variable is not known  at  build  time,	it  is	bound  at
		   install time.

       group	   The	group  to  which the file belongs (for example, bin or sys). The field is
		   limited to 14 characters in length. A question mark	(?)  indicates	that  the
		   group  is  left unchanged, implying that the file already exists on the target
		   machine. This field is not used for	linked	files  or  packaging  information
		   files.

		   The	group  can be a variable specification of the form $variable. If variable
		   begins with a lower case letter, it is a build variable.  If  variable  begins
		   with  an  upper  case  letter,  it is an install variable. Build variables are
		   bound at build time. If an install variable is known at build time, its  defi-
		   nition is inserted into the pkginfo(4) file so that it is available at install
		   time. If an install variable is not known  at  build  time,	it  is	bound  at
		   install time.

       An  exclamation	point  (!)  at the beginning of a line indicates that the line contains a
       command. These commands are used to incorporate files  in  other  directories,  to  locate
       objects	on  a  host  machine,  and  to set permanent defaults. The following commands are
       available:

       search	      Specifies a list of directories (separated by white space)  to  search  for
		      when  looking  for  file contents on the host machine. The base name of the
		      path field is appended to each directory in the ordered list until the file
		      is located. Searches are not recursive.

       include	      Specifies  a  pathname  which  points to another prototype file to include.
		      Note that search requests do not span include files.

       default	      Specifies a list of attributes (mode, owner,  and  group)  to  be  used  by
		      default  if  attribute  information  is  not provided for prototype entries
		      which require the information. The defaults do  not  apply  to  entries  in
		      include prototype files.

       param=value    Places  the indicated parameter in the current environment. Spans to subse-
		      quent included prototype files.

       The above commands can have variable substitutions embedded within them,  as  demonstrated
       in the two example prototype files below.

       Before files are overwritten during installation, they are copied to a temporary pathname.
       The exception to this rule is files whose mode includes	execute  permission,  unless  the
       file  is editable (that is, ftype is e). For files which meet this exception, the existing
       version is linked to a temporary pathname, and the original file is removed.  This  allows
       processes which are executing during installation to be overwritten.

EXAMPLES
       Example 1 Example 1:

	 !PROJDIR=/usr/proj
	 !BIN=$PROJDIR/bin
	 !CFG=$PROJDIR/cfg
	 !LIB=$PROJDIR/lib
	 !HDRS=$PROJDIR/hdrs
	 !search /usr/myname/usr/bin /usr/myname/src /usr/myname/hdrs
	 i pkginfo=/usr/myname/wrap/pkginfo
	 i depend=/usr/myname/wrap/depend
	 i version=/usr/myname/wrap/version
	 d none /usr/wrap 0755 root bin
	 d none /usr/wrap/usr/bin 0755 root bin
	 ! search $BIN
	 f none /usr/wrap/bin/INSTALL 0755 root bin
	 f none /usr/wrap/bin/REMOVE 0755 root bin
	 f none /usr/wrap/bin/addpkg 0755 root bin
	 !default 755 root bin
	 f none /usr/wrap/bin/audit
	 f none /usr/wrap/bin/listpkg
	 f none /usr/wrap/bin/pkgmk
	 # the following file starts out zero length but grows
	 v none /usr/wrap/logfile=/dev/null 0644 root bin
	 # the following specifies a link (dest=src)
	 l none /usr/wrap/src/addpkg=/usr/wrap/bin/rmpkg
	 ! search $SRC
	 !default 644 root other
	 f src /usr/wrap/src/INSTALL.sh
	 f src /usr/wrap/src/REMOVE.sh
	 f src /usr/wrap/src/addpkg.c
	 f src /usr/wrap/src/audit.c
	 f src /usr/wrap/src/listpkg.c
	 f src /usr/wrap/src/pkgmk.c
	 d none /usr/wrap/data 0755 root bin
	 d none /usr/wrap/save 0755 root bin
	 d none /usr/wrap/spool 0755 root bin
	 d none /usr/wrap/tmp 0755 root bin
	 d src /usr/wrap/src 0755 root bin

       Example 2 Example 2:

	 # this prototype is generated by 'pkgproto' to refer
	 # to all prototypes in my src directory
	 !PROJDIR=/usr/dew/projx
	 !include $PROJDIR/src/cmd/prototype
	 !include $PROJDIR/src/cmd/audmerg/protofile
	 !include $PROJDIR/src/lib/proto

SEE ALSO
       pkgmk(1), pkginfo(4)

       Application Packaging Developer's Guide

NOTES
       Normally, if a file is defined in the prototype file but does not exist, that file is cre-
       ated at the time of package installation. However, if the file pathname includes a  direc-
       tory  that does not exist, the file is not created. For example, if the prototype file has
       the following entry:

	 f none /usr/dev/bin/command

       and that file does not exist, it is created if the directory /usr/dev/bin  already  exists
       or if the prototype also has an entry defining the directory:

	 d none /usr/dev/bin

SunOS 5.11				    3 May 2008				     prototype(4)


All times are GMT -4. The time now is 06:53 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password