/usr/bin/dh_bugfiles is in debhelper 9.20160115ubuntu3.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | #!/usr/bin/perl
=head1 NAME
dh_bugfiles - install bug reporting customization files into package build directories
=cut
use strict;
use warnings;
use Debian::Debhelper::Dh_Lib;
=head1 SYNOPSIS
B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]
=head1 DESCRIPTION
B<dh_bugfiles> is a debhelper program that is responsible for installing
bug reporting customization files (bug scripts and/or bug control files
and/or presubj files) into package build directories.
=head1 FILES
=over 4
=item debian/I<package>.bug-script
This is the script to be run by the bug reporting program for generating a bug
report template. This file is installed as F<usr/share/bug/package> in the
package build directory if no other types of bug reporting customization
files are going to be installed for the package in question. Otherwise,
this file is installed as F<usr/share/bug/package/script>. Finally, the
installed script is given execute permissions.
=item debian/I<package>.bug-control
It is the bug control file containing some directions for the bug reporting
tool. This file is installed as F<usr/share/bug/package/control> in the
package build directory.
=item debian/I<package>.bug-presubj
The contents of this file are displayed to the user by the bug reporting
tool before allowing the user to write a bug report on the package to the
Debian Bug Tracking System. This file is installed as
F<usr/share/bug/package/presubj> in the package build directory.
=back
=head1 OPTIONS
=over 4
=item B<-A>, B<--all>
Install F<debian/bug-*> files to ALL packages acted on when respective
F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will
be installed to the first package only.
=back
=cut
init();
# Types of bug files this debhelper program handles.
# Hash value is the name of the pkgfile of the respective
# type.
my %bugfile_types = (
"script" => "bug-script",
"control" => "bug-control",
"presubj" => "bug-presubj",
);
# PROMISE: DH NOOP WITHOUT bug-script bug-control bug-presubj
foreach my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
my $tmp=tmpdir($package);
my $p_dir="${tmp}/usr/share/bug";
my $dir="${p_dir}/$package";
# Gather information which bug files are available for the
# package in question
my %bugfiles=();
while (my ($type, $pkgfilename) = each(%bugfile_types)) {
my $file=pkgfile($package,$pkgfilename);
if ($file) {
$bugfiles{$type}=$file;
}
elsif (-f "debian/$pkgfilename" && $dh{PARAMS_ALL}) {
$bugfiles{$type}="debian/$pkgfilename";
}
}
# If there is only a bug script to install, install it as
# usr/share/bug/$package (unless this path is a directory)
if (! -d $dir && scalar(keys(%bugfiles)) == 1 && exists $bugfiles{script}) {
install_dir($p_dir);
install_prog($bugfiles{script}, $dir);
}
elsif (scalar(keys(%bugfiles)) > 0) {
if (-f $dir) {
# Move usr/share/bug/$package to usr/share/bug/$package/script
doit("mv", $dir, "${dir}.tmp");
install_dir($dir);
doit("mv", "${dir}.tmp", "$dir/script");
}
elsif (! -d $dir) {
install_dir($dir);
}
while (my ($type, $srcfile) = each(%bugfiles)) {
if ($type eq 'script') {
install_prog($srcfile, "$dir/$type");
} else {
install_file($srcfile, "$dir/$type");
}
}
}
# Ensure that the bug script is executable
if (-f $dir) {
chmod 0755, $dir;
}
elsif (-f "$dir/script") {
chmod 0755, "$dir/script";
}
}
=head1 SEE ALSO
F</usr/share/doc/reportbug/README.developers.gz>
L<debhelper(1)>
This program is a part of debhelper.
=head1 AUTHOR
Modestas Vainius <modestas@vainius.eu>
=cut
# Local Variables:
# indent-tabs-mode: t
# tab-width: 4
# cperl-indent-level: 4
# End:
# Local Variables:
# indent-tabs-mode: t
# tab-width: 4
# cperl-indent-level: 4
# End:
|