From 775d1ca63964312b7f519edfe0cce476669617f6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 21 Sep 2013 13:16:34 -0400 Subject: debhelper (9.20130921) unstable; urgency=low * dh: Call dh_installxfonts after dh_link, so that it will notice fonts installed via symlinks. Closes: #721264 * Fix FTBFS with perl 5.18. Closes: #722501 * dh_installchangelogs: Add changelog.md to the list of common changelog filenames. # imported from the archive --- dh_bugfiles | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100755 dh_bugfiles (limited to 'dh_bugfiles') diff --git a/dh_bugfiles b/dh_bugfiles new file mode 100755 index 00000000..83428f51 --- /dev/null +++ b/dh_bugfiles @@ -0,0 +1,136 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_bugfiles - install bug reporting customization files into package build directories + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [B<-A>] [S>] + +=head1 DESCRIPTION + +B 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.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 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. Finally, the +installed script is given execute permissions. + +=item debian/I.bug-control + +It is the bug control file containing some directions for the bug reporting +tool. This file is installed as F in the +package build directory. + +=item debian/I.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 in the package build directory. + +=back + +=head1 OPTIONS + +=over 4 + +=item B<-A>, B<--all> + +Install F files to ALL packages acted on when respective +F files do not exist. Normally, F 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 $dir="$tmp/usr/share/bug/$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}) { + doit("install","-D","-p","-m755",$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"); + doit("install","-d",$dir); + doit("mv", "${dir}.tmp", "$dir/script"); + } + elsif (! -d $dir) { + doit("install","-d",$dir); + } + while (my ($type, $srcfile) = each(%bugfiles)) { + doit("install","-p","-m644",$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 + +L + +This program is a part of debhelper. + +=head1 AUTHOR + +Modestas Vainius + +=cut -- cgit v1.2.3