Heya,
new util-linux is a prerequisite for the whole hal thing. I've just
downloaded and built it from git.debian.org[1], and I encountered the
following problem with ENOMEDIUM, that seems to be Linux-specific. I'm
attaching a proposed patch. I'm quoting the whole context:
| /* ask kernel developers why we need such ugly open() method... */
| static int
| open_device(const char *devname)
| {
| int retries = 0;
|
| do {
| int fd = open(devname, O_RDONLY);
| if (fd >= 0)
| return fd;
| #ifdef ENOMEDIUM
| if (errno != ENOMEDIUM)
| break;
| #endif
| if (retries >= CRDOM_NOMEDIUM_RETRIES)
| break;
| ++retries;
| sleep(3);
| } while(1);
|
| return -1;
| }
Do you people think of a better patch? *ding* Reading it again,
I guess it'd be better to just add “#else break” in there, no?
1. git://git.debian.org/users/lamont/util-linux.git [master]
./autogen.sh && debuild -b
It is supposed to reach experimental first.
After the build, the symbols file shows missing uuid_{,un}pack:
| - uuid_pack@UUID_1.0 2.16-1
| +#MISSING: 2.16-2# uuid_pack@UUID_1.0 2.16-1
| - uuid_unpack@UUID_1.0 2.16-1
| +#MISSING: 2.16-2# uuid_unpack@UUID_1.0 2.16-1
I'll start and figure out where that comes from later tonight.
Mraw,
KiBi.
--- a/lib/fsprobe.c +++ b/lib/fsprobe.c @@ -31,8 +31,10 @@ open_device(const char *devname) int fd = open(devname, O_RDONLY); if (fd >= 0) return fd; +#ifdef ENOMEDIUM if (errno != ENOMEDIUM) break; +#endif if (retries >= CRDOM_NOMEDIUM_RETRIES) break; ++retries;
Attachment:
signature.asc
Description: Digital signature