---
name: "yaclc"
section: "1"
platform: "linux"
package: "yaclc"
version: "1.4.1-0.1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/yaclc"
---

# yaclc(1)

check the bug closings in a Debian changelog

## NAME

yaclc - check the bug closings in a Debian changelog

## SYNOPSIS

yaclc \[**-i** */path/to/index.db*\] \[**-dhvnelp**\] *changes-file*

## ARGUMENTS

- \-i *file*

  Use *file* as an index, greatly reducing load on the BTS, and greatly increasing the speed of processing.  **yaclc** tries using this file before it tries any other method of getting info about the bug.  If you are on an official Debian machine (something.debian.org), a useful argument might be '-i /org/bugs.debian.org/spool/index.archive' or .../index.db.

- \-d

  Print debugging output.  Implies -v.

- \-h

  Print a usage message.

- \-v

  Be verbose.

- \-n

  No HTTP queries.  To disable LDAP queries simply don't specify the -l option. Useful if you are not connected to the 'net but do have a local index.db file.

- \-e

  Only print output on errors (when no bug by that id can be found, or when the bug does not belong to the same package as the changelog.)

- \-l

  Use LDAP to query the BTS before trying HTTP.

- \-p

  Before the list of bugs, print a space-separated list of binary and source packages that *changes-file* describes.  Note that bugs that belong to the pseudo-package **wnpp** are treated as belonging to the correct package, but "wnpp" is not printed here.

- *changes-file*

  A .changes file, or a changelog in Debian format.  A .changes file works better for multi-binary packages.  To read from STDIN, this option may be omitted or be \`-'.

## OUTPUT

Outputs lines of the following form:

*bug-number* *package* *bit*

where *bug-number* is a bug number, as used in the BTS, *package* is the package to which the bug belongs, or \`\[unknown-package\]' if the bug does not have a package.  *bit* is 1 if *package* is one of the packages which the changes file describes or is wnpp, or 0 otherwise.  If **yaclc** cannot look up the bug because it cannot access a server, *bit* will be set to 1 because it should only be 0 if the bug definitely belongs to a different package.  If, however, there is a Bug Tracking System Error, *bit* will be 0 because the Error is usually that the bug doesn't exist.  The Author thinks that this is the Right Thing, but is probably persuadable if you care enough to talk to him.

To parse this output, you might use something like this:

```
    @lines = <YACLC>;
    foreach (@lines) {
        m/^(\d+) (\S+) (0|1)$/;
        my ($bugid, $package, $is_proper) = ($1, $2, $3);
        # do processing here...
    }
```

## EXIT CODE

**yaclc** returns 1 if any bugs were found that belong to the wrong package or don't seem to exist, and 0 otherwise.  This is to facilitate use in scripts, something like this:

```
    yaclc -e ../foobar.changes || echo "Look at your changelog once more!"
```

which will print all the bad bugs, and "Look at your changelog..." if there are any bad ones.

## BUGS

Bugs should be reported using the Debian bug-tracking system, available at **http://bugs.debian.org/**.

## SEE ALSO

dpkg-parsechangelog

## AUTHOR AND COPYRIGHT

This program is Copyright 2001 by Thomas Smith \<chihuahua@tmbg.org\>.  It is free software.  You may distribute it under the terms of the GNU Lesser GPL, any version.
