Package: dpkg-dev Followup-For: Bug #872381 Hello. It is good to see the main suggestion merged. Thanks!
You have not applied 0001-scripts-mk-stop-hard-coding-dpkg_datadir.patch probably because you prefer the related parts in f1175056 (build: Rework subst handling for built or installed artifacts). Ironically, f1175056 seems to introduce the exact kind of human error that dynamic generation would prevent. 0001-build-spare-an-unneeded-subst-handling-in-pkg-info.m.patch
>From 36e98fdd10b1896f8fa89733b5e0c1781c0cce4c Mon Sep 17 00:00:00 2001 From: Nicolas Boulenguez <nico...@debian.org> Date: Mon, 6 May 2024 10:52:49 +0200 Subject: [PATCH] build: spare an unneeded subst handling in pkg-info.mk This commits follows f1175056. --- scripts/mk/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/mk/Makefile.am b/scripts/mk/Makefile.am index be6076b2c..5f086ef49 100644 --- a/scripts/mk/Makefile.am +++ b/scripts/mk/Makefile.am @@ -18,5 +18,4 @@ include $(top_srcdir)/build-aux/subst.am install-data-hook: $(subst_make_file) $(DESTDIR)$(pkgdatadir)/default.mk $(subst_make_file) $(DESTDIR)$(pkgdatadir)/buildtools.mk - $(subst_make_file) $(DESTDIR)$(pkgdatadir)/pkg-info.mk $(subst_make_file) $(DESTDIR)$(pkgdatadir)/vendor.mk -- 2.39.2
>From 7daa3aca068d997c6895757cb58ba91d66bd6842 Mon Sep 17 00:00:00 2001 From: Nicolas Boulenguez <nico...@debian.org> Date: Mon, 6 May 2024 11:37:14 +0200 Subject: [PATCH] scripts/mk: stop hard-coding dpkg_datadir This path differ during tests and after installation. Instead of rewriting the file with a hardcoded path, compute it within Make. --- build-aux/subst.am | 8 -------- scripts/mk/Makefile.am | 10 ---------- scripts/mk/buildtools.mk | 4 +++- scripts/mk/default.mk | 2 +- scripts/mk/vendor.mk | 4 +++- 5 files changed, 7 insertions(+), 21 deletions(-) diff --git a/build-aux/subst.am b/build-aux/subst.am index 7785e4af7..9c96e5ce0 100644 --- a/build-aux/subst.am +++ b/build-aux/subst.am @@ -45,11 +45,3 @@ SUFFIXES += .pl @test -d `dirname $@` || $(MKDIR_P) `dirname $@` $(AM_V_GEN) $(subst_perl_filter) <$< >$@ $(AM_V_at) chmod +x $@ - -# Makefile support. - -subst_make_rules = "\ - s{dpkg_datadir\s*=\s*[^\s]*}{dpkg_datadir = $(pkgdatadir)}; \ - " - -subst_make_file = $(PERL) -i -p -e $(subst_make_rules) diff --git a/scripts/mk/Makefile.am b/scripts/mk/Makefile.am index be6076b2c..6e85e17b9 100644 --- a/scripts/mk/Makefile.am +++ b/scripts/mk/Makefile.am @@ -10,13 +10,3 @@ dist_pkgdata_DATA = \ pkg-info.mk \ vendor.mk \ # EOL - -SUFFIXES = - -include $(top_srcdir)/build-aux/subst.am - -install-data-hook: - $(subst_make_file) $(DESTDIR)$(pkgdatadir)/default.mk - $(subst_make_file) $(DESTDIR)$(pkgdatadir)/buildtools.mk - $(subst_make_file) $(DESTDIR)$(pkgdatadir)/pkg-info.mk - $(subst_make_file) $(DESTDIR)$(pkgdatadir)/vendor.mk diff --git a/scripts/mk/buildtools.mk b/scripts/mk/buildtools.mk index 6ce9642cd..e93319e00 100644 --- a/scripts/mk/buildtools.mk +++ b/scripts/mk/buildtools.mk @@ -28,7 +28,9 @@ ifndef dpkg_buildtools_mk_included dpkg_buildtools_mk_included = yes -dpkg_datadir = $(srcdir)/mk +ifndef dpkg_datadir + dpkg_datadir := $(patsubst %/buildtools.mk,%,$(lastword $(MAKEFILE_LIST))) +endif include $(dpkg_datadir)/architecture.mk # We set the TOOL_FOR_BUILD variables to the specified value, and the TOOL diff --git a/scripts/mk/default.mk b/scripts/mk/default.mk index c4e408b01..e1b812222 100644 --- a/scripts/mk/default.mk +++ b/scripts/mk/default.mk @@ -4,7 +4,7 @@ ifndef dpkg_default_mk_included dpkg_default_mk_included = yes -dpkg_datadir = $(srcdir)/mk +dpkg_datadir := $(patsubst %/default.mk,%,$(lastword $(MAKEFILE_LIST))) include $(dpkg_datadir)/architecture.mk include $(dpkg_datadir)/buildapi.mk ifeq ($(call dpkg_build_api_ge,1),yes) diff --git a/scripts/mk/vendor.mk b/scripts/mk/vendor.mk index 746503a33..3cd1eed3e 100644 --- a/scripts/mk/vendor.mk +++ b/scripts/mk/vendor.mk @@ -36,7 +36,9 @@ ifndef dpkg_vendor_mk_included dpkg_vendor_mk_included = yes -dpkg_datadir = $(srcdir)/mk +ifndef dpkg_datadir + dpkg_datadir := $(patsubst %/vendor.mk,%,$(lastword $(MAKEFILE_LIST))) +endif include $(dpkg_datadir)/buildapi.mk dpkg_lazy_eval ?= $(eval $(1) = $(2)$$($(1))) -- 2.39.2