Public bug reported: Setting the `--bootloader grub` argument, as per the [manpage](https://manpages.ubuntu.com/manpages/resolute/man1/lb_config.1.html#bootloader), makes the build process fail: ``` [2026-05-22 23:32:56] lb_binary_grub --verbose P: Begin installing grub... Reading package lists... Building dependency tree... Reading state information... Package grub-legacy is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32 grub-efi-amd64 E: Package 'grub-legacy' has no installation candidate P: Begin unmounting filesystems... P: Saving caches... Reading package lists... Building dependency tree... Reading state information... Error: Process completed with exit code 100. ```
It seems that even on Ubuntu 26.04 'Resolute Raccoon' as a build environment, the `live-build` package still assumes packages such as `grub-legacy`. Here are my system details: - Build Environment: Ubuntu 26.04 Docker container - Target ISO: Ubuntu 26.04 - Architecture (host and target): amd64 Here is my `lb config` command: ``` lb config \ --mode ubuntu \ --bootstrap debootstrap \ --bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \ --distribution resolute \ --parent-distribution resolute \ --architectures amd64 \ --archive-areas "main restricted universe multiverse" \ --parent-archive-areas "main restricted universe multiverse" \ --mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \ --mirror-binary http://archive.ubuntu.com/ubuntu/ \ --mirror-binary-security http://security.ubuntu.com/ubuntu/ \ --mirror-chroot http://archive.ubuntu.com/ubuntu/ \ --mirror-chroot-security http://security.ubuntu.com/ubuntu/ \ --bootloader grub \ --bootappend-live "boot=casper username=ubuntu quiet splash" \ --initramfs casper \ --binary-images iso-hybrid \ --iso-application "Utile OS Live" \ --iso-volume "Utile OS 26 amd64" \ --iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; [email protected]' \ --memtest none ``` For context, I disabled memtest because `live-build` was *also* looking for an outdated `.bin` suffix for the memtest image, which is no longer accurate. But that's a bug for another day. Considering this is a Docker container, I upgrade all packages and install the latest version of `live-build` on every run, so I'm sure of that. Note that upstream's [lb_config](https://manpages.debian.org/testing/live- build/lb_config.1.en.html) contains different arguments, with different pluralisations, and supports multiple bootloaders with the `--bootloaders` argument. I assume that Ubuntu's version already deals with multiple aspects like `--initramfs casper`, but it seems that downstream is outdated. Also note that there is no real solution, either: Leaving the default `syslinux` value also causes an error: ``` [2026-05-22 21:00:00] lb_binary_syslinux --verbose P: Begin installing syslinux... Reading package lists... Building dependency tree... Reading state information... Package gfxboot-theme-ubuntu is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Unable to locate package syslinux-themes-ubuntu-oneiric E: Package 'gfxboot-theme-ubuntu' has no installation candidate P: Begin unmounting filesystems... P: Saving caches... Reading package lists... Building dependency tree... Reading state information... Error: Process completed with exit code 100. ``` Oneiric was Ubuntu **11.10**, released in 2011! I am surprised by the scarce documentation and availability on how Ubuntu is actually made. I've read a ton of pages at https://documentation.ubuntu.com/ and https://help.ubuntu.com/ and have barely reached an understanding of how Ubuntu produces its ISOs (`germinate`, `live-build`, `livecd-rootfs`, and `debootstrap` are all mentioned in totally isolated contexts). Although I am doing this research to create a derivative, I'm still interested in Ubuntu as it's still my go-to distribution. The 'derivative' is just an educational project, so the benefit of Ubuntu itself is way more important to me. I've spent most of today experimenting with `live-build` to see if I can produce a basic Ubuntu ISO (no layered squashed filesystems, which was also a pain point to understand, but at least something functional). My code is available at https://github.com/Proman4713/Utile-OS (I previously used to extract and modify a base Ubuntu ISO; I am migrating to live-build). ** Affects: live-build (Ubuntu) Importance: Undecided Status: New ** Tags: fixed-upstream resolute ** Description changed: Setting the `--bootloader grub` argument, as per the [manpage](https://manpages.ubuntu.com/manpages/resolute/man1/lb_config.1.html#bootloader), makes the build process fail: ``` [2026-05-22 23:32:56] lb_binary_grub --verbose P: Begin installing grub... Reading package lists... Building dependency tree... Reading state information... Package grub-legacy is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: - grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32 - grub-efi-amd64 + grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32 + grub-efi-amd64 E: Package 'grub-legacy' has no installation candidate P: Begin unmounting filesystems... P: Saving caches... Reading package lists... Building dependency tree... Reading state information... Error: Process completed with exit code 100. ``` It seems that even on Ubuntu 26.04 'Resolute Raccoon' as a build environment, the `live-build` package still assumes packages such as `grub-legacy`. Here are my system details: - Build Environment: Ubuntu 26.04 Docker container - Target ISO: Ubuntu 26.04 - Architecture (host and target): amd64 Here is my `lb config` command: ``` lb config \ - --mode ubuntu \ - --bootstrap debootstrap \ - --bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \ - --distribution resolute \ - --parent-distribution resolute \ - --architectures amd64 \ - --archive-areas "main restricted universe multiverse" \ - --parent-archive-areas "main restricted universe multiverse" \ - --mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \ - --mirror-binary http://archive.ubuntu.com/ubuntu/ \ - --mirror-binary-security http://security.ubuntu.com/ubuntu/ \ - --mirror-chroot http://archive.ubuntu.com/ubuntu/ \ - --mirror-chroot-security http://security.ubuntu.com/ubuntu/ \ - --bootloader grub \ - --bootappend-live "boot=casper username=ubuntu quiet splash" \ - --initramfs casper \ - --binary-images iso-hybrid \ - --iso-application "Utile OS Live" \ - --iso-volume "Utile OS 26 amd64" \ - --iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; [email protected]' \ - --memtest none + --mode ubuntu \ + --bootstrap debootstrap \ + --bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \ + --distribution resolute \ + --parent-distribution resolute \ + --architectures amd64 \ + --archive-areas "main restricted universe multiverse" \ + --parent-archive-areas "main restricted universe multiverse" \ + --mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \ + --mirror-binary http://archive.ubuntu.com/ubuntu/ \ + --mirror-binary-security http://security.ubuntu.com/ubuntu/ \ + --mirror-chroot http://archive.ubuntu.com/ubuntu/ \ + --mirror-chroot-security http://security.ubuntu.com/ubuntu/ \ + --bootloader grub \ + --bootappend-live "boot=casper username=ubuntu quiet splash" \ + --initramfs casper \ + --binary-images iso-hybrid \ + --iso-application "Utile OS Live" \ + --iso-volume "Utile OS 26 amd64" \ + --iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; [email protected]' \ + --memtest none ``` For context, I disabled memtest because `live-build` was *also* looking for an outdated `.bin` suffix for the memtest image, which is no longer accurate. But that's a bug for another day. Considering this is a Docker container, I upgrade all packages and install the latest version of `live-build` on every run, so I'm sure of that. Note that upstream's [lb_config](https://manpages.debian.org/testing/live- build/lb_config.1.en.html) contains different arguments, with different pluralisations, and supports multiple bootloaders with the `--bootloaders` argument. I assume that Ubuntu's version already deals with multiple aspects like `--initramfs casper`, but it seems that downstream is outdated. I am surprised by the scarce documentation and availability on how Ubuntu is actually made. I've read a ton of pages at https://documentation.ubuntu.com/ and https://help.ubuntu.com/ and have barely reached an understanding of how Ubuntu produces its ISOs (`germinate`, `live-build`, `livecd-rootfs`, and `debootstrap` are all mentioned in totally isolated contexts). Although I am doing this research to create a derivative, I'm still interested in Ubuntu as it's - still my go-to distribution. + still my go-to distribution. The 'derivative' is just an educational + project, so the benefit of Ubuntu itself is way more important to me. I've spent most of today experimenting with `live-build` to see if I can produce a basic Ubuntu ISO (no layered squashed filesystems, which was also a pain point to understand, but at least something functional). My code is available at https://github.com/Proman4713/Utile-OS (I previously used to extract and modify a base Ubuntu ISO; I am migrating to live-build). ** Description changed: Setting the `--bootloader grub` argument, as per the [manpage](https://manpages.ubuntu.com/manpages/resolute/man1/lb_config.1.html#bootloader), makes the build process fail: ``` [2026-05-22 23:32:56] lb_binary_grub --verbose P: Begin installing grub... Reading package lists... Building dependency tree... Reading state information... Package grub-legacy is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32 grub-efi-amd64 E: Package 'grub-legacy' has no installation candidate P: Begin unmounting filesystems... P: Saving caches... Reading package lists... Building dependency tree... Reading state information... Error: Process completed with exit code 100. ``` It seems that even on Ubuntu 26.04 'Resolute Raccoon' as a build environment, the `live-build` package still assumes packages such as `grub-legacy`. Here are my system details: - Build Environment: Ubuntu 26.04 Docker container - Target ISO: Ubuntu 26.04 - Architecture (host and target): amd64 Here is my `lb config` command: ``` lb config \ --mode ubuntu \ --bootstrap debootstrap \ --bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \ --distribution resolute \ --parent-distribution resolute \ --architectures amd64 \ --archive-areas "main restricted universe multiverse" \ --parent-archive-areas "main restricted universe multiverse" \ --mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \ --mirror-binary http://archive.ubuntu.com/ubuntu/ \ --mirror-binary-security http://security.ubuntu.com/ubuntu/ \ --mirror-chroot http://archive.ubuntu.com/ubuntu/ \ --mirror-chroot-security http://security.ubuntu.com/ubuntu/ \ --bootloader grub \ --bootappend-live "boot=casper username=ubuntu quiet splash" \ --initramfs casper \ --binary-images iso-hybrid \ --iso-application "Utile OS Live" \ --iso-volume "Utile OS 26 amd64" \ --iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; [email protected]' \ --memtest none ``` For context, I disabled memtest because `live-build` was *also* looking for an outdated `.bin` suffix for the memtest image, which is no longer accurate. But that's a bug for another day. Considering this is a Docker container, I upgrade all packages and install the latest version of `live-build` on every run, so I'm sure of that. Note that upstream's [lb_config](https://manpages.debian.org/testing/live- build/lb_config.1.en.html) contains different arguments, with different pluralisations, and supports multiple bootloaders with the `--bootloaders` argument. I assume that Ubuntu's version already deals with multiple aspects like `--initramfs casper`, but it seems that downstream is outdated. + Also note that there is no real solution, either: Leaving the default `syslinux` value also causes an error: + ``` + [2026-05-22 21:00:00] lb_binary_syslinux --verbose + P: Begin installing syslinux... + Reading package lists... + Building dependency tree... + Reading state information... + Package gfxboot-theme-ubuntu is not available, but is referred to by another package. + This may mean that the package is missing, has been obsoleted, or + is only available from another source + E: Unable to locate package syslinux-themes-ubuntu-oneiric + E: Package 'gfxboot-theme-ubuntu' has no installation candidate + P: Begin unmounting filesystems... + P: Saving caches... + Reading package lists... + Building dependency tree... + Reading state information... + Error: Process completed with exit code 100. + ``` + Oneiric was Ubuntu **11.10**, released in 2011! + I am surprised by the scarce documentation and availability on how Ubuntu is actually made. I've read a ton of pages at https://documentation.ubuntu.com/ and https://help.ubuntu.com/ and have barely reached an understanding of how Ubuntu produces its ISOs (`germinate`, `live-build`, `livecd-rootfs`, and `debootstrap` are all mentioned in totally isolated contexts). Although I am doing this research to create a derivative, I'm still interested in Ubuntu as it's still my go-to distribution. The 'derivative' is just an educational project, so the benefit of Ubuntu itself is way more important to me. I've spent most of today experimenting with `live-build` to see if I can produce a basic Ubuntu ISO (no layered squashed filesystems, which was also a pain point to understand, but at least something functional). My code is available at https://github.com/Proman4713/Utile-OS (I previously used to extract and modify a base Ubuntu ISO; I am migrating to live-build). -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2154055 Title: --bootloader grub still looks for grub-legacy To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/live-build/+bug/2154055/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
