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

guillem pushed a commit to branch main
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=c05f82972018d182fa296ef38384a1adddf5b6eb

The following commit(s) were added to refs/heads/main by this push:
     new c05f82972 scripts/mk: Fix pkg-info.mk evaluation by adding new 
DEB_TIMESTAMP variable
c05f82972 is described below

commit c05f82972018d182fa296ef38384a1adddf5b6eb (HEAD -> main)
Author: Guillem Jover <[email protected]>
AuthorDate: Wed Jul 24 22:21:43 2024 +0200

    scripts/mk: Fix pkg-info.mk evaluation by adding new DEB_TIMESTAMP variable
    
    Instead of handling the SOURCE_DATE_EPOCH conditional case from within
    the dpkg_parsechangelog_run variable, and then trying to lazily evaluate
    all other variables. Instead add a new DEB_TIMESTAMP variable that is
    set unconditionally from dpkg_parsechangelog_run, and then conditionally
    set SOURCE_DATE_EPOCH from it if not yet defined.
    
    Fixes: commit e146a68a375453db89bc3b5e816d9405e5fd5634
    Closes: #1076863
---
 scripts/mk/pkg-info.mk   | 21 ++++++++-------------
 scripts/t/mk/pkg-info.mk |  2 ++
 2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/scripts/mk/pkg-info.mk b/scripts/mk/pkg-info.mk
index ddda4f736..ac64fa5bd 100644
--- a/scripts/mk/pkg-info.mk
+++ b/scripts/mk/pkg-info.mk
@@ -8,6 +8,9 @@
 #   DEB_VERSION_UPSTREAM: package's upstream version.
 #   DEB_DISTRIBUTION: distribution(s) listed in the current debian/changelog
 #     entry.
+#   DEB_TIMESTAMP: source package relase date as seconds since the epoch as
+#     specified in the latest debian/changelog entry (since dpkg 1.22.9),
+#     although you are probably looking for SOURCE_DATE_EPOCH instead.
 #
 #   SOURCE_DATE_EPOCH: source release date as seconds since the epoch, as
 #     specified by <https://reproducible-builds.org/specs/source-date-epoch/>
@@ -26,20 +29,12 @@ dpkg_parsechangelog_run = $(eval $(shell 
dpkg-parsechangelog | sed -n '\
     $$(eval DEB_VERSION_EPOCH_UPSTREAM:=\1\2\4)\
     $$(eval DEB_VERSION_UPSTREAM_REVISION:=\2\3)\
     $$(eval DEB_VERSION_UPSTREAM:=\2\4)/p;\
-  s/^Timestamp: \(.*\)/$$(eval SOURCE_DATE_EPOCH?=\1)/p'))
+  s/^Timestamp: \(.*\)/$$(eval DEB_TIMESTAMP:=\1)/p'))
 
-ifdef SOURCE_DATE_EPOCH
-  dpkg_lazy_eval ?= $(eval $(1) = $(2)$$($(1)))
-  $(call dpkg_lazy_eval,DEB_DISTRIBUTION,$$(dpkg_parsechangelog_run))
-  $(call dpkg_lazy_eval,DEB_SOURCE,$$(dpkg_parsechangelog_run))
-  $(call dpkg_lazy_eval,DEB_VERSION,$$(dpkg_parsechangelog_run))
-  $(call dpkg_lazy_eval,DEB_VERSION_EPOCH_UPSTREAM,$$(dpkg_parsechangelog_run))
-  $(call dpkg_lazy_eval,DEB_VERSION_UPSTREAM,$$(dpkg_parsechangelog_run))
-  $(call dpkg_lazy_eval,DEB_UPSTREAM_REVISION,$$(dpkg_parsechangelog_run))
-else
-  # We need to compute the values right now.
-  $(dpkg_parsechangelog_run)
-endif
+# Compute all the values in one go.
+$(dpkg_parsechangelog_run)
+
+SOURCE_DATE_EPOCH ?= $(DEB_TIMESTAMP)
 export SOURCE_DATE_EPOCH
 
 endif # dpkg_pkg_info_mk_included
diff --git a/scripts/t/mk/pkg-info.mk b/scripts/t/mk/pkg-info.mk
index 6eb37866d..6863ebb80 100644
--- a/scripts/t/mk/pkg-info.mk
+++ b/scripts/t/mk/pkg-info.mk
@@ -6,6 +6,7 @@ TEST_DEB_VERSION_EPOCH_UPSTREAM = 1:2:3.4-5
 TEST_DEB_VERSION_UPSTREAM_REVISION = 2:3.4-5-6
 TEST_DEB_VERSION_UPSTREAM = 2:3.4-5
 TEST_DEB_DISTRIBUTION = suite
+TEST_DEB_TIMESTAMP = 1438697630
 
 test_vars := \
   DEB_SOURCE \
@@ -14,6 +15,7 @@ test_vars := \
   DEB_VERSION_UPSTREAM_REVISION \
   DEB_VERSION_UPSTREAM \
   DEB_DISTRIBUTION \
+  DEB_TIMESTAMP \
   SOURCE_DATE_EPOCH \
   # EOL
 

-- 
Dpkg.Org's dpkg

Reply via email to