<div dir="ltr"><div>After some discussion and further testing we have ascertained that the fixperms phase is already being handled by `dh_fixperms` so that patch is not required.  With that dropped:</div><div><br></div><div>Acked-by: Andy Whitcroft: <<a href="mailto:apw@canonical.com">apw@canonical.com</a>></div><div><br></div><div>-apw<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 3 Jun 2021 at 14:05, Seth Forshee <<a href="mailto:seth.forshee@canonical.com">seth.forshee@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">BugLink: <a href="https://bugs.launchpad.net/bugs/1930713" rel="noreferrer" target="_blank">https://bugs.launchpad.net/bugs/1930713</a><br>
<br>
[Impact]<br>
<br>
Our kernel builds are sometimes running out of space on the builders when we<br>
are building multiple flavours. We've seen this with focal:linux-hwe for amd64<br>
and impish:linux-unstable for arm64. This is in part because package builds are<br>
broken up into a build phase (which builds the source tree) and a binary phase<br>
(which creates the debs). These are run separately, with the binary phase run<br>
under fakeroot to get correct ownership for files in the package archives,<br>
requiring builds for multiple flavours to be present on disk at the same time.<br>
<br>
We have implemented various fixes for this problem over time, and explored many<br>
others which have not worked out. But the size of the kernel keeps increasing,<br>
and now it seems our only remaining option is to build one flavour and install<br>
its files, then remove the flavour build files before building the next<br>
flavour. This means that files are installed for later package builds during<br>
the build phase, requiring that ownership of these files be fixed up during the<br>
binary phase to get correct ownership in the package archives.<br>
<br>
[Test Plan]<br>
<br>
Build a full set of kernel packages (inlcuding linux-source and dbgsym<br>
packages, which are generally excluded when not building on builders) at a<br>
given tag, then build another set from the same tag with the packaging changes<br>
applied. Compare the resulting debs to confirm that the set of produced<br>
packages is the same, the file lists within the packages are the same, and that<br>
file ownership and permissions between the packages is identical.<br>
<br>
I have done this testing with the proposed patches with a recent linux-unstable<br>
tag and found no differences with and without the changes.<br>
<br>
[Where problems could occur]<br>
<br>
Incorrect ownership of files in the package archives is the main concern. I<br>
have tested for this, but it is possible that future upstream changes could<br>
unexpectedly result in files with incorrect ownership.<br>
<br>
Reordering of the package build sequence could result in missing files which<br>
should be in packages, or files present in packages which should be excluded.<br>
Some instances of this occurred while developing these changes and have been<br>
fixed. Future updates to upstream or to the packaging could cause additional<br>
issues.<br>
<br>
Thanks,<br>
Seth<br>
<br>
---<br>
<br>
Seth Forshee (6):<br>
  UBUNTU: [Debian] use stamps for flavour install targets<br>
  UBUNTU: [Debian] run install-$(flavour) targets during build phase<br>
  UBUNTU: [Debian] remove dh_testroot from install targets<br>
  UBUNTU: [Debian] dkms-build -- use fakeroot if not running as root<br>
  UBUNTU: [Debian] exclude $(DEBIAN)/__abi.current from linux-source<br>
  UBUNTU: [Debian] fix ownership for files installed during build<br>
<br>
 debian/rules.d/<a href="http://2-binary-arch.mk" rel="noreferrer" target="_blank">2-binary-arch.mk</a>  | 88 ++++++++++++++++++++++----------<br>
 debian/rules.d/<a href="http://3-binary-indep.mk" rel="noreferrer" target="_blank">3-binary-indep.mk</a> | 18 ++++---<br>
 debian/rules.d/<a href="http://4-checks.mk" rel="noreferrer" target="_blank">4-checks.mk</a>       |  6 +--<br>
 debian/scripts/dkms-build        |  4 +-<br>
 4 files changed, 78 insertions(+), 38 deletions(-)<br>
<br>
-- <br>
kernel-team mailing list<br>
<a href="mailto:kernel-team@lists.ubuntu.com" target="_blank">kernel-team@lists.ubuntu.com</a><br>
<a href="https://lists.ubuntu.com/mailman/listinfo/kernel-team" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/kernel-team</a><br>
</blockquote></div>