Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ prototype(4) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

pkginfo(4)

pkgmk(1)



prototype(4)              FILE FORMATS               prototype(4)



NAME
     prototype - package information file

DESCRIPTION
     prototype is an ASCII file used to specify package  informa-
     tion.  Each entry in the file describes a single deliverable
     object.  An object may be a  data  file,  directory,  source
     file, executable object, etc.  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  pack-
               age is processed.  A developer can choose criteria
               for groupig files into  a  part  (e.g.,  based  on
               class).  If  this  field  is  not  used, part 1 is
               assumed.

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

                   f   a standard executable or data file
                   e   a file to be edited upon  installation  or
                       removal
                   v   volatile  file  (one  whose  contents  are
                       expected to change)
                   d   directory
                   x   an exclusive directory
                   l   linked file
                   p   named pipe
                   c   character special device
                   b   block special device
                   i   installation script or information file
                   s   symbolic link

     class     The installation class to which the file  belongs.
               This  name  must contain only alphanumeric charac-
               ters and be no longer  than  12  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  will  reside  on  the
               target    machine,    e.g.,    /usr/bin/mail    or
               bin/rasproc.  Relative pathnames (those  that  do
               not  begin with a slash) indicate that the file is
               relocatable.  The form
                   path1=path2



                                                                1





prototype(4)              FILE FORMATS               prototype(4)



               may 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 indicates 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  relative or fixed pathname to a file on
               the host machine which contains  the  actual  con-
               tents.

               A pathname may contain a  variable  specification,
               which  will  be  resolved at the time of installa-
               tion.  This specification  should  have  the  form
               $[A-Z].

     major     The major device number.  The field is only speci-
               fied for block or character special devices.

     minor     The minor device number.  The field is only speci-
               fied for block or character special devices.

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

     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  will
               be  left unchanged, implying that the file already
               exists on the target machine.  This field  is  not
               used  for  linked  files  or packaging information
               files.

               Can be a variable specification  in  the  form  of
               $[A-Z].  Will be resolved at installation time.

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

               Can be a variable specification  in  the  form  of



                                                                2





prototype(4)              FILE FORMATS               prototype(4)



               $[A-Z].  Will be resolved at installation time.

     An exclamation point (!) at the beginning of  a  line  indi-
     cates  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
                    basename  of  the  path  field is appended to
                    each directory in the ordered list until  the
                    file is located.

     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.

     The above commands may 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  (i.e, ftype is e).  For files which meet
     this exception, the existing version is  linked  to  a  tem-
     porary  pathname,  and  the  original file is removed.  This
     allows processes which are executing during installation  to
     be overwritten.

EXAMPLES
     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



                                                                3





prototype(4)              FILE FORMATS               prototype(4)



          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:

          # 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
     pkginfo(4), pkgmk(1).

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

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



                                                                4





prototype(4)              FILE FORMATS               prototype(4)



          d none /usr/dev/bin






















































                                                                5



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026