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

RFC: util-linux's FTBFS



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


Reply to: