On Mon, 14 Oct 2024 19:40:19 -0500 Aaron Rainbolt <arraybo...@gmail.com> wrote:
> I'm currently banging my head against a proverbial wall trying to > figure out why there are some packages being incorrectly pulled into > an ISO I'm building. I assume all of the packages are being pulled in > for a similar reason, so right now I just want to focus on one > particular package. My live-build config is located > at https://github.com/ArrayBolt3/kicksecure-live-build. I am using my > own fork of live-build, however none of the code modifications I have > made or integrated from other sources seem likely to cause this > particular issue. > > Some notable parts of my config: > > * I'm using aptitude rather than apt for installing packages for > debugging purposes. > * I explicitly set '--apt-recommends false' in auto/config. > * I have a list of packages at > > https://github.com/ArrayBolt3/kicksecure-live-build/blob/master/config/apt/preferences > that I do NOT want to be installed on the live ISO. > > For some reason, when I build my ISO without the > config/apt/preferences file in place, a package called > jh7100-bootloader-recovery is installed. According to `apt-cache > show`, this is apparently something intended to help fix some > particular StarFive RISC-V SOC. I don't have any use for this > package, and did not put anything in my config that would result in > it being installed. If I `cd` into the root of the config tree and do > a `grep -Ri jh7100`, I see nothing except a mention of it in my > README (which is there because I was listing it as "I don't know how > this got installed, figure out how to remove it) and a mention of it > in config/apt/preferences, which is attempting to prevent it from > being installed. I similarly see no mention of it in my live-build > source tree. Running `apt-cache rdepends jh7100-bootloader-recovery` > shows me that this package has no reverse dependencies, recommends, > or suggests. Thus as far as I can tell, this should not be getting > installed. > > Looking at the build log, it looks like the package is being installed > explicitly for some reason, not that it's being pulled in by anything > in particular: > > put logs here Ahem. As you can probably tell, I meant to put some logs here, and then sent this email too early. Here are the logs I meant to put here: Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... Package live-tools is not installed, so it will not be removed Package live-boot is not installed, so it will not be removed Package live-tools is not installed, so it will not be removed Package live-boot is not installed, so it will not be removed The following NEW packages will be installed: jh7100-bootloader-recovery 0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 12.4 kB of archives. After unpacking 36.9 kB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian bookworm/main amd64 jh7100-bootloader-recovery all 0~2021.07.14~git2b268a1c-2 [12.4 kB] Fetched 12.4 kB in 0s (81.2 kB/s) Selecting previously unselected package jh7100-bootloader-recovery. (Reading database ... 58189 files and directories currently installed.) Preparing to unpack .../jh7100-bootloader-recovery_0~2021.07.14~git2b268a1c-2_all.deb ... Unpacking jh7100-bootloader-recovery (0~2021.07.14~git2b268a1c-2) ... Setting up jh7100-bootloader-recovery (0~2021.07.14~git2b268a1c-2) ... This is about 3690 lines down a 15913 line long log file from a successful ISO build. Apologies for any typos, I typed this across rather than copy-pasting. > In an attempt to prevent the package from being installed, I tried to > blacklist it with config/apt/preferences as documented at the end of > https://live-team.pages.debian.net/live-manual/html/live-manual/customizing-package-installation.en.html. > Not only did this fail to fix the problem, it actually made it worse. > Now the build fails entirely, with the following error shown at the > end of the log: > > Reading package lists... > Building dependency tree... > Reading state information... > Reading extended state information... > Initializing package states... > Writing extended state information... > Building tag database... > Unable to apply some actions, aborting > Package live-tools is not installed, so it will not be removed > Package live-boot is not installed, so it will not be removed > No candidate version found for jh7100-bootloader-recovery > xargs: aptitude: exited with status 255; aborting > E: An unexpected failure occurred, exiting... > P: Begin unmounting filesystems... > P: Saving caches... > Reading package lists... > Building dependency tree... > Reading state information... > > (The messages about live-tools and live-boot are benign and are a > result of me blacklisting them via a hacky patch to the live-build > code, which I intend on getting rid of and replacing with a proper > blacklisting mechanism.) > > At this point, I have two questions: > > * How in creation is this package getting pulled in, in the first > place? > * Failing that, or should it be infeasible to fix the root issue, how > do I blacklist the package to get it to go away? Nothing depends on > it, not in Debian's repos and not in any of the other repos I'm > pulling in, and I don't need it. > > This is not the only package being incorrectly pulled in - the rest of > the packages listed in the config/apt/preferences file are also ones > that I want rid of, and while some of them seem like they're probably > the result of the build system being "too helpful", at least two of > the others (ixo-usb-jtag and hdmi2usb-fx2-firmware) are similarly > unnecessary, unreferenced anywhere I can find, and aren't being pulled > in due to dependencies. Is there some file that live-build pulls in > over the network at build time that has a list of packages to install > that might be the culprit here?