Please merge initramfs-tools 0.142 from Debian unstable.

Bug #1988418 reported by Dave Jones
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
initramfs-tools (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Please merge initramfs-tools 0.142 from Debian unstable.

Updated changelog and diff against Debian unstable to be attached below.

Revision history for this message
Dave Jones (waveform) wrote :

Attaching patch against Debian unstable. For ease of review, relevant commits
and tags have been pushed to the following repository:

https://code.launchpad.net/~waveform/ubuntu/+source/initramfs-tools/+git/initramfs-tools

Specifically:

* logical/0.140ubuntu17 represents our split-out delta on top of old/debian (0.140)
* logical/0.142ubuntu1 represents our rebased delta on top of new/debian (0.142)
* merge/0.142ubuntu1 adds changelog and maintainer changes, and one post-merge change on top of logical/0.142ubuntu1

Hence, the following command may produce output useful to the purposes of review:

git range-diff old/debian..logical/0.140ubuntu17 new/debian..logical/0.142ubuntu1

Dave Jones (waveform)
Changed in initramfs-tools (Ubuntu):
status: New → Confirmed
Revision history for this message
Dave Jones (waveform) wrote :

I would caution that there are some substantial changes in this merge. Specifically:

* upstream has now moved to zstd by default (as in Ubuntu) resulting in several bits of the delta changing

* upstream re-wrote a fair amount of logic around the "ip=" init parameter; this is an area we already had a substantial delta which also needed re-writing as a result

* upstream also added configuration for the compression level of the initramfs which required our delta to change

Please do not attempt to review the debdiff; at nearly 300KB it would be pointless. The git range-diff is far more informative, but may need a larger --creation-factor to make the most of it (100 is a reasonable choice).

Revision history for this message
Dave Jones (waveform) wrote :

Test packages are building in ppa:waveform/initramfs-tools at:

https://launchpad.net/~waveform/+archive/ubuntu/initramfs-tools

Revision history for this message
Steve Langasek (vorlon) wrote :

My standard way of reviewing a merge is to do the merge myself and see what comes up different. Here are my observations:

conf/initramfs.conf: the commented COMPRESSLEVEL setting should match the default, which for us is 1, not 3.

debian/control: upstream has Recommends: ${busybox:Recommends}, zstd, but you only have Recommends: zstd. Why?

debian/rules: you caught that there were build-time tests added by us that should be retained even though upstream dropped their override; good (I missed this).

hook-functions: upstream landed the change to exclude modems from the net usb drivers, but we had cdc-phonet.ko in our list but Debian does not. I do not know why Debian did not include it; I think we should include it in the merge and forward to Debian for consideration.

+ elif [ -n "${DEVICE}" ] || [ -n "${DEVICE6}" ]; then

FWIW I would write this as elif [ -n "$DEVICE$DEVICE6" ]; then

Otherwise, this looks good to me.

Revision history for this message
Dave Jones (waveform) wrote :
Download full text (5.6 KiB)

> My standard way of reviewing a merge is to do the merge myself and
> see what comes up different. Here are my observations:
>
> conf/initramfs.conf: the commented COMPRESSLEVEL setting should
> match the default, which for us is 1, not 3.

Good point! Slightly weird that it's set to 3 given that upstream's
default is 9. Still, ours should indeed be consistent with our
defaults -- I'll amend it.

> debian/control: upstream has Recommends: ${busybox:Recommends},
> zstd, but you only have Recommends: zstd. Why?

This is a part where the range-diff comes in handy (sorry this is
probably going to wrap horribly):

 1: 896377e ! 1: 1d9229b - Make busybox-initramfs a real runtime dependency, fixing kernel install failures with cryptsetup
    @@ debian/control: Description: generic modular initramfs generator (automation)
      Package: initramfs-tools-core
      Architecture: all
      Multi-Arch: foreign
    --Recommends: ${busybox:Recommends}, pigz
    +-Recommends: ${busybox:Recommends}, zstd
     -Depends: klibc-utils (>= 2.0.4-8~), cpio (>= 2.12), kmod, udev, coreutils (>= 8.24), logsave | e2fsprogs (<< 1.45.3-1~), ${misc:Depends}
    -+Recommends: pigz
    ++Recommends: zstd
     +Depends: ${busybox:Depends}, klibc-utils (>= 2.0.4-8~), cpio (>= 2.12), kmod, udev, coreutils (>= 8.24), logsave | e2fsprogs (<< 1.45.3-1~), ${misc:Depends}
      Suggests: bash-completion
      Breaks: initramfs-tools (<< 0.121~), ${busybox:Breaks}

This is showing that one part of our delta moves ${busybox:Recommends}
to ${busybox:Depends} ("Make busybox-initramfs a real runtime
dependency..."). That part of our delta hasn't changed, but the
context of it has. Re-ordering the lines a bit, the previous diff was:

    --Recommends: ${busybox:Recommends}, pigz
    -+Recommends: pigz
     -Depends: klibc-utils (>= 2.0.4-8~), cpio (>= 2.12), kmod, udev, coreutils (>= 8.24), logsave | e2fsprogs (<< 1.45.3-1~), ${misc:Depends}
     +Depends: ${busybox:Depends}, klibc-utils (>= 2.0.4-8~), cpio (>= 2.12), kmod, udev, coreutils (>= 8.24), logsave | e2fsprogs (<< 1.45.3-1~), ${misc:Depends}

But upstream changed pigz to zstd in Recommends so now the delta is:

    +-Recommends: ${busybox:Recommends}, zstd
    ++Recommends: zstd
     -Depends: klibc-utils (>= 2.0.4-8~), cpio (>= 2.12), kmod, udev, coreutils (>= 8.24), logsave | e2fsprogs (<< 1.45.3-1~), ${misc:Depends}
     +Depends: ${busybox:Depends}, klibc-utils (>= 2.0.4-8~), cpio (>= 2.12), kmod, udev, coreutils (>= 8.24), logsave | e2fsprogs (<< 1.45.3-1~), ${misc:Depends}

In other words, it's a context change but no real change in the delta.

> debian/rules: you caught that there were build-time tests added by
> us that should be retained even though upstream dropped their
> override; good (I missed this).
>
> hook-functions: upstream landed the change to exclude modems from
> the net usb drivers, but we had cdc-phonet.ko in our list but Debian
> does not. I do not know why Debian did not include it; I think we
> should include it in the merge and forward to Debian for
> consideration.

I think Debian does include it, just in a slightly different position?
At least, I can see cdc-phonet.ko added after "ca...

Read more...

Revision history for this message
Dave Jones (waveform) wrote :

Attaching amended debdiff addressing review comments

Revision history for this message
Dave Jones (waveform) wrote :

Doh, let's try that again with the right series this time...

Revision history for this message
Dave Jones (waveform) wrote :

Test package building in ppa:waveform/initramfs-tools (https://launchpad.net/~waveform/+archive/ubuntu/initramfs-tools)

Revision history for this message
Steve Langasek (vorlon) wrote :

> I think Debian does include it, just in a slightly different position?
> At least, I can see cdc-phonet.ko added after "can" in the following
> diff:

Ah, slightly different sorting rules and string-blindness.

We concur now wrt what should be uploaded. I'll look at sponsoring this.

Steve Langasek (vorlon)
Changed in initramfs-tools (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (13.5 KiB)

This bug was fixed in the package initramfs-tools - 0.142ubuntu1

---------------
initramfs-tools (0.142ubuntu1) lunar; urgency=medium

  * Merge from Debian unstable (LP: #1988418). Remaining changes:
    - Make busybox-initramfs a real runtime dependency, fixing kernel install
      failures with cryptsetup
    - support mounting of loopback devices via loop*= parameters
    - Drop hooks/keymap, scripts/init-top/keymap, and associated code;
      console-setup takes care of this in Ubuntu.
    - Add a new 'fixrtc' script that tries to set the system clock forward
      based on the last mount time of the root disk; without this kludge,
      systems without a working RTC will end up in a perpetual reboot loop.
    - Trim leading whitespaces in dumpe2fs output so date command is happy in
      the fixrtc script
    - scripts/local-premount/fixrtc: ensure that the fixrtc script doesn't
      produce extraneous output from wait-for-root and date
    - Set hostname at boot, for the benefit of mdadm autoassembly.
    - Allow scripts and hooks to specify OPTION=VAR, and unless VAR is set to
      something other than "n", the script will not be included.
    - Restore the framebuffer hook and script, copying KMS and other
      framebuffer drivers into the initramfs, but make them optional; you need
      to set FRAMEBUFFER=y for these to be included.
    - Add hwaddr= alias for BOOTIF= for compatibility.
    - Automatically blacklist vga16fb when vga= or video= specified on kernel
      command-line.
    - add squashfs to list of 'most' modules
    - Add vfat and nls modules to the initramfs.
    - Add Hyper-V paravirtualised device drivers to the initramfs to allow
      booting of stock images in a Hyper-V guest.
    - ppc64el: enable PowerPC NX Crypto Coprocessor
    - Revised mountroot failure support. This is now deprecated and
      effectively removed. However, to prevent breakage in other packages the
      add_mountroot_fail_hook function is still present as an empty stub.
    - resume: only resume when the partition contains a resume image
    - Fix resuming a hibernate session from a swapfile
    - Add new initramfs-tools-bin package containing a binary that uses
      libudev to wait for udev to create the udev device, or wait for udev to
      finish processing if we catch it in the act, and returns the filesystem
      type as already probed by udev.
    - local_device_setup: use wait-for-root if it supports the device alias
      type
    - debian/control: update Vcs-* links for Ubuntu.
    - Add support for uppercase and lowercase uuids.
    - init: Don't interpret "rootdelay" as a static sleep.
    - src/wait-for-root.c, scripts/local: add explicit support for PARTUUID, a
      syntax we may prefer for images that might boot without an initramfs.
    - scripts/local: Let rootdelay determine the wait-for-root timeout.
    - Increase rootdelay to 180s on powerpc/ppc64/ppc64el
    - Support roottimeout= as the authoritative name for rootdelay= since the
      Ubuntu interpretation of rootdelay is *not* a delay and this causes
      inconsistent behavior depending on whether the kernel or an initramfs is
      interpreting it.
   ...

Changed in initramfs-tools (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.