use IO::Scalar;
use IO::File;
+# if we're running out of git, we want to use the git base directory as the
+# first INC directory. If you're not running out of git, don't do that.
+use File::Basename qw(dirname);
+use Cwd qw(abs_path);
+our $debbugs_dir;
+BEGIN {
+ $debbugs_dir =
+ abs_path(dirname(abs_path(__FILE__)) . '/../');
+ # clear the taint; we'll assume that the absolute path to __FILE__ is the
+ # right path if there's a .git directory there
+ ($debbugs_dir) = $debbugs_dir =~ /([[:print:]]+)/;
+ if (defined $debbugs_dir and
+ -d $debbugs_dir . '/.git/') {
+ } else {
+ undef $debbugs_dir;
+ }
+ # if the first directory in @INC is not an absolute directory, assume that
+ # someone has overridden us via -I.
+ if ($INC[0] !~ /^\//) {
+ }
+}
+use if defined $debbugs_dir, lib => $debbugs_dir;
+
use Debbugs::Config qw(:globals :text :config);
# for read_log_records
foreach my $pkg (make_list($status{$p_a})) {
if ($pkg =~ /^src\:/) {
my ($srcpkg) = $pkg =~ /^src:(.*)/;
+ my @maint = package_maintainer(source => $srcpkg,
+ @schema_arg,
+ );
$packages_affects{$p_a}{$pkg} =
- {maintainer => exists($maintainer{$srcpkg}) ? $maintainer{$srcpkg} : '(unknown)',
+ {maintainer => @maint?\@maint : ['(unknown)'],
source => $srcpkg,
package => $pkg,
is_source => 1,
};
}
else {
+ my @maint = package_maintainer(binary => $pkg,
+ @schema_arg,
+ );
+ my $source =
+ binary_to_source(binary => $pkg,
+ source_only => 1,
+ scalar_only => 1,
+ @schema_arg,
+ );
$packages_affects{$p_a}{$pkg} =
- {maintainer => exists($maintainer{$pkg}) ? $maintainer{$pkg} : '(unknown)',
- exists($pkgsrc{$pkg}) ? (source => $pkgsrc{$pkg}) : (),
+ {maintainer => @maint?\@maint : '(unknown)',
+ length($source)?(source => $source):(),
package => $pkg,
};
}