---
name: "forktracer.conf"
section: "5"
platform: "linux"
package: "apt-forktracer"
version: "0.11"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/forktracer.conf"
---

# forktracer.conf(5)

apt-forktracer configuration file

## NAME

forktracer.conf - apt-forktracer configuration file

## DESCRIPTION

**apt-forktracer** reports "non-standard" packages which are installed in the system. The configuration files let you ignore (skip reporting) some of them, provided they meet certain criteria. The program reads the */etc/apt/forktracer.conf* file, as well as */etc/apt/forktracer.d/\*.conf* (skipping hidden files).

A config file consists of any number of stanzas, separated with at least one empty lines. A stanza has the following format:

```
    Package: package
    Accept-Origin: origin1
    Track-Origin: origin2
    Track-Version: version
```

All these lines in a stanza are required, and they have the following meaning:

- **package**

  the name of the package to which this stanza applies

- **origin1**

  the value of the Origin field of the source, from which a package should be ignored. A package will be ignored, if its candidate version comes from  **source1**, and at the same time meets the condition given by the **Track-\*** fields. A special value **\*** means, that a package should be ignored regardless of the source of the candidate version.

- **origin2**

  the value of the Origin field of the source, from which the newest available version should be tracked. A special value **\*** means, that a generally newest available version should be tracked, regardless of source.

- **version**

  is the required version string available from the **origin2** source. Apart from a literal version string, the following special values may be used: **=candidate**, which means the current candidate version, and **=candidate-base**, which means the base version (see below) of the current candidate version.

The above stanza would cause **package** to be skipped from program output, as long as its candidate version comes from **origin1**, and at the same time its newest version available from **origin2** equals **version**.

If there is more than one stanza for a given package, then it is omitted from the program output if at least one of them matches the current situation.

### Base version definition

A base version is extracted from a given version by stripping from its end the shortest string starting with a tilde character. For example for version **1:1.2-3~4~5** the base version is **1:1.2-3~4**.

### Default configuration

If for a given package **package** there is no stanza in the configuration, then the program acts as if the following two stanzas existed:

```
    Package: package
    Accept-Origin: *
    Track-Origin: distributor
    Track-Version: =candidate
    Package: package
    Accept-Origin: *
    Track-Origin: distributor
    Track-Version: =candidate-base
```

where **distributor** is the system distributor's identifier, as returned by **lsb\_release --id** or by the **DISTRIB\_ID** field in the */etc/lsb-release* file.

## EXAMPLES

### Unofficial package

**apt-forktracer** reports packages which are not available from any official source, for example:

```
    puppet-softwarelab (0.2) [SoftwareLab: 0.2 0.1]
```

The following stanza makes it skip such packages:

```
    Package: puppet-softwarelab
    Accept-Origin: SoftwareLab
    Track-Origin: *
    Track-Version: =candidate
```

If the **puppet-softwarelab** package will be "pinned" to "release o=Softwarelab", then such configuration will make **apt-forktracer** report if **puppet-softwarelab** appears in any source other than **SoftwareLab** in a version newer than the one available from it.

### Backport

Installing a backport has a similar effect to installing an unofficial package:

```
    spamc (3.2.3-0.volatile1) [Debian: 3.1.7-2] [volatile.debian.org: 3.2.3-0.volatile1]
```

The following stanza will cause such package to be skipped:

```
    Package: spamc
    Accept-Origin: volatile.debian.org
    Track-Origin: *
    Track-Version: =candidate
```

In this situation a small official version string change (for example to 3.1.7-2etch1) will be silently ignored. Such configuration is therefore only suitable for cases where you trust the person providing the backport to carefully track changes in the stable edition and make sure they are incorporated in the backport they are distributing. In other cases, you should probably use the following configuration.

### Own modifications

Sometimes there is a situation where you make minor changes to a package, and you would like to know when a new official stable version is released, so that you can update your modified version.

```
    policyd-weight (0.1.14-beta-6etch2.0.sl.1) [Debian: 0.1.14-beta-6etch2] [SoftwareLab: 0.1.14-beta-6etch2.0.sl.1]
```

The following configuration is useful in such cases:

```
    Package: policyd-weight
    Accept-Origin: SoftwareLab
    Track-Origin: Debian
    Track-Version: 0.1.14-beta-6etch2
```

It is worth mentioning, that if you apply a certain convention when numbering the modified version, then the **Default configuration** described before is sufficient. In this case, if the modified version would have a version number such as **0.1.14-beta-6etch2~sl.1** then the above-mentioned stanza would be unnecessary. What is more, there would be no need to keep any configuration up-to-date in case of new stable version releases, because the default configuration is created dynamically based on the current situation.

## FILES

*/etc/apt/forktracer.conf*\
 */etc/apt/forktracer.d/\*.conf*

## SEE ALSO

[**apt-cache**(8)](/apt-cache/8.md), [**apt-forktracer**(8)](/apt-forktracer/8.md), [**apt\_preferences**(5)](/apt_preferences/5.md).
