// package-tracker - Compare and track package versions in debian repositories
// Copyright (C) 2017 Andreas Kreuzer <andreas.kreuzer@open-infrastructure.net>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// 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, see <http://www.gnu.org/licenses/>.

PACKAGE-TRACKER(1)
==================
:doctype: manpage
:man manual: Open Infrastructure
:man source: package-tracker
:man version: {revnumber}


NAME
----
package-tracker - Compare and track package versions in debian repositories


SYNOPSIS
--------
*package-tracker* READ COMPARE ['OPTIONS']


DESCRIPTION
-----------
*package-tracker* is designed to compare apt(1) archives from a derrivate (debian extending repositories) against their parent ones. As such it is possible to track changes of package versions in other archives.

The comparison mechanism in use is the one from the Python APT library. *package-tracker* checks all binary packages in regards of their source packages.

Traversing multiple suites is done as follows.

*stable*, *stable-updates*, *stable-security*
are checked against their corresponding suites in the parent archive (source and their binary packages).

*stable-backports*, *stable-backports-extras*
are checked agains the unstable (sid) ones (source and their binary packages).

*stable-extras* and *stable-backports-extras*
have a check for a existing source package in any of the parent distribution suites.

Within all version checks there is a test for a existing binary Non-Maintainer Upload (binNMU).

*package-tracker* internally uses the default suite names given from apt and does not use codenames. Anyway, you may configure package-tracker with apt sources.list files with codenames (see CONFIGURATION for more information). A such it will be assumed, that your (current) archive is in stable release state. For a case of a debian freeze, *package-tracker* will try to use the testing release suites of the parent archive. Regardless of a debian repository freeze, your derrivative suites can be also in testing suite state.

The *--ignore-tag* parameter is used to bypass the version comparison mechanism of apt. It is not been intended to use release tags for a derrivative version naming scheme. As such you can specify this version part and *package-tracker* will strip the tag from the end of each version string before using apt library comparison function. For example;

	foo-1.2-4 (a debian upstream package)
	foo-1.1-1~myderrivative1 (backports package from a debian derrivative)

As such package foo-1.1-1 will be compared against foo-1.2-4.


OPTIONS
-------
The following package-tracker common options are available:

*'READ'*::
	Specify apt sources file wich will been read to compare. See CONFIGURATION for more information.

*'COMPARE'*::
	Specify apt souces file wich will been compared against. See CONFIGURATION for more information.

*-t, --filter-type='{all|lower|obsolete|ok}'*::
	Specify a filter for items to display. Defaults to all.

*-o, --output-type='{stdout|html}'*::
	Output defaults to stdout. A html report can be written to a file.

*-f, --file='FILE'*::
	Specify file name to write a report to. Defaults to report.html in current working directory.

*-i, --ignore-tag='STRING'*::
	In case of packages with additional version tag, this string will been regarded like a revision tag. As such it will been not regarded in time of the version comparison against the parent archive.

*-v, --verbose*::
	Print more information.

*-d, --debug*::
	Set log level to DEBUG instead of INFO.


CONFIGURATION
-------------
*package-tracker* uses sources.list(5) configuration files, as used by apt(1). Archives from 'READ' configuration file will be compared against the archives in 'COMPARE'. There is no need to include apt-src repositories.

There is no limitation in comparison to default apt sources.list(5) files usage.
You may have to ensure to define same components for the to read and the compare configuration files. To ensure that *package-tracker* can check against the unstable (sid) release packages, include this one in your configuration file.

See /usr/share/doc/package-tracker for configuration examples.


FILES
-----
The following files/directories are used:

*/etc/package-tracker/***.list*::
	Apt sources configuration files.

*/var/lib/package-tracker*::
	This is a separated directory for apt to ensure to not use default apt instance on your host.

*/var/log/package-tracker/package-tracker.log*::
	This is were the log file is placed.

*/usr/share/package-tracker/templates/report.html*::
	HTML template wich will been used to generate the report. Can be modified for your own use.

*/usr/share/doc/package-tracker*::
	Configuration examples.

SEE ALSO
--------
package-tracker(7),
apt(1),
sources.list(5).


HOMEPAGE
--------
More information about package-tracker and the Open Infrastructure project can be found on the homepage at https://open-infrastructure.net.


CONTACT
-------
Bug reports, feature requests, help, patches, support and everything else
are welcome on the Open Infrastructure Software Mailing List <software@lists.open-infrastructure.net>.

Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs.debian.org.


AUTHORS
-------
package-tracker was written by Andreas Kreuzer <andreas.kreuzer@open-infrastructure.net>.
