Bug 1086446 - syslinux/isolinux 6.02 breaks live image boot (ldlinux.c32 not found)
Summary: syslinux/isolinux 6.02 breaks live image boot (ldlinux.c32 not found)
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: syslinux
Version: rawhide
Hardware: All
OS: Linux
urgent
urgent
Target Milestone: ---
Assignee: Peter Jones
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1087008 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-04-10 23:09 UTC by Kevin Kofler
Modified: 2014-04-19 02:29 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2014-04-19 02:29:01 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
ISOLINUX 6.02 - Failed to load ldlinux.c32 - Fedora-Live-Xfce-i686-rawhide-20140413.iso (2.08 KB, image/png)
2014-04-13 22:13 UTC, poma
no flags Details

Description Kevin Kofler 2014-04-10 23:09:59 UTC
Description of problem:
The latest syslinux build in Rawhide no longer ships ldlinux.c32 on x86_64, but ISOLINUX requires that file to boot.

Version-Release number of selected component (if applicable):
syslinux-6.02-1.fc21.x86_64

How reproducible:
As far as I can tell, always

Steps to Reproduce:
1. Create a live CD/DVD from the latest Rawhide.
2. Try to boot the live CD/DVD (e.g. in KVM).

Actual results:
Failed to load ldlinux.c32
Boot failed: press a key to retry...
(and of course retrying only brings the exact same error back)

Expected results:
The live image boots.

Additional info:
The faulty commit:
http://pkgs.fedoraproject.org/cgit/syslinux.git/commit/?id=cf3072fad9a23cad88becf1a5e923e92c39dfdb1
(in particular, the %exclude lines for non-%{ix86}; note that x86_64 is NOT in %{ix86}).

Comment 1 poma 2014-04-13 22:13:32 UTC
Created attachment 885959 [details]
ISOLINUX 6.02 - Failed to load ldlinux.c32 - Fedora-Live-Xfce-i686-rawhide-20140413.iso


http://www.syslinux.org/wiki/index.php/Common_Problems#ELF

Comment 2 poma 2014-04-13 23:29:07 UTC
e.g.
$ iso-info --no-header -f -i boot.iso
__________________________________
ISO 9660 image: boot.iso
Application: Mageia 4 x86_64 Netinstall
System     : LINUX
Volume     : Mageia 4 x86_64 Netinstall
Volume Set : Mageia 4 x86_64
__________________________________
ISO-9660 Information
     2048 /EFI
      872 /TRANS.TBL
       65 /VERSION
     2048 /isolinux
     2048 /loader
      216 /EFI/TRANS.TBL
     2048 /EFI/boot
      223 /EFI/boot/TRANS.TBL
    81530 /EFI/boot/bootx64.efi
     3108 /isolinux/TRANS.TBL
     1008 /isolinux/advanced.msg
     2048 /isolinux/boot.cat
 28311552 /isolinux/efiboot.img
      959 /isolinux/help.msg
     4084 /isolinux/ifcpu.c32
    38912 /isolinux/isolinux.bin
      718 /isolinux/isolinux.cfg
   116528 /isolinux/ldlinux.c32
   182420 /isolinux/libcom32.c32
    66456 /isolinux/libgpl.c32
    24024 /isolinux/libmenu.c32
    24100 /isolinux/libutil.c32
   190896 /isolinux/memtest
     2048 /isolinux/x86_64
      438 /isolinux/x86_64/TRANS.TBL
 23268328 /isolinux/x86_64/all.rdz
  3816448 /isolinux/x86_64/vmlinuz
      442 /loader/TRANS.TBL
     2048 /loader/entries
       34 /loader/loader.conf
      115 /loader/entries/01-mga-install.conf
      123 /loader/entries/02-mga-rescue.conf
      461 /loader/entries/TRANS.TBL

Comment 3 poma 2014-04-14 12:29:40 UTC
boot.iso  13-Apr-2014 13:52  424M

$ iso-info --no-header -f -i boot.iso
__________________________________
ISO 9660 image: boot.iso
Application: GENISOIMAGE ISO 9660_HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE
System     : LINUX
Volume     : Fedora rawhide i386
__________________________________
ISO-9660 Information
     2048 /LiveOS
     2048 /images
     2048 /isolinux
      224 /LiveOS/TRANS.TBL
281350144 /LiveOS/squashfs.img
     2048 /images/pxeboot
     1340 /images/pxeboot/TRANS.TBL
 37916436 /images/pxeboot/initrd-PAE.img
 39077880 /images/pxeboot/initrd.img
 35624624 /images/pxeboot/upgrade-PAE.img
 36787580 /images/pxeboot/upgrade.img
  6005664 /images/pxeboot/vmlinuz
  6111872 /images/pxeboot/vmlinuz-PAE
     3108 /isolinux/TRANS.TBL
     2048 /isolinux/boot.cat
       84 /isolinux/boot.msg
      293 /isolinux/grub.conf
 39077880 /isolinux/initrd.img
    38912 /isolinux/isolinux.bin
     3065 /isolinux/isolinux.cfg
   116404 /isolinux/ldlinux.c32
   182380 /isolinux/libcom32.c32
    24128 /isolinux/libutil.c32
   190896 /isolinux/memtest
      171 /isolinux/splash.png
 36787580 /isolinux/upgrade.img
    26788 /isolinux/vesamenu.c32
  6005664 /isolinux/vmlinuz

Boot OK!
~~~~~~~~
~~~~~~~~

$ iso-info --no-header -f -i Fedora-Live-Xfce-i686-rawhide-20140413.iso 
__________________________________
ISO 9660 image: Fedora-Live-Xfce-i686-rawhide-20140413.iso
Application: GENISOIMAGE ISO 9660_HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE
System     : LINUX
Volume     : Fedora-Live-Xfce-i686-rawhide-20
__________________________________
ISO-9660 Information
    18092 /GPL
     2048 /LiveOS
     2048 /isolinux
    49330 /LiveOS/livecd-iso-to-disk
     8192 /LiveOS/osmin.img
653328384 /LiveOS/squashfs.img
     2048 /isolinux/boot.cat
 38395628 /isolinux/initrd0.img
    38912 /isolinux/isolinux.bin
     2242 /isolinux/isolinux.cfg
   190896 /isolinux/memtest
    26788 /isolinux/vesamenu.c32
  6005664 /isolinux/vmlinuz0


ISOLINUX 6.02 - Failed to load ldlinux.c32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

'libcom32.c32' & 'ldlinux.c32' & 'libutil.c32' added 
to the 'Fedora-Live-Xfce-i686-rawhide-20140413.iso'
i.e.

$ iso-info --no-header -f -i Fedora-Live-Xfce-i686-rawhide-20140413a.iso 
__________________________________
ISO 9660 image: Fedora-Live-Xfce-i686-rawhide-20140413a.iso
Preparer   : ISO Master
Volume     : Fedora-Live-Xfce-i686-rawhide-20
__________________________________
ISO-9660 Information
    18092 /GPL
     2048 /LiveOS
     2048 /isolinux
    49330 /LiveOS/livecd-iso-to-disk
     8192 /LiveOS/osmin.img
653328384 /LiveOS/squashfs.img
     2048 /isolinux/boot.cat
 38395628 /isolinux/initrd0.img
    38912 /isolinux/isolinux.bin
     2242 /isolinux/isolinux.cfg
   116404 /isolinux/ldlinux.c32
   182380 /isolinux/libcom32.c32
    24128 /isolinux/libutil.c32
   190896 /isolinux/memtest
    26788 /isolinux/vesamenu.c32
  6005664 /isolinux/vmlinuz0

Boot OK!
~~~~~~~~
~~~~~~~~

Comment 4 Kevin Kofler 2014-04-14 15:42:31 UTC
*** Bug 1087008 has been marked as a duplicate of this bug. ***

Comment 5 Kevin Kofler 2014-04-15 00:44:51 UTC
The x86_64 live image builds are now failing entirely, with:
DEBUG util.py:281:  Error: Package: syslinux-6.02-1.fc21.x86_64 (build)
DEBUG util.py:281:             Requires: syslinux-nonlinux = 6.02-1.fc21
DEBUG util.py:281:  Error: Package: syslinux-extlinux-6.02-1.fc21.x86_64 (build)
DEBUG util.py:281:             Requires: syslinux-extlinux-nonlinux = 6.02-1.fc21
DEBUG util.py:281:   You could try using --skip-broken to work around the problem
DEBUG util.py:281:   You could try running: rpm -Va --nofiles --nodigest

The problem appears to be that syslinux wants to require an i686 package on x86_64, which is not allowed on the live image composes. (AFAIK, they run with i686 packages excluded.)

Comment 6 Kevin Kofler 2014-04-15 00:57:34 UTC
We waited a week for a fix to this critical issue, I'm fed up of waiting, I'm trying to fix it now.

Comment 7 Kevin Kofler 2014-04-15 01:20:56 UTC
This should be fixed in syslinux-6.02-2.fc21.

Comment 8 Peter Jones 2014-04-15 14:05:52 UTC
This is the completely wrong way to fix this problem.  It's particularly bad because you identified what was going wrong, and chose to ignore it in favor of this bad packaging change.

Fix the inability to resolve cross-arch requires on livecd spins.  That's
the right answer here. Having two different i686 builds of syslinux, one
inside x86_64 packaging, is not in any way acceptable.

Comment 9 Kevin Kofler 2014-04-15 14:24:41 UTC
Syslinux has always been packaged that way. Live image composes in Fedora intentionally exclude *.i686 to ensure that yum will not accidentally pull in multilibs. A pure 64-bit install MUST NOT require any *.i686.rpm packages.

> Having two different i686 builds of syslinux, one inside x86_64 packaging, is
> not in any way acceptable.

Why not? It has always been done that way. Those 32-bit binaries are not native GNU/Linux binaries, they do not BuildRequire nor Require any i686 packages, the fact that they're 32-bit is only a technical detail.

In addition, comment #1 shows that your split also broke the i686 live images, I'm not exactly sure why, but it did.

Undoing a fix for a release-blocking bug as you did with your git revert is extremely rude. If you do not restore my fix within 24 hours, I will escalate this to FESCo.

Comment 10 Kevin Kofler 2014-04-16 01:36:11 UTC
It looks like there are actually TWO problems here. The reliance on syslinux-nonlinux.i686 that broke the live image builds in Koji was only one problem, but it was NOT the one I was hitting with my local compose. Even with syslinux-6.02-2.fc21, I still get the same "ldlinux.c32 not found" error I originally reported. And comment #1 also points out that this also happens on the i686 images.

So there is a problem with locating ldlinux.c32 that is unrelated to your subpackages, it's either a separate packaging problem or a problem in the upstream code.

Comment 11 Kevin Kofler 2014-04-17 14:03:18 UTC
There are reports that the latest images from Koji now boot, but I still get the same "ldlinux.c32 not found" fatal error from my local compose with syslinux-6.02-4.fc21. My builds booted fine with the old syslinux-4.xx.

Comment 12 Kevin Kofler 2014-04-17 14:07:01 UTC
Looks like I need newer livecd-tools, trying to compose Rawhide images on a F19 system is fragile… :-( I see that livecd-tools-21.1-1 contains updates to support syslinux-6.02-4.

Comment 13 Kevin Kofler 2014-04-19 02:29:01 UTC
Yeah, with:
https://git.fedorahosted.org/cgit/livecd/commit/?id=a267c4ab89ff97bcbad550b9ec331d5a0631d444
backported, it works. Closing.


Note You need to log in before you can comment on or make changes to this bug.