


OpenBSD::PackingElPeemrelntP(r3opg)rammers ReferOepnecneBSGDu:i:dPeackingElement(3p)


NNAAMMEE
       OpenBSD::PackingElement - pkg_add(1) packing-elements
       object hierarchy

SSYYNNOOPPSSIISS
           package OpenBSD::PackingElement;
           sub method
           {
           }

           package OpenBSD::PackingElement::Depend;
           sub method
           {
               my ($self, @args) = @_;
               # do something
           }

           package main;
           use OpenBSD::PackingList;

           $plist = OpenBSD::PackingList->fromfile($filename);
           $plist->visit('method', @args);

DDEESSCCRRIIPPTTIIOONN
       "OpenBSD::PackingElement" is the base class for all
       elements in a packing-list (see _O_p_e_n_B_S_D_:_:_P_a_c_k_i_n_g_L_i_s_t(3p)
       and pkg_create(1)).

       Manipulation of packing-lists mostly occurs through
       visitor patterns such as "OpenBSD::PackingList::visit":
       client code defines a method for each relevant class in
       the hierarchy and calls "$plist->visit('method')" to
       perform the processing.

       Most actual objects have one property: their "name".

       ::Meta
           base class for all meta information that can be
           reordered at will.

           ::Unique
               meta information with uniqueness properties.

               ::Arch
                   architecture requirements.

               ::ExtraInfo
                   some unique properties, like "PKGPATH" and
                   allowed-for-ftp status.

               ::Name
                   the package name.





perl v5.10.1                2009-12-17                          1





OpenBSD::PackingElPeemrelntP(r3opg)rammers ReferOepnecneBSGDu:i:dPeackingElement(3p)


               ::LocalBase
                   the local base for the package.

               ::NoDefaultConflict
                   special annotation that package should not
                   have any "stem-*" conflict marker.

               ::SpecialFile
                   special files like the package description or
                   install script.

                   ::FCONTENTS
                       contents file.

                   ::FCOMMENT
                       comment file. Deprecated.

                   ::FDESC
                       package description.

                   ::FREQUIRE
                       Deprecated.

                   ::FMTREE_DIRS
                       deprecated

                   ::DisplayFile
                       abstract class for special files that can
                       be displayed.  provides method
                       "prepare($state)" to display the file.

                       ::FDISPLAY
                           message displayed during package
                           install.

                       ::FUNDISPLAY
                           message displayed during package
                           uninstall.

                   ::ScriptFile
                       abstract class for special files that can
                       be run.  provides method "run($state,
                       @args)" to run the script.

                       ::FINSTALL
                           INSTALL script.

                       ::FDEINSTALL
                           DEINSTALL script.

                       ::FREQUIRE
                           REQUIRE script.





perl v5.10.1                2009-12-17                          2





OpenBSD::PackingElPeemrelntP(r3opg)rammers ReferOepnecneBSGDu:i:dPeackingElement(3p)


           ::Option
               factory for @option

           ::Comment
               comments in the packing-lists. The constructor is
               actually a factory, since some comments evolve to
               some other class.

           ::CVSTag
               special class of comments that get reordered to
               the front of packing-lists.

           ::Depend
               all dependency information.

               ::PkgDep
                   deprecated.

               ::NewDepend
                   deprecated.

               ::LibDepend
                   deprecated.

               ::Wantlib
                   shared library needed for the package.

               ::Dependency
                   package needed, with the following properties:
                   "pkgpath" is the path used to create the
                   dependency, "pattern" is the
                   _O_p_e_n_B_S_D_:_:_P_k_g_S_p_e_c(3p) pattern used to match the
                   dependency, "def" is the default value of the
                   dependency computed during build, to use for
                   comparing package signatures and to fullfill
                   default dependencies.

           ::Conflict
               conflict information.

               ::PkgConflict
                   deprecated.

       ::Annotation
           stuff that doesn't really exist as objects, but is
           used to add properties to objects.

           ::Ignore
               mark next object as ignored.

           ::md5
               mark last file with a checksum.





perl v5.10.1                2009-12-17                          3





OpenBSD::PackingElPeemrelntP(r3opg)rammers ReferOepnecneBSGDu:i:dPeackingElement(3p)


           ::size
               mark last file with a size.

           ::symlink
               mark last file as a symlink.

           ::hardlink
               mark last file as a hardlink.

           ::temp
               mark last file with a temporary name. Used during
               extraction of packages for replacement.

       ::Object
           somewhat concrete elements in packing-lists.  This is
           the base class for objects with a location in the
           filesystem.  It defineds method "fullname", to access
           the complete name of the object.

           Note that all objects with file names use relative
           names except for "::Extra", "::Sample" and
           "::Sampledir"

           ::FileObject
               abstract class corresponding to files and
               directories.  Default constructor depends on a
               "dirclass" property, that may create objects from
               another class if their name ends with a "/".  The
               full object name is normally computed relative to
               the current working directory as set in "::State".

               ::FileBase
                   abstract class for files.

                   ::File
                       actual file objects present in the
                       packing-list.

                   ::InfoFile
                       GNU info file objects.

                   ::Shell
                       files with shell properties.

                   ::Manpage
                       man pages.

                   ::Lib
                       shared library files.

                   ::Sample
                       file objects not present in the packing-
                       list.




perl v5.10.1                2009-12-17                          4





OpenBSD::PackingElPeemrelntP(r3opg)rammers ReferOepnecneBSGDu:i:dPeackingElement(3p)


               ::DirlikeObject
                   abstract class for directories.

                   ::DirRm
                       deprecated.

                   ::DirBase
                       ::Dir
                           normal directory, with specialized
                           versions.

                           ::Infodir
                               directory holds GNU info files.

                           ::Fontdir
                               directory holds X11 fonts.

                           ::Mandir
                               directory is the root of a set of
                               manpages.

                           ::Sampledir
                               directory is used to hold
                               configuration files or similar
                               objects.

           ::Action
               stuff that performs some action during
               addition/removal of package.

               ::NewAuth
                   ::NewUser
                       user that needs to be created for the
                       package to work.

                   ::NewGroup
                       group that needs to be created for the
                       package to work.

               ::Sysctl
                   sysctl(8) property needed for the package to
                   work.

               ::ExeclikeAction
                   escape mechanism for embedded code that needs
                   to be run.

                   ::Exec
                       code to run during installation.

                   ::Unexec
                       code to run during deinstallation.





perl v5.10.1                2009-12-17                          5





OpenBSD::PackingElPeemrelntP(r3opg)rammers ReferOepnecneBSGDu:i:dPeackingElement(3p)


                   ::Extraunexec
                       extra code to run during deinstallation
                       with -c.

           ::State
               annotation-like stuff that can't be easily moved
               around because it influences surrounding objects
               (mostly derived from "::FileObject").

               ::Cwd
                   change the current working directory.

               ::EndFake
               ::Owner
                   change the current file owner.

               ::Group
                   change the current file group.

               ::Mode
                   change the current file mode.

CCAAVVEEAATTSS
       Some aspects of this API are likely to change in the
       future, although the basic class hierarchy is now more or
       less worked out.































perl v5.10.1                2009-12-17                          6


