Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Dpkg::Changelog(3perl)		 libdpkg-perl		Dpkg::Changelog(3perl)

       Dpkg::Changelog - base class to implement a changelog parser

       Dpkg::Changelog is a class representing a changelog file	as an array of
       changelog entries (Dpkg::Changelog::Entry).  By deriving	this object
       and implementing	its parse method, you add the ability to fill this
       object with changelog entries.

       $c = Dpkg::Changelog->new(%options)
	   Creates a new changelog object.

	   Change the value of some options. "verbose" (defaults to 1) defines
	   whether parse errors	are displayed as warnings by default.
	   "reportfile"	is a string to use instead of the name of the file
	   parsed, in particular in error messages. "range" defines the	range
	   of entries that we want to parse, the parser	will stop as soon as
	   it has parsed enough	data to	satisfy	$c->get_range($opts{range}).

	   Can be used to delete all information about errors occurred during
	   previous parse runs.

       $c->parse_error($file, $line_nr,	$error,	[$line])
	   Record a new	parse error in $file at	line $line_nr. The error
	   message is specified	with $error and	a copy of the line can be
	   recorded in $line.

	   Returns all error messages from the last parse run.	If called in
	   scalar context returns a human readable string representation. If
	   called in list context returns an array of arrays. Each of these
	   arrays contains

	   1.  a string	describing the origin of the data (a filename
	       usually). If the	reportfile configuration option	was given, its
	       value will be used instead.

	   2.  the line	number where the error occurred

	   3.  an error	description

	   4.  the original line

	   Add a string	representing unparsed lines after the changelog
	   entries.  Use undef as $tail	to remove the unparsed lines currently

	   Return a string representing	the unparsed lines after the changelog
	   entries. Returns undef if there's no	such thing.

	   Returns all the Dpkg::Changelog::Entry objects contained in this
	   changelog in	the order in which they	have been parsed.

	   Returns an array (if	called in list context)	or a reference to an
	   array of Dpkg::Changelog::Entry objects which each represent	one
	   entry of the	changelog. $range is a hash reference describing the
	   range of entries to return. See section "RANGE SELECTION".

	   Returns true	if enough data have been parsed	to be able to return
	   all entries selected	by the range set at creation (or with

       $str = $c->output()
	   Returns a string representation of the changelog (it's a
	   concatenation of the	string representation of the individual
	   changelog entries).

	   Output the changelog	to the given filehandle.

	   Save	the changelog in the given file.

       $control	= $c->format_range($format, $range)
	   Formats the changelog into Dpkg::Control::Changelog objects
	   representing	the entries selected by	the optional range specifier
	   (see	"RANGE SELECTION" for details).	In scalar context returns a
	   Dpkg::Index object containing the selected entries, in list context
	   returns an array of Dpkg::Control::Changelog	objects.

	   With	format dpkg the	returned Dpkg::Control::Changelog object is
	   coalesced from the entries in the changelog that are	part of	the
	   range requested, with the fields described below, but considering
	   that	"selected entry" means the first entry of the selected range.

	   With	format rfc822 each returned Dpkg::Control::Changelog objects
	   represents one entry	in the changelog that is part of the range
	   requested, with the fields described	below, but considering that
	   "selected entry" means for each entry.

	   The different formats return	undef if no entries are	matched. The
	   following fields are	contained in the object(s) returned:

	       package name (selected entry)

	       packages' version (selected entry)

	       target distribution (selected entry)

	       urgency (highest	of all entries in range)

	       person that created the (selected) entry

	       date of the (selected) entry

	       date of the (selected) entry as a timestamp in seconds since
	       the epoch

	       bugs closed by the (selected) entry/entries, sorted by bug

	       content of the (selected) entry/entries

       $control	= $c->dpkg($range)
	   This	is a deprecated	alias for $c->format_range('dpkg', $range).

       @controls = $c->rfc822($range)
	   This	is a deprecated	alias for "scalar c-"format_range('rfc822',

       A range selection is described by a hash	reference where	the allowed
       keys and	values are described below.

       The following options take a version number as value.

	   Causes changelog information	from all versions strictly later than
	   version to be used.

	   Causes changelog information	from all versions strictly earlier
	   than	version	to be used.

	   Similar to "since" but also includes	the information	for the
	   specified version itself.

       to  Similar to "until" but also includes	the information	for the
	   specified version itself.

       The following options don't take	version	numbers	as values:

       all If set to a true value, all entries of the changelog	are returned,
	   this	overrides all other options.

	   Expects a signed integer as value. Returns "value" entries from the
	   top of the changelog	if set to a positive integer, and "abs(value)"
	   entries from	the tail if set	to a negative integer.

	   Expects a signed integer as value. Changes the starting point for
	   "count", either counted from	the top	(positive integer) or from the
	   tail	(negative integer). "offset" has no effect if "count" wasn't
	   given as well.

       Some examples for the above options. Imagine an example changelog with
       entries for the versions	1.2, 1.3, 2.0, 2.1, 2.2, 3.0 and 3.1.

	 Range			      Included entries
	 -----			      ----------------
	 since => '2.0'		      3.1, 3.0,	2.2
	 until => '2.0'		      1.3, 1.2
	 from  => '2.0'		      3.1, 3.0,	2.2, 2.1, 2.0
	 to    => '2.0'		      2.0, 1.3,	1.2
	 count =>  2		      3.1, 3.0
	 count => -2		      1.3, 1.2
	 count =>  3, offset =>	2     2.2, 2.1,	2.0
	 count =>  2, offset =>	-3    2.0, 1.3
	 count => -2, offset =>	3     3.0, 2.2
	 count => -2, offset =>	-3    2.2, 2.1

       Any combination of one option of	"since"	and "from" and one of "until"
       and "to"	returns	the intersection of the	two results with only one of
       the options specified.

   Version 1.01	(dpkg 1.18.8)
       New method: $c->format_range().

       Deprecated methods: $c->dpkg(), $c->rfc822().

       New field Timestamp in output formats.

   Version 1.00	(dpkg 1.15.6)
       Mark the	module as public.

1.19.7				  2019-04-19		Dpkg::Changelog(3perl)


Want to link to this manual page? Use this URL:

home | help