Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.kernel > #56035 > unrolled thread
| Started by | Vincent Bernat <bernat@debian.org> |
|---|---|
| First post | 2016-12-07 12:00 +0100 |
| Last post | 2016-12-08 07:40 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.debian.kernel
Bug#847325: Unable to copy symlinks with copy_file Vincent Bernat <bernat@debian.org> - 2016-12-07 12:00 +0100
Bug#847325: Unable to copy symlinks with copy_file Ben Hutchings <ben@decadent.org.uk> - 2016-12-08 03:20 +0100
Bug#847325: Unable to copy symlinks with copy_file Vincent Bernat <bernat@debian.org> - 2016-12-08 07:40 +0100
| From | Vincent Bernat <bernat@debian.org> |
|---|---|
| Date | 2016-12-07 12:00 +0100 |
| Subject | Bug#847325: Unable to copy symlinks with copy_file |
| Message-ID | <sLI78-7uU-21@gated-at.bofh.it> |
Package: initramfs-tools-core Version: 0.125 Severity: normal File: /usr/share/initramfs-tools/hook-functions -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hey! Today, new firmware-misc-nonfree package contains some symlinks: lrwxrwxrwx 1 root root 26 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/fecs_bl.bin -> ../../gm200/gr/fecs_bl.bin - -rw-r--r-- 1 root root 1968 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/fecs_data.bin lrwxrwxrwx 1 root root 28 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/fecs_inst.bin -> ../../gm200/gr/fecs_inst.bin - -rw-r--r-- 1 root root 76 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/fecs_sig.bin lrwxrwxrwx 1 root root 27 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin -> ../../gm200/gr/gpccs_bl.bin - -rw-r--r-- 1 root root 2056 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/gpccs_data.bin lrwxrwxrwx 1 root root 29 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/gpccs_inst.bin -> ../../gm200/gr/gpccs_inst.bin - -rw-r--r-- 1 root root 76 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/gpccs_sig.bin lrwxrwxrwx 1 root root 33 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/sw_bundle_init.bin -> ../../gm200/gr/sw_bundle_init.bin lrwxrwxrwx 1 root root 25 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/sw_ctx.bin -> ../../gm200/gr/sw_ctx.bin lrwxrwxrwx 1 root root 33 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/sw_method_init.bin -> ../../gm200/gr/sw_method_init.bin lrwxrwxrwx 1 root root 28 déc. 3 22:20 /lib/firmware/nvidia/gm206/gr/sw_nonctx.bin -> ../../gm200/gr/sw_nonctx.bin I have this error on update-initramfs -u -vv: Adding firmware /lib/firmware/nvidia/gm206/gr/gpccs_data.bin Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_inst.bin Adding firmware /usr/lib/firmware/nvidia/gm200/gr/gpccs_inst.bin Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1. Removing /boot/initrd.img-4.8.0-2-amd64.dpkg-bak update-initramfs: failed for /boot/initrd.img-4.8.0-2-amd64 with 1. I have traced to this: + copy_file firmware /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin + local type src target link_target + type=firmware + src=/lib/firmware/nvidia/gm206/gr/gpccs_bl.bin + target=/lib/firmware/nvidia/gm206/gr/gpccs_bl.bin + [ -f /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] + [ -d /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] + [ -e /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] + mkdir -p /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr + [ -h /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] + readlink -f /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin + link_target=/usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin + [ /usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin != /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] + [ y = y ] + echo Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin + ln -rs /var/tmp/mkinitramfs_S838WR//usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr/gpccs_bl.bin + src=/usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin + target=/usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin + [ -e /var/tmp/mkinitramfs_S838WR//usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin ] + return 1 Maybe the check should also use cmp. - -- System Information: Debian Release: stretch/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (101, 'experimental-debug'), (101, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.8.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages initramfs-tools-core depends on: ii cpio 2.11+dfsg-6 ii klibc-utils 2.0.4-9 ii kmod 23-1 ii udev 232-7 Versions of packages initramfs-tools-core recommends: ii busybox 1:1.22.0-19 Versions of packages initramfs-tools-core suggests: ii bash-completion 1:2.1-4.3 - -- no debconf information -----BEGIN PGP SIGNATURE----- iQJGBAEBCAAwFiEErvI0h2bzccaJpzYAlaQv6DU1JfkFAlhH6JcSHGJlcm5hdEBk ZWJpYW4ub3JnAAoJEJWkL+g1NSX5r14P/ReRizb2CEv6yNYqJXgwpM8BdwgRkOPJ 6xVzf/gLYuZaxEtCnH2bi9Z6Y3f1ExBJE9G5bNmfSrF9Q8Zpaignifp392a1/HS7 ZE2Q4g6O6LkOB/N29711jd9lEoJfuNYh1g3X77fFO27htZohpkR3sN39k3fJdajd fTvlm7qnUIyeBT7iC2nq8AZMDWJuY5xZ5ziSDoYB9oxNvCGSJIg+0Q+4XTKmunvA EcQHrM+0AvaEMkikgoM/Bg7HIEBSp0xtlHPT2hQf1R127zd8urUdpIwzxriWattg UVdIPGY0GbpIGO8eWNEbsCaEP1oX0cQqnT+e9gqdqCkeFPbxqVGthRKfNX4IEzBc ZnOFB38t5pt+J9DScj5ZpK2WFJTgaY1Q/ckdK2zRcnNb9hJdOHxUjDRFCI8AOvFx ouNMxU1hnNgEf1GFri8xwYfDDyS1PoXREY6odYRsvZkrR7a0NWQV2EXf8HSQzewb vB79DOFw5+vpkaW/RI3YHCMM7hiNOPCiIGw1JLmGA5TXRnsK++k4dtN+mZP5Eptd ud7zpaCu2RyFaENdVca0yXvw8AenuxOXLEneGAKmElyWIIlwShGrKp5Ru0L56J0J fz3vNvgf111CC5cQwNRV+FvqRoy+9vzgU9ZTSyAS4oVk2zwtgBfHA1xw+AN0Ub/b qRH2Li4kr/Zq =dZqX -----END PGP SIGNATURE-----
[toc] | [next] | [standalone]
| From | Ben Hutchings <ben@decadent.org.uk> |
|---|---|
| Date | 2016-12-08 03:20 +0100 |
| Message-ID | <sLWtr-8ph-1@gated-at.bofh.it> |
| In reply to | #56035 |
[Multipart message — attachments visible in raw view] — view raw
On Wed, 2016-12-07 at 11:46 +0100, Vincent Bernat wrote: [...] > I have this error on update-initramfs -u -vv: > > Adding firmware /lib/firmware/nvidia/gm206/gr/gpccs_data.bin > Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_inst.bin > Adding firmware /usr/lib/firmware/nvidia/gm200/gr/gpccs_inst.bin > Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1. > Removing /boot/initrd.img-4.8.0-2-amd64.dpkg-bak > update-initramfs: failed for /boot/initrd.img-4.8.0-2-amd64 with 1. > > I have traced to this: > > + copy_file firmware /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > + local type src target link_target > + type=firmware > + src=/lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > + target=/lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > + [ -f /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] > + [ -d /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] > + [ -e /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] > + mkdir -p /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr > + [ -h /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] > + readlink -f /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > + link_target=/usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin > + [ /usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin != /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin ] > + [ y = y ] > + echo Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > Adding firmware-link /lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > + ln -rs /var/tmp/mkinitramfs_S838WR//usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin /var/tmp/mkinitramfs_S838WR//lib/firmware/nvidia/gm206/gr/gpccs_bl.bin > + src=/usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin > + target=/usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin > + [ -e /var/tmp/mkinitramfs_S838WR//usr/lib/firmware/nvidia/gm200/gr/gpccs_bl.bin ] > + return 1 > > Maybe the check should also use cmp. It should not. copy_file is documented to return 1 in case the target already exists, and some of its callers rely on that to skip looking at the file's dependencies. If copy_file copies a symlink, it then moves on to copying the link- target. It also returns 1 if that already exists in the initramfs, but this is not obvious from the documentation. It seems to make more sense to return 0 in this case and reserve 1 for the case that nothing at all was copied. (Annoyingly, I couldn't reproduce this at first because I tried just adding nouveau to /etc/initramfs-tools/modules. Since mkinitramfs does *not* use 'set -e' (unlike most hooks), the 'failure' of copy_file was not fatal.) Ben. -- Ben Hutchings When in doubt, use brute force. - Ken Thompson
[toc] | [prev] | [next] | [standalone]
| From | Vincent Bernat <bernat@debian.org> |
|---|---|
| Date | 2016-12-08 07:40 +0100 |
| Message-ID | <sM0x4-2Ck-13@gated-at.bofh.it> |
| In reply to | #56052 |
[Multipart message — attachments visible in raw view] — view raw
❦ 8 décembre 2016 02:08 GMT, Ben Hutchings <ben@decadent.org.uk> : > (Annoyingly, I couldn't reproduce this at first because I tried just > adding nouveau to /etc/initramfs-tools/modules. Since mkinitramfs does > *not* use 'set -e' (unlike most hooks), the 'failure' of copy_file was > not fatal.) I should have said that I got the error through plymouth hook. -- Civilization is the limitless multiplication of unnecessary necessities. -- Mark Twain
[toc] | [prev] | [standalone]
Back to top | Article view | linux.debian.kernel
csiph-web