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

Bug#944929: initramfs-tools: postinst fails when run under fakechroot



Package: initramfs-tools
Version: 0.132
Severity: normal

Hi,

mmdebstrap is a replacement for debootstrap and also supports fakechroot
as a way to avoid becoming root to produce a chroot tarball. Currently,
the postinst script of initramfs-tools fails during installation of a
linux kernel package. I inserted a "set -x" before installing
linux-image-amd64 and this is the result:

Setting up linux-image-5.3.0-2-amd64 (5.3.9-2) ...
I: /vmlinuz.old is now a symlink to boot/vmlinuz-5.3.0-2-amd64
I: /initrd.img.old is now a symlink to boot/initrd.img-5.3.0-2-amd64
I: /vmlinuz is now a symlink to boot/vmlinuz-5.3.0-2-amd64
I: /initrd.img is now a symlink to boot/initrd.img-5.3.0-2-amd64
/etc/kernel/postinst.d/apt-auto-removal:
W: Unable to read /tmp/7fbrozPKb6 - RealFileExists (2: No such file or directory)
W: Unable to read /tmp/7fbrozPKb6 - RealFileExists (2: No such file or directory)
W: Unable to read /tmp/7fbrozPKb6 - RealFileExists (2: No such file or directory)
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.3.0-2-amd64
+ PREREQS=
+ prereqs
+ echo
+ exit 0
+ PREREQS=
+ . /usr/share/initramfs-tools/hook-functions
+ mkdir -p /var/tmp/mkinitramfs_9jv3H9/lib/systemd
+ copy_exec /lib/systemd/systemd-udevd /lib/systemd
+ local src target x nonoptlib ret
+ src=/lib/systemd/systemd-udevd
+ target=/lib/systemd
+ copy_file binary /lib/systemd/systemd-udevd /lib/systemd
+ local type src target link_target
+ type=binary
+ src=/lib/systemd/systemd-udevd
+ target=/lib/systemd
+ [ -f /lib/systemd/systemd-udevd ]
+ [ -d /var/tmp/mkinitramfs_9jv3H9//lib/systemd ]
+ target=/lib/systemd/systemd-udevd
+ target=/usr/lib/systemd/systemd-udevd
+ [ -e /var/tmp/mkinitramfs_9jv3H9//usr/lib/systemd/systemd-udevd ]
+ mkdir -p /var/tmp/mkinitramfs_9jv3H9//usr/lib/systemd
+ [ -h /lib/systemd/systemd-udevd ]
+ [ n = y ]
+ cp -pP /lib/systemd/systemd-udevd /var/tmp/mkinitramfs_9jv3H9//usr/lib/systemd/systemd-udevd
+ ldd /lib/systemd/systemd-udevd
+ sed -e
		/\//!d;
		/linux-gate/d;
		/=>/ {s/.*=>[[:blank:]]*\([^[:blank:]]*\).*/\1/};
		s/[[:blank:]]*\([^[:blank:]]*\) (.*)/\1/
+ echo /usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so
+ sed -e s#/lib/\([^/]*/\)\?\(tls\|i686\|sse2\|neon\|vfp\).*/\(lib.*\)#/lib/\1\3#
+ nonoptlib=/usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so
+ echo /usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so
+ sed -e s#-linux-gnu/\(tls\|i686\|sse2\|neon\|vfp\).*/\(lib.*\)#-linux-gnu/\2#
+ nonoptlib=/usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so
+ [ -e /usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so ]
+ copy_file library /usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so
+ local type src target link_target
+ type=library
+ src=/usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so
+ target=/usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so
+ [ -f /usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so ]
+ return 2
+ ret=2
+ [ 2 = 1 ]
+ return 1
E: /usr/share/initramfs-tools/hooks/udev failed with return 1.
update-initramfs: failed for /boot/initrd.img-5.3.0-2-amd64 with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: error processing package linux-image-5.3.0-2-amd64 (--configure):
 installed linux-image-5.3.0-2-amd64 package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of linux-image-amd64:
 linux-image-amd64 depends on linux-image-5.3.0-2-amd64 (= 5.3.9-2); however:
  Package linux-image-5.3.0-2-amd64 is not configured yet.

dpkg: error processing package linux-image-amd64 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-image-5.3.0-2-amd64
 linux-image-amd64


As you can see, the postinst script tries to copy libfakeroot-sysv.so
into the initramfs. This fails because libfakeroot-sysv.so is only
available outside the chroot but not inside of it. Additionally,
libfakeroot-sysv.so should probably not be part of the initramfs. Maybe
some code should be added to skip inclusion of the library?

Thanks!

cheers, josch


Reply to: