Control: retitle -1 FTBFS when apt is configured with *.sources instead of *.list
Santiago Vila <sanvila@debian.org> (2025-10-05):
> That's a very good question :-). In fact, I made a mistake here: The
> full build log which I provided initially was wrong, as it was made
> using the unshare backend, and it's already known that this package
> needs network access.
>
> (You can tell that I'm using the unshare backend if you see
> "Distribution: sid-unshare" in the build log).
>
>
> But now I've tried again using the file backend (which allows network
> access) and I get the same error. I've put the right build log in the
> same directory as above, replacing the wrong one:
>
> https://people.debian.org/~sanvila/build-logs/202510/
>
> (and this time you will see "Distribution: sid-file", which means
> I was using the traditional file-based backend).
>
> So, yes, I believe there is a real problem here and it's not yet
> another case of "needs network access to build".
Thanks for arranging access, which lets me reproduce this there.
get-mirror.sh looks into `apt-config dump` to get some variables, then
digs into the “main” sources.list and the possible extra sources.d
snippets, based on the APT_DIR_ETC, APT_SOURCELIST, and APT_SOURCEPARTS
variables set according to the apt configuration.
On this specific system, we have a debian.sources snippet that contains:
Types: deb deb-src
URIs: http://deb.debian.org/debian
Suites: sid
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
and also a sbuild-build-depends-archive.list snippet that contains:
deb [trusted=yes] copy:///build/reproducible-path/resolver-sOG2tA/apt_archive ./
deb-src [trusted=yes] copy:///build/reproducible-path/resolver-sOG2tA/apt_archive ./
so we need to teach get-mirror.sh about .sources files.
At the very least, we should change this to avoid feeding .sources files
to something that expects .list ones:
-MIRRORS="$(get_mirrors /$APT_DIR_ETC/$APT_SOURCELIST /$APT_DIR_ETC/$APT_SOURCEPARTS/*)"
+MIRRORS="$(get_mirrors /$APT_DIR_ETC/$APT_SOURCELIST /$APT_DIR_ETC/$APT_SOURCEPARTS/*.list)"
Looking briefly at `apt-config dump` and sources.list(5), there doesn't
seem to be anything specific to .sources files in the configuration, so
using the three existing variables as they are should be fine enough,
except:
- one pass for the traditional format, main and snippets (*.list, see
above)
- one pass for the new format, snippets only (*.sources this time).
Thanks for the report (and again for the access), Santiago!
Feel free to scratch (my access to) the VM, commenting out an existing
sources.list and deploying a sources.list.d/santiago.sources (copied
from the first quoted section above) is enough to reproduce the problem.
Cheers,
--
Cyril Brulebois (kibi@debian.org) <https://debamax.com/>
D-I release manager -- Release team member -- Freelance Consultant
Attachment:
signature.asc
Description: PGP signature