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