[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#891747: debian-cd: parse_isolinux can't handle appended kernel params containing the substring "kernel"

Package: debian-cd
Version: 3.1.20
Severity: normal
Tags: patch

   * What led up to the situation?

Trying to build a debian install cd with a backported kernel, see

   * What exactly did you do (or not do) that was effective (or

When using simple-cdd and having a prfile named blahblahblahkernel or something
similar it generate isolinux files sucs as

label install
        menu label ^Install
        kernel /install.amd/vmlinuz
        append preseed/file=/cdrom/simple-cdd/default.preseed simple-
cdd/profiles=stretch-bpokernel vga=788 initrd=/install.amd/initrd.gz --- quiet

parse_isolinux and the offending regex near the bottom
cd/blob/master/tools/boot/stretch/parse_isolinux#L237) end up targeting "kernel
vga=788 initrd=/install.amd/initrd.gz --- quiet" instead of "kernel

   * What was the outcome of this action?

You end up with broken grub.conf entries that look like:

menuentry --hotkey=i 'Install' {
    set background_color=black
    linux    vga=788 initrd=/install.amd/initrd.gz --- quiet

Here's my patch that fixes it:

diff --git a/tools/boot/stretch/parse_isolinux
index a15e52d..a8b057b 100755
--- a/tools/boot/stretch/parse_isolinux
+++ b/tools/boot/stretch/parse_isolinux
@@ -234,8 +234,8 @@ foreach my $line(@lines) {
        $menu{"label"} = $1;
     } elsif ($line =~ /menu default/ && $in_kernel) {
        $kernel{"default"} = 1;
-    } elsif ($line =~ /kernel (.*)$/ && $in_kernel) {
-       $kernel{"kernel"} = $1;
+    } elsif ($line =~ /^(\s+)?kernel(.*)/ && $in_kernel) {
+       $kernel{"kernel"} = $2;
     } elsif ($line =~ /append (.*)$/ && $in_kernel) {
        $kernel{"append"} = $1;
     } else {

-- System Information:
Debian Release: 9.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-3-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages debian-cd depends on:
ii  apt                               1.4.8
ii  bc                                1.06.95-9+b3
ii  bzip2                             1.0.6-8.1
ii  cpp                               4:6.3.0-4
ii  curl                              7.52.1-5+deb9u4
ii  dctrl-tools [grep-dctrl]          2.24-2+b1
ii  dpkg-dev                          1.18.24
ii  genisoimage                       9:1.1.11-3+b2
pn  libcompress-zlib-perl             <none>
pn  libdigest-md5-perl                <none>
ii  libdpkg-perl                      1.18.24
ii  libperl5.24 [libdigest-sha-perl]  5.24.1-3+deb9u2
ii  lynx                              2.8.9dev11-1
ii  lynx-cur                          2.8.9dev11-1
ii  make                              4.1-9.1
ii  perl                              5.24.1-3+deb9u2
ii  tofrodos                          1.7.13+ds-2
ii  xorriso                           1.4.6-1+b1

Versions of packages debian-cd recommends:
ii  dosfstools       4.1-1
ii  hfsutils         3.2.6-13+b1
ii  isolinux         3:6.03+dfsg-14.1+deb9u1
ii  mtools           4.0.18-2+b1
ii  netpbm           2:10.0-15.3+b2
ii  syslinux-common  3:6.03+dfsg-14.1+deb9u1
ii  syslinux-utils   3:6.03+dfsg-14.1+deb9u1
ii  wget             1.18-5+deb9u1

debian-cd suggests no packages.

-- no debconf information

-- debsums errors found:
debsums: changed file /usr/share/debian-cd/tools/boot/stretch/parse_isolinux (from debian-cd package)

Reply to: