OpenBSD::PackingElement(3p) Perl Programmers Reference Guide #
OpenBSD::PackingElement(3p) Perl Programmers Reference Guide
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 OOppeennBBSSDD::::PPaacckkiinnggLLiisstt(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.
::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.
::FDESC #
package description.
::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.
::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.
::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
OOppeennBBSSDD::::PPkkggSSppeecc(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 fulfill
default dependencies.
::Conflict
conflict information.
::Annotation
stuff that doesn't really exist as objects, but is used to add
properties to objects.
::Ignore
mark next object as ignored.
::sha
mark last file with a checksum.
::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.
::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.
::ExeclikeAction
escape mechanism for embedded code that needs to be run.
::Exec
code to run during installation.
::Unexec
code to run during deinstallation.
::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.
::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.36.3 2020-12-20 OpenBSD::PackingElement(3p)