This is an automated email from the git hooks/post-receive script. guillem pushed a commit to branch master in repository dpkg.
commit 79f7e1533187cabe9bf6c00777a101bfe48d0971 Author: Guillem Jover <[email protected]> Date: Sat Jul 15 01:59:41 2017 +0200 Dpkg::Vendor: Only load Dpkg::BuildOptions and Dpkg::Arch if needed The Dpkg::Vendor-specific modules are loaded as part of many other modules load-chains. But not all parts of these modules are used, as they are hook-specific. Switch these two modules to be required only when we are going over the specific code paths needing them. --- debian/changelog | 3 +++ scripts/Dpkg/Vendor/Debian.pm | 11 +++++++---- scripts/Dpkg/Vendor/Ubuntu.pm | 10 +++++++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index e4da204..7e26637 100644 --- a/debian/changelog +++ b/debian/changelog @@ -27,6 +27,9 @@ dpkg (1.19.0) UNRELEASED; urgency=medium - Remove unused Dpkg::Path from Dpkg::Vendor::Ubuntu. - Only load POSIX from Dpkg::Compression::FileHandle if we are going to use signal definitions, reducing the load time of many other modules. + - Only load Dpkg::BuildOptions and Dpkg::Arch from Dpkg::Vendor-specific + modules if we are going to use them, reducing the load time of many + other modules. * Documentation: - Document currently accepted syntax for changelogs in deb-changelog(5). Closes: #858579 diff --git a/scripts/Dpkg/Vendor/Debian.pm b/scripts/Dpkg/Vendor/Debian.pm index 29d4772..7f22dc7 100644 --- a/scripts/Dpkg/Vendor/Debian.pm +++ b/scripts/Dpkg/Vendor/Debian.pm @@ -29,8 +29,6 @@ use Dpkg; use Dpkg::Gettext; use Dpkg::ErrorHandling; use Dpkg::Control::Types; -use Dpkg::BuildOptions; -use Dpkg::Arch qw(get_host_arch debarch_to_debtuple); use parent qw(Dpkg::Vendor::Default); @@ -94,6 +92,8 @@ sub run_hook { sub _parse_feature_area { my ($self, $area, $use_feature) = @_; + require Dpkg::BuildOptions; + # Adjust features based on user or maintainer's desires. my $opts = Dpkg::BuildOptions->new(envvar => 'DEB_BUILD_OPTIONS'); $opts->parse_features($area, $use_feature); @@ -248,8 +248,11 @@ sub _add_sanitize_flags { sub _add_hardening_flags { my ($self, $flags) = @_; - my $arch = get_host_arch(); - my ($abi, $libc, $os, $cpu) = debarch_to_debtuple($arch); + + require Dpkg::Arch; + + my $arch = Dpkg::Arch::get_host_arch(); + my ($abi, $libc, $os, $cpu) = Dpkg::Arch::debarch_to_debtuple($arch); unless (defined $abi and defined $libc and defined $os and defined $cpu) { warning(g_("unknown host architecture '%s'"), $arch); diff --git a/scripts/Dpkg/Vendor/Ubuntu.pm b/scripts/Dpkg/Vendor/Ubuntu.pm index cf93bcc..eb2dffe 100644 --- a/scripts/Dpkg/Vendor/Ubuntu.pm +++ b/scripts/Dpkg/Vendor/Ubuntu.pm @@ -27,8 +27,6 @@ our $VERSION = '0.01'; use Dpkg::ErrorHandling; use Dpkg::Gettext; use Dpkg::Control::Types; -use Dpkg::BuildOptions; -use Dpkg::Arch qw(debarch_eq get_host_arch); use parent qw(Dpkg::Vendor::Debian); @@ -99,10 +97,16 @@ sub run_hook { } elsif ($hook eq 'update-buildflags') { my $flags = shift @params; + + require Dpkg::BuildOptions; + my $build_opts = Dpkg::BuildOptions->new(); if (!$build_opts->has('noopt')) { - if (debarch_eq(get_host_arch(), 'ppc64el')) { + require Dpkg::Arch; + + my $arch = Dpkg::Arch::get_host_arch(); + if (Dpkg::Arch::debarch_eq($arch, 'ppc64el')) { for my $flag (qw(CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS GCJFLAGS FFLAGS FCFLAGS)) { $flags->set($flag, '-g -O3', 'vendor'); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/dpkg/dpkg.git

