Debian::Control::Stanza(3pm) User Contributed Perl Documentation Debian::Control::Stanza(3pm)NAME
Debian::Control::Stanza - single stanza of Debian source package control file
SYNOPSIS
package Binary;
use base 'Debian::Control::Stanza';
use constant fields => qw( Package Depends Conflicts );
1;
DESCRIPTION
Debian::Control::Stanza ins the base class for Debian::Control::Stanza::Source and Debian::Control::Stanza::Binary classes.
FIELDS
Stanza fields are to be defined in the class method fields. Tyically this can be done like:
use constant fields => qw( Foo Bar Baz );
Fields that are to contain dependency lists (as per "is_dependency_list" method below) are automatically converted to instances of the
Debian::Dependencies class.
CONSTRUCTOR
new
new( { field => value, ... } )
Creates a new Debian::Control::Stanza object and optionally initializes it with the supplied data. The object is hashref based and tied
to Tie::IxHash.
You may use dashes for initial field names, but these will be converted to underscores:
my $s = Debian::Control::Stanza::Source( {Build-Depends => "perl"} );
print $s->Build_Depends;
METHODS
is_dependency_list($field)
Returns true if $field contains a list of dependencies. By default returns true for the following fields:
Build_Depends
Build_Depends_Indep
Build_Conflicts
Build_Conflicts_Indep
Depends
Conflicts
Enhances
Replaces
Breaks
Pre_Depends
Recommends
Suggests
is_comma_separated($field)
Returns true if the given field is to contain a comma-separated list of values. This is used in stringification, when considering
where to wrap long lines.
By default the following fields are flagged to contain such lists:
All fields that contain dependencies (see above)
Uploaders
Provides
get($field)
Overrides the default get method from Class::Accessor with Tie::IxHash's FETCH.
set( $field, $value )
Overrides the default set method from Class::Accessor with Tie::IxHash's STORE. In the process, converts $value to an instance of the
Debian::Dependencies class if $field is to contain dependency list (as determined by the "is_dependency_list" method).
as_string([$width])
Returns a string representation of the object. Ready to be printed into a real debian/control file. Used as a stringification operator.
Fields that are comma-separated use one line per item, except if they are like "${some:Field}", in which case they are wrapped at
$widthth column. $width defaults to 80.
COPYRIGHT & LICENSE
Copyright (C) 2009 Damyan Ivanov dmn@debian.org
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
perl v5.14.2 2012-01-15 Debian::Control::Stanza(3pm)
Check Out this Related Man Page
Debian::Dependencies(3pm) User Contributed Perl Documentation Debian::Dependencies(3pm)NAME
Debian::Dependencies - a list of Debian::Dependency objects
SYNOPSIS
my $dl = Debian::Dependencies->new('perl, libfoo-perl (>= 3.4)');
print $dl->[1]->ver; # 3.4
print $dl->[1]; # libfoo-perl (>= 3.4)
print $dl; # perl, libfoo-perl (>= 3.4)
$dl += 'libbar-perl';
print $dl; # perl, libfoo-perl (>= 3.4), libbar-perl
print Debian::Dependencies->new('perl') + 'libfoo-bar-perl';
# simple 'sum'
print Debian::Dependencies->new('perl')
+ Debian::Dependencies->new('libfoo, libbar');
# add (concatenate) two lists
print Debian::Dependencies->new('perl')
+ Debian::Dependency->new('foo');
# add depeendency to a list
DESCRIPTION
Debian::Dependencies a list of Debian::Dependency objects, with automatic construction and stringification.
Objects of this class are blessed array references. You can safely treat them as arrayrefs, as long as the elements you put in them are
instances of the Debian::Dependency class.
When used in string context, Debian::Dependencies converts itself into a comma-delimitted list of dependencies, suitable for dependency
fields of debian/control files.
CLASS METHODS
new(dependency-string)
Constructs a new Debian::Dependencies object. Accepts one scalar argument, which is parsed and turned into an arrayref of
Debian::Dependency objects. Each dependency should be delimitted by a comma and optional space. The exact regular expression is
"/s*,s*/".
OBJECT METHODS
add( dependency[, ... ] )
Adds dependency (or a list of) to the list of dependencies. If the new dependency is a subset of or overlaps some of the old
dependencies, it is not duplicated.
my $d = Debian::Dependencies('foo, bar (<=4)');
$d->add('foo (>= 4), bar');
print "$d"; # foo (>= 4), bar (>= 4)
dependency can be either a Debian::Dependency object, a Debian::Deendencies object, or a string (in which case it is converted to an
instance of the Debian::Dependencies class).
remove( dependency, ... ) =item remove( dependencies, ... )
Removes a dependency from the list of dependencies. Instances of Debian::Dependency and Debian::Dependencies classes are supported as
arguments.
Any non-reference arguments are coerced to instances of Debian::Dependencies class.
Only dependencies that are subset of the given dependencies are removed:
my $deps = Debian::Dependencies->new('foo (>= 1.2), bar');
$deps->remove('foo, bar (>= 2.0)');
print $deps; # bar
Returns the list of the dependencies removed.
has( dep )
Return true if the dependency list contains given dependency. In other words, this returns true if the list of dependencies guarantees
that the given dependency will be satisfied. For example, "foo, bar" satisfies "foo", but not "foo (>= 5)".
prune()
This method is deprecated. If you want to sort the dependency list, either call "sort" or use normal perl sorting stuff on the
dereferenced array.
sort()
Sorts the dependency list by packagee name, version and relation.
SEE ALSO
Debian::Dependency
AUTHOR
Damyan Ivanov <dmn@debian.org>
COPYRIGHT & LICENSE
Copyright (C) 2008, 2009, 2010 Damyan Ivanov <dmn@debian.org>
Copyright (C) 2009 gregor herrmann <gregoa@debian.org>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
perl v5.14.2 2012-01-15 Debian::Dependencies(3pm)