---
name: "Lintian::Processable::Source::Relation"
section: "3"
platform: "linux"
package: "lintian"
version: "2.122.0"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Lintian::Processable::Source::Relation"
---

# Lintian::Processable::Source::Relation(3)

Lintian interface to source package data collection

## NAME

Lintian::Processable::Source::Relation - Lintian interface to source package data collection

## SYNOPSIS

```
    my ($name, $type, $dir) = ('foobar', 'source', '/path/to/lab-entry');
    my $collect = Lintian::Processable::Source::Relation->new($name);
    if ($collect->native) {
        print encode_utf8("Package is native\n");
    }
```

## DESCRIPTION

Lintian::Processable::Source::Relation provides an interface to package data for source packages.  It implements data collection methods specific to source packages.

This module is in its infancy.  Most of Lintian still reads all data from files in the laboratory whenever that data is needed and generates that data via collect scripts.  The goal is to eventually access all data about source packages via this module so that the module can cache data where appropriate and possibly retire collect scripts in favor of caching that data in memory.

## INSTANCE METHODS

- binary\_relation (PACKAGE, FIELD)

  Returns a Lintian::Relation object for the specified FIELD in the binary package PACKAGE in the *debian/control* file.  FIELD should be one of the possible relationship fields of a Debian package or one of the following special values:

  - All

    The concatenation of Pre-Depends, Depends, Recommends, and Suggests.

  - Strong

    The concatenation of Pre-Depends and Depends.

  - Weak

    The concatenation of Recommends and Suggests.

  If FIELD isn't present in the package, the returned Lintian::Relation object will be empty (present but satisfies nothing).

  Any substvars in *debian/control* will be represented in the returned relation as packages named after the substvar.

- saved\_binary\_relations

  - relation (FIELD)

  Returns a Lintian::Relation object for the given build relationship field FIELD.  In addition to the normal build relationship fields, the following special field names are supported:

  - Build-Depends-All

    The concatenation of Build-Depends, Build-Depends-Arch and Build-Depends-Indep.

  - Build-Conflicts-All

    The concatenation of Build-Conflicts, Build-Conflicts-Arch and Build-Conflicts-Indep.

  If FIELD isn't present in the package, the returned Lintian::Relation object will be empty (present but satisfies nothing).

- saved\_relation

  - relation\_norestriction (FIELD)

  The same as "relation (FIELD)", but ignores architecture restrictions and build profile restrictions in the FIELD field.

- saved\_relations\_norestriction

  ## AUTHOR

Originally written by Russ Allbery \<rra@debian.org\> for Lintian. Amended by Felix Lechner \<felix.lechner@lease-up.com\> for Lintian.

## SEE ALSO

[**lintian**(1)](/lintian/1.md)
