[dpkg] 123/192: Dpkg::Control::FieldsCore: Do not execute code at import time

Ximin Luo infinity0 at debian.org
Tue Oct 17 11:04:09 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch pu/reproducible_builds
in repository dpkg.

commit f0fa8190fe02bb9db8168ae6a67f592f135b06c2
Author: Guillem Jover <guillem at debian.org>
Date:   Sat Jul 15 15:07:53 2017 +0200

    Dpkg::Control::FieldsCore: Do not execute code at import time
---
 debian/changelog                   |  1 +
 scripts/Dpkg/Control/FieldsCore.pm | 32 +++++++++++++++++++++-----------
 2 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index b52fa07..b61851f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -53,6 +53,7 @@ dpkg (1.19.0) UNRELEASED; urgency=medium
     - Switch to use lowercase field names for all internal field name
       handling in Dpkg::Control::FieldsCore, giving a significant speed up.
     - Remove dependency on Dpkg::Checksums from Dpkg::Control::FieldsCore.
+    - Do not execute code when importing Dpkg::Control::FieldsCore.
   * Documentation:
     - Document currently accepted syntax for changelogs in deb-changelog(5).
       Closes: #858579
diff --git a/scripts/Dpkg/Control/FieldsCore.pm b/scripts/Dpkg/Control/FieldsCore.pm
index 937ef60..f5c38d6 100644
--- a/scripts/Dpkg/Control/FieldsCore.pm
+++ b/scripts/Dpkg/Control/FieldsCore.pm
@@ -584,6 +584,10 @@ our %FIELDS = (
     },
 );
 
+my @src_dep_fields = qw(build-depends build-depends-arch build-depends-indep
+    build-conflicts build-conflicts-arch build-conflicts-indep);
+my @bin_dep_fields = qw(pre-depends depends recommends suggests enhances
+    conflicts breaks replaces provides built-using);
 my @src_checksums_fields = qw(checksums-md5 checksums-sha1 checksums-sha256);
 my @bin_checksums_fields = qw(md5sum sha1 sha256);
 
@@ -592,16 +596,31 @@ our %FIELD_ORDER = (
         qw(package package-type source version built-using kernel-version
         built-for-profiles auto-built-package architecture subarchitecture
         installer-menu-item build-essential essential origin bugs
-        maintainer installed-size), map { lc } &field_list_pkg_dep(),
+        maintainer installed-size), @bin_dep_fields,
+        qw(section priority multi-arch homepage description tag task)
+    ],
+    CTRL_INDEX_PKG() => [
+        qw(package package-type source version built-using kernel-version
+        built-for-profiles auto-built-package architecture subarchitecture
+        installer-menu-item build-essential essential origin bugs
+        maintainer installed-size), @bin_dep_fields,
+        qw(filename size), @bin_checksums_fields,
         qw(section priority multi-arch homepage description tag task)
     ],
     CTRL_PKG_SRC() => [
         qw(format source binary architecture version origin maintainer
         uploaders homepage standards-version vcs-browser
         vcs-arch vcs-bzr vcs-cvs vcs-darcs vcs-git vcs-hg vcs-mtn
-        vcs-svn testsuite testsuite-triggers), map { lc } &field_list_src_dep(),
+        vcs-svn testsuite testsuite-triggers), @src_dep_fields,
         qw(package-list), @src_checksums_fields, qw(files)
     ],
+    CTRL_INDEX_SRC() => [
+        qw(format package binary architecture version priority section
+        origin maintainer uploaders homepage standards-version vcs-browser
+        vcs-arch vcs-bzr vcs-cvs vcs-darcs vcs-git vcs-hg vcs-mtn vcs-svn
+        testsuite testsuite-triggers), @src_dep_fields,
+        qw(package-list directory), @src_checksums_fields, qw(files)
+    ],
     CTRL_FILE_BUILDINFO() => [
         qw(format source binary architecture version binary-only-changes),
         @src_checksums_fields,
@@ -644,15 +663,6 @@ our %FIELD_ORDER = (
         qw(license comment)
     ],
 );
-# Order for CTRL_INDEX_PKG is derived from CTRL_PKG_DEB
-$FIELD_ORDER{CTRL_INDEX_PKG()} = [ @{$FIELD_ORDER{CTRL_PKG_DEB()}} ];
-&field_insert_before(CTRL_INDEX_PKG, 'section', 'filename', 'size', @bin_checksums_fields);
-# Order for CTRL_INDEX_SRC is derived from CTRL_PKG_SRC
-$FIELD_ORDER{CTRL_INDEX_SRC()} = [ @{$FIELD_ORDER{CTRL_PKG_SRC()}} ];
-@{$FIELD_ORDER{CTRL_INDEX_SRC()}} = map { $_ eq 'source' ? 'package' : $_ }
-                                  @{$FIELD_ORDER{CTRL_PKG_SRC()}};
-&field_insert_after(CTRL_INDEX_SRC, 'version', 'priority', 'section');
-&field_insert_before(CTRL_INDEX_SRC, 'checksums-md5', 'directory');
 
 =encoding utf8
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dpkg.git



More information about the Reproducible-commits mailing list