summaryrefslogtreecommitdiffstats
path: root/dh_lintian
blob: f1579b122cc505d3a0b9b9d94eae4cd417689dff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/perl

=head1 NAME

dh_lintian - install lintian override files into package build directories

=cut

use strict;
use warnings;
use Debian::Debhelper::Dh_Lib;

our $VERSION = DH_BUILTIN_VERSION;

=head1 SYNOPSIS

B<dh_lintian> [S<I<debhelper options>>]

=head1 DESCRIPTION

B<dh_lintian> is a debhelper program that is responsible for installing
override files used by lintian into package build directories.

=head1 FILES

=over 4

=item debian/I<package>.lintian-overrides

Installed into usr/share/lintian/overrides/I<package> in the package
build directory. This file is used to suppress erroneous lintian
diagnostics.

=item F<debian/source/lintian-overrides>

These files are not installed, but will be scanned by lintian to provide
overrides for the source package.

=back

=cut

init();

# PROMISE: DH NOOP WITHOUT lintian-overrides cli-options()

foreach my $package (@{$dh{DOPACKAGES}}) {
	next if is_udeb($package);

	my $tmp=tmpdir($package);
	my $or_dir = "$tmp/usr/share/lintian/overrides";
	my $overrides = pkgfile(
		{
			'named'                              => 0,
			'support-architecture-restriction'   => 1,
		},
		$package,
		"lintian-overrides",
	);
	if (not compat(13) and package_multiarch($package) eq 'same') {
		my $no_arch_overrides = pkgfile(
			{
				'named'                              => 0,
				'support-architecture-restriction'   => 0,
			},
			$package,
			"lintian-overrides",
		);
		if ($no_arch_overrides ne $overrides) {
			my $msg = "Multi-Arch: same packages must have the same lintian-overrides. Please merge ${overrides}"
			 . " into ${no_arch_overrides} and use lintian's syntax for architecture specific overrides";
			error($msg);
		}
	}

	if ($overrides ne '') {
		install_dir($or_dir);
		install_dh_config_file($overrides, "$or_dir/$package");
	}
}

=head1 SEE ALSO

L<debhelper(1)>

This program is a part of debhelper.

L<lintian(1)>

=head1 AUTHOR

Steve Robbins <smr@debian.org>

=cut