- Package:
- src:debian-installer
- Source:
- src:debian-installer
- Submitter:
- Roland Clobus
- Date:
- 2025-08-30 10:53:01 UTC
- Severity:
- normal
- Tags:
Hello Debian-installer team, Recently the dependency tree of the packages that are required for building the Debian Installer (using mk-build-deps) has changed, now fakeroot is no longer installed per default in chroot environments. However, the 'daily-build' script still has the default value for 'ROOTCMD' as 'fakeroot'. This issue was seen on Jenkins, where the installer is rebuilt from git for the sid images (as part of the live image build) [1] I've built 2 variants of the bookworm image, one with additionally installing fakeroot in my chroot environment and one with 'ROOTCMD=" "'. Both are identical, so fakeroot is indeed not required for a proper build. Can the default value for ROOTCMD be changed to an empty value (and the corresponding check be removed)? [3] With kind regards, Roland Clobus --- [1] https://jenkins.debian.net/view/live/job/reproducible_debian_live_build_standard_sid/671/console P: building the debian-installer ./daily-build: line 117: fakeroot: command not found E: An unexpected failure occurred, exiting... [2] /home/roland/git.nobackup/live-build/test/rebuild.sh --configuration standard --debian-version bookworm --timestamp archive --installer-origin git [3] https://sources.debian.org/src/debian- installer/20230607%2Bdeb12u4/build/daily-build/#L52
Hi Roland, I have opened a MR to make fakeroot a requirement: https://salsa.debian.org/installer-team/debian-installer/-/merge_requests/68 This is needed for reproducible builds as the buildinfo file otherwise does not list fakeroot. See the MR for more explanation. Hope that works for you. I have also send a script to do the daily builds in sbuild+unshare to rt.debian.org #9664. Cheers Jochen * Roland Clobus <rclobus@rclobus.nl> [2023-12-19 07:55]:
Hi, Jochen Sprickerhof <jspricke@debian.org> (2025-08-29): Those happened earlier: - d495f01afe467d054f6fd93dffc8cc22d00d106d - 5f8888f0dfa11fdd577aee209a935161aa3663ff I'm happy to have a comment around the fakeroot package in Build-Depends but let's avoid duplicates? :-) Cheers,
Hello, I'm wondering whether the fakeroot package is actually required. As I wrote in the initial text, I did not need to have fakeroot available, and could prevent calls to fakeroot by setting the environment variable ROOTCMD to a space (as an empty value would still set it to 'fakeroot'). As I understand it, invoking 'chroot' requires being root (it is in /usr/sbin), so within the chroot-environment one is already root and therefore does not need fakeroot on top. But there might be some scenarios, that I'm unaware of, that invoke the scripts of the installer differently and therefore the package fakeroot is indeed a requirement. I'm also wondering whether !68 is still required, given that fakeroot has been added as a dependency about 2 weeks ago. Is the MR based on work that started earlier? With kind regards, Roland
Roland Clobus <rclobus@rclobus.nl> (2025-08-29): I'll let Jochen comment on that, who's apparently more familiar with those things than I am. Speaking of which, the initial R³ addition (which is modified by !68) happened by applying a suggestion from Niels. If you look at timestamps, you'll see there are just a few hours between my commits and Jochen's, so presumably some work was being staged. Cheers,
Hi Cyril, thanks a lot for the speedy reply! * Cyril Brulebois <kibi@debian.org> [2025-08-29 10:57]: Ha, missed that one while rebasing my commit :). Oh, thanks for cleaning up after my change :). Agreed and updated the MR. * Cyril Brulebois <kibi@debian.org> [2025-08-29 11:31]: build/Makefile used mknod which needs (real) root or fakeroot (that tracks the faked device files). So when Niels tested setting R³ src:debian-installer did not depend on fakeroot and the package FTBFSed. The simple solution was to set R³ to binary-targets so dpkg-buildpackage runs with fakeroot. But actually only build/Makefile needs it so we can drop the binary-targets again. I recommend using my patch from the RT ticket to not run the daily builds with real root, btw. Yes it is required as currently R³ being binary-targets triggers a special setup in debrebuild to work around the missing fakeroot in the buildinfo files. That setup makes build/Makefile not execute fakeroot and the mknod and build fails. It is also no longer needed to set R³ as the build works without \o/. Cheers Jochen
* Jochen Sprickerhof <jspricke@debian.org> [2025-08-29 12:16]: I read #1091668 now and added --owner root:0 --group root:0 to tar, as Niels suggested. I have also adopted a patch from !38 make the mtimes in the mini.iso reproducible. The only difference are now in the mini.iso files, though diffoscope says the file content is the same. Happy to get any pointers there but would be great to get !68 merged already. Cheers Jochen