Package: yaird Version: 0.0.13-5 Justification: breaks the whole system Severity: critical Tags: patch
*** Please type your report below this line *** Hi, Thanks for yaird. I take it as a great program that required hard work for tying everything up and knotting it against bare kernel /sys files. It's about aiming at a moving target. That's also the reason why I have to file this report as yaird breaks regularly w/ kernel internals changing. But this is well-known, as previous reports witness. yaird failed to create an initramfs image on kernel 2.6.33.4. I believe it used to work w/ kernel 2.6.27.4, 2.6.29, 2.6.30 as I use yaird initramfs images with those kernels. For kernel 2.6.33.4 though I had to patch some files. I like yaird for the small images and I avoid any kernel-specific modules as it's more portable across kernel versions. After fixing yaird, the latest ramfs image and the just created ramfs image differ like so: ramfs2 | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff -Naur ramfs1 ramfs2 --- ramfs1 2010-06-04 16:59:30.000000000 +0200 +++ ramfs2 2010-06-04 16:59:38.593836066 +0200 @@ -21,27 +21,23 @@ ./etc/udev/udev.conf ./init ./lib -./lib/ld-2.9.so +./lib/i686 +./lib/i686/cmov +./lib/i686/cmov/libc-2.10.2.so +./lib/i686/cmov/libc.so.6 +./lib/i686/cmov/libdl-2.10.2.so +./lib/i686/cmov/libdl.so.2 +./lib/ld-2.10.2.so ./lib/ld-linux.so.2 ./lib/libblkid.so.1 -./lib/libblkid.so.1.0 -./lib/libc-2.9.so -./lib/libcom_err.so.2 -./lib/libcom_err.so.2.1 -./lib/libc.so.6 +./lib/libblkid.so.1.1.0 ./lib/libdevmapper.so.1.02.1 -./lib/libdl-2.9.so -./lib/libdl.so.2 -./lib/libext2fs.so.2 -./lib/libext2fs.so.2.4 ./lib/libpopt.so.0 ./lib/libpopt.so.0.0.0 -./lib/libpthread-2.9.so -./lib/libpthread.so.0 ./lib/libselinux.so.1 ./lib/libsepol.so.1 ./lib/libuuid.so.1 -./lib/libuuid.so.1.2 +./lib/libuuid.so.1.3.0 ./mnt ./proc ./sbin So, it looks quite ok. Though the patch for /usr/sbin/yaird doesn't quite fit into this report I filed it inline. Maybe it's better suited for the man page. It tried to fix the copy function using File::Copy::Recursive::rmove but that fails due to inadequate special file handling. Didn't find a better solution, so just giving an annotation for users wondering. BTW, it seems this fs boundary copy problem is caused by a debian-specific modification of yaird using secure temporary files/dirs. As my /tmp is a tmpfs, this is due to fail when not using something like: yaird -f directory -o /tmp/initramfs_2.6.33.4 Where the target is on the same fs. ActiveBlockDevTab.pm | 4 +++- Hardware.pm | 8 ++++++++ Input.pm | 6 ++++-- yaird | 4 ++++ 4 files changed, 19 insertions(+), 3 deletions(-) --- ActiveBlockDevTab.pm_2010-06-03.bkp 2010-06-03 23:21:13.000000000 +0200 +++ ActiveBlockDevTab.pm 2010-06-04 16:53:52.000000000 +0200 @@ -58,7 +58,9 @@ if (exists ($abdTab->{$devno})) { Base::fatal ("found duplicate devno in $blockPath/$entry"); } - my $hw = readlink("$blockPath/$entry/device"); + ### ven 2010-06-04, 16:53:23 CEST (+0200) -> Nils Radtke lk...@_think-future.de + ### Working for kernel 2.6.33.4 + my $hw = readlink("$blockPath/$entry"); # failure results in undef, which is exactly how # we want to represent absence of a hw device. if (defined ($hw)) { --- Hardware.pm_2010-06-03.bkp 2010-06-04 16:49:35.000000000 +0200 +++ Hardware.pm 2010-06-04 16:50:33.000000000 +0200 @@ -204,6 +204,14 @@ # grouping of SCSI devices within a host # (2.6.10 and later); harmless. } + ### ven 2010-06-04, 16:46:43 CEST (+0200) -> Nils Radtke lk...@_think-future.de + ### Working for kernel 2.6.33.4 + elsif ($abspath =~ m!/target\d+:\d+:\d+/\d+:\d+:\d+:\d+$!) { + } + elsif ($abspath =~ m!/\d+:\d+:\d+:\d+/block$!) { + } + elsif ($abspath =~ m!/block/sd.$!) { + } elsif ($abspath =~ m!/\d+:\d+:\d+:\d+$! && -f "$abspath/device/scsi_level") { --- Input.pm_2010-06-03.bkp 2010-06-03 23:43:57.000000000 +0200 +++ Input.pm 2010-06-04 16:52:27.000000000 +0200 @@ -51,12 +51,14 @@ if ($handler !~ /^event\d+$/) { next; } + ### gio 2010-06-03, 23:38:37 CEST (+0200) -> Nils Radtke lk...@_think-future.de + ### Working for kernel 2.6.33.4 my $devLink = Conf::get('sysFs') - . "/class/input/$handler/device"; + . "/class/input/$handler"; my $hw = readlink ($devLink); if (defined ($hw) && $hw =~ s!^(\.\./)+(class/input/input\d+)$!$2!) { # Linux 2.6.23 eventX -> inputX link - $devLink = Conf::get('sysFs') . '/' . $hw . '/device'; + $devLink = Conf::get('sysFs') . '/' . $hw; $hw = readlink ($devLink); } if (defined ($hw)) { --- yaird_2010-06-04.bkp 2010-06-04 16:42:20.000000000 +0200 +++ yaird 2010-06-04 16:43:24.000000000 +0200 @@ -92,6 +92,10 @@ -c, --config file use this configuration file -f, --format form produce the image in this format, valid values: directory, cramfs, cpio + Debian-specific: When using format "directory" a temporary directory is + created in /tmp and later moved to the directory specified with -o + targetDir: /tmp/<tempDir> and targetDir must reside on the same device, + move fails to cross fs boundaries. -t, --test print overview of system data, used as basis for debugging. -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.33.4 (SMP w/2 CPU cores; PREEMPT) Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages yaird depends on: ii cpio 2.11-4 GNU cpio -- a program to manage ar ii dash 0.5.5.1-5 POSIX-compliant shell ii libc6 2.10.2-9 Embedded GNU C Library: Shared lib ii libhtml-template-perl 2.9-1 HTML::Template : A module for usin ii libparse-recdescent-perl 1.964+dfsg-1 Perl module to create and use recu ii perl 5.10.1-12 Larry Wall's Practical Extraction yaird recommends no packages. Versions of packages yaird suggests: ii doc-base 0.9.5 utilities to manage online documen -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org