Hi! On Thu, 2022-02-10 at 21:53:59 +0100, Nicolas Boulenguez wrote: > Package: dpkg-dev > Followup-For: Bug #872381
> The --in-place sed option ([1]) may simplify scripts/mk/Makefile.am > much more than the do_make_subst variable provided by > build-aux/subst.am does. It is for now the only Makefile using > do_make_subst. I'm aware of -i, the problem is that this is unfortunately not portable, see the comment f.ex. in scripts/Makefile.am, should perhaps add a similar one in the new subst.am. Will also probably fix the few instances in the test suites. > If you select this option, I suggest to rename > scripts/mk/{default,buildtools}.mk to scripts/mk/*.mk.sed or similar > (for example, .sed.mk in order to keep syntax highlighting). Distinct > source and object files would also simplify scripts/mk/Makefile a lot. Yeah, that would be more convenient, the problem is that these files need to have specific pathnames during tests, which are different from the ones at run-time. Those could be set from the environment, but that would miss the case where the variable is completely missing from the file. :) > More generally, I would really appreciate the opinion of a dpkg > maintainer about the changes suggested in > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872381. Rebasing > and testing them again and again is an ungrateful work. Even "these > changes seem interesting but require a careful review that we cannot > afford now" would be more motivating than no answer at all. Right, sorry, I keep seeing the mails, and concoct the replies in my head, and either then think I've already replied or miss doing that entirely. :/ The main issue I see is that this trades performance depending on the mode of operation. Some of these variables are (currently) not expected to be set by the driver calling debian/rules (in Debian we still have to support that being any thing :/), but then most of our tools do go through dpkg-buildpackage. So the various «.mk» cannot expect these variables to be previously set, but should assume that the common case is them being executed through dpkg-buildpackage, and that one setting some of those, which means unconditionally setting some of them will make the package builds somewhat slower. The other variables should then not be set if not used, as that would slow down packages that do not need them. Ideally, most of this would not be needed at all, because we could rely on dpkg-buildpackage having exported all of these, which it already needs to compute in most cases anyway, but this is something we cannot have in Debian for now. I'm pondering adding a mode, not to be used by Debian, which could be used by local packages or other distros though. In any case, thanks for the work here, and sorry for the repeated rebasing. I'll go over these in the coming days. Thanks, Guillem