Hello community, here is the log from the commit of package udev checked in at Mon May 15 12:58:02 CEST 2006. -------- --- udev/udev.changes 2006-05-08 19:30:33.000000000 +0200 +++ STABLE/udev/udev.changes 2006-05-12 11:46:38.000000000 +0200 @@ -1,0 +2,6 @@ +Wed May 10 17:13:16 CEST 2006 - kay.sievers@suse.de + +- fix edd_id (null) output (#174296) +- use different uuid for NetWare nss volume + +------------------------------------------------------------------- New: ---- udev-edd_id-NULL-01.patch udev-nss-different-uuid-01.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ udev.spec ++++++ --- /var/tmp/diff_new_pack.cMXuCw/_old 2006-05-15 12:57:51.000000000 +0200 +++ /var/tmp/diff_new_pack.cMXuCw/_new 2006-05-15 12:57:51.000000000 +0200 @@ -13,7 +13,7 @@ Name: udev URL: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/ Version: 085 -Release: 30 +Release: 31 License: GPL Group: System/Kernel Summary: A rule based device node and kernel event manager @@ -32,6 +32,8 @@ Patch8: udev-mkdir-udev-dir-01.patch Patch9: udev-offsetof-01.patch Patch10: udev-netware-01.patch +Patch11: udev-edd_id-NULL-01.patch +Patch12: udev-nss-different-uuid-01.patch # Source1: path_id # @@ -82,6 +84,8 @@ %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 %build make V=1 EXTRAS=%{extras} STRIPCMD= OPTFLAGS="${RPM_OPT_FLAGS}" all @@ -234,6 +238,9 @@ %attr(600,root,root) %dev(c,10,200) /lib/udev/devices/fwmonitor %changelog -n udev +* Wed May 10 2006 - kay.sievers@suse.de +- fix edd_id (null) output (#174296) +- use different uuid for NetWare nss volume * Mon May 08 2006 - kay.sievers@suse.de - add NetWare volume detection (#170255) * Mon May 01 2006 - kay.sievers@suse.de ++++++ udev-edd_id-NULL-01.patch ++++++ diff --git a/extras/edd_id/edd_id.c b/extras/edd_id/edd_id.c index 8fc690a..4ba89ed 100644 --- a/extras/edd_id/edd_id.c +++ b/extras/edd_id/edd_id.c @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) int sysfs_fd; DIR *dir = NULL; int rc = 1; - char *match = NULL; + char match[NAME_MAX] = ""; logging_init("edd_id"); @@ -74,7 +74,7 @@ int main(int argc, char *argv[]) } else node = arg; } - if (!node) { + if (node == NULL) { err("no node specified"); fprintf(stderr, "no node specified\n"); goto exit; @@ -82,7 +82,7 @@ int main(int argc, char *argv[]) /* check for kernel support */ dir = opendir("/sys/firmware/edd"); - if (!dir) { + if (dir == NULL) { info("no kernel EDD support"); fprintf(stderr, "no kernel EDD support\n"); rc = 2; @@ -156,32 +156,36 @@ int main(int argc, char *argv[]) size = read(sysfs_fd, sysfs_id_buf, sizeof(sysfs_id_buf)-1); close(sysfs_fd); - if (size < 0) { + if (size <= 0) { info("read sysfs '%s' failed", file); continue; } sysfs_id_buf[size] = '\0'; info("read '%s' from '%s'", sysfs_id_buf, file); - sysfs_id = strtoul(sysfs_id_buf, NULL, 16); + + /* look for matching value, that appears only once */ if (disk_id == sysfs_id) { - if (!match) { - match = dent->d_name; + if (match[0] == '\0') { + /* store id */ + strlcpy(match, dent->d_name, sizeof(match)); } else { + /* error, same signature for another device */ info("'%s' does not have a unique signature", node); fprintf(stderr, "'%s' does not have a unique signature\n", node); - rc=10; + rc = 10; goto exit; } } - } - if (export) - printf("ID_EDD=%s\n", match); - else - printf("%s\n", match); - rc = 0; + if (match[0] != '\0') { + if (export) + printf("ID_EDD=%s\n", match); + else + printf("%s\n", match); + rc = 0; + } close: close(disk_fd); ++++++ udev-nss-different-uuid-01.patch ++++++ diff --git a/extras/volume_id/libvolume_id/netware.c b/extras/volume_id/libvolume_id/netware.c --- a/extras/volume_id/libvolume_id/netware.c +++ b/extras/volume_id/libvolume_id/netware.c @@ -36,6 +36,46 @@ struct netware_super_block { uint16_t SBH_VersionMediaMinor; uint32_t SBH_ItemsMoved; uint8_t SBH_InternalID[16]; + uint32_t SBH_PackedSize; + uint32_t SBH_Checksum; + uint32_t supersyncid; + int64_t superlocation[4]; + uint32_t physSizeUsed; + uint32_t sizeUsed; + uint32_t superTimeStamp; + uint32_t reserved0[1]; + int64_t SBH_LoggedPoolDataBlk; + int64_t SBH_PoolDataBlk; + uint8_t SBH_OldInternalID[16]; + uint32_t SBH_PoolToLVStartUTC; + uint32_t SBH_PoolToLVEndUTC; + uint16_t SBH_VersionMediaMajorCreate; + uint16_t SBH_VersionMediaMinorCreate; + uint32_t SBH_BlocksMoved; + uint32_t SBH_TempBTSpBlk; + uint32_t SBH_TempFTSpBlk; + uint32_t SBH_TempFTSpBlk1; + uint32_t SBH_TempFTSpBlk2; + uint32_t nssMagicNumber; + uint32_t poolClassID; + uint32_t poolID; + uint32_t createTime; + int64_t SBH_LoggedVolumeDataBlk; + int64_t SBH_VolumeDataBlk; + int64_t SBH_SystemBeastBlkNum; + uint64_t totalblocks; + uint16_t SBH_Name[64]; + uint8_t SBH_VolumeID[16]; + uint8_t SBH_PoolID[16]; + uint8_t SBH_PoolInternalID[16]; + uint64_t SBH_Lsn; + uint32_t SBH_SS_Enabled; + uint32_t SBH_SS_CreateTime; + uint8_t SBH_SS_OriginalPoolID[16]; + uint8_t SBH_SS_OriginalVolumeID[16]; + uint8_t SBH_SS_Guid[16]; + uint16_t SBH_SS_OriginalName[64]; + uint32_t reserved2[64-(2+46)]; } PACKED; int volume_id_probe_netware(struct volume_id *id, uint64_t off) @@ -51,7 +91,7 @@ int volume_id_probe_netware(struct volum if (memcmp(nw->SBH_Signature, "SPB5", 4) != 0) return -1; - volume_id_set_uuid(id, nw->SBH_InternalID, UUID_DCE); + volume_id_set_uuid(id, nw->SBH_PoolID, UUID_DCE); snprintf(id->type_version, sizeof(id->type_version)-1, "%u.%02u", le16_to_cpu(nw->SBH_VersionMediaMajor), le16_to_cpu(nw->SBH_VersionMediaMinor)); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...