Hello community, here is the log from the commit of package sg3_utils for openSUSE:Factory checked in at 2014-05-23 08:05:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sg3_utils (Old) and /work/SRC/openSUSE:Factory/.sg3_utils.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sg3_utils" Changes: -------- --- /work/SRC/openSUSE:Factory/sg3_utils/sg3_utils.changes 2014-04-26 17:01:50.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.sg3_utils.new/sg3_utils.changes 2014-05-23 08:05:20.000000000 +0200 @@ -2 +2,11 @@ -Tue Apr 15 20:11:54 UTC 2014 - spargaon...@suse.com +Thu May 15 13:34:33 CEST 2014 - h...@suse.de + +- Create compability links for ATA devices (bnc#876344) + Add: + 0003-sg_inq-compability-links-for-ata_id.patch +- Suppress warnings for sg_inq --export (bnc#876454) + Add: + 0004-sg_inq-suppress-warning-messages-for-export.patch + +------------------------------------------------------------------- +Tue Apr 15 16:03:37 UTC 2014 - spargaon...@suse.com New: ---- 0003-sg_inq-compability-links-for-ata_id.patch 0004-sg_inq-suppress-warning-messages-for-export.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sg3_utils.spec ++++++ --- /var/tmp/diff_new_pack.rMpNdJ/_old 2014-05-23 08:05:21.000000000 +0200 +++ /var/tmp/diff_new_pack.rMpNdJ/_new 2014-05-23 08:05:21.000000000 +0200 @@ -28,6 +28,8 @@ Source: http://sg.danny.cz/sg/p/%name-%{version}.tar.xz Patch1: 0001-Split-59-scsi-sg_utils.rules-for-multipath-support.patch Patch2: sginfo-inq-fields-strip-blank.patch +Patch3: 0003-sg_inq-compability-links-for-ata_id.patch +Patch4: 0004-sg_inq-suppress-warning-messages-for-export.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: udev BuildRequires: xz @@ -84,6 +86,8 @@ %setup -q -n %{name}-%{version} %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 %build %configure --disable-static --with-pic ++++++ 0003-sg_inq-compability-links-for-ata_id.patch ++++++ >From 96300d5e6d62a9fd64183fe6c13a5227d07c6b1f Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Thu, 8 May 2014 15:59:33 +0200 Subject: sg_inq: compability links for ata_id The original 'ata_id' program would return the data provided by the 'IDENTIFY' ATA command. As the 'product' information from the IDENTIFY command is 40 bytes long it doesn't fit into the 'product' field for the SCSI inquiry, causing it to be truncated. So we should be adding another field 'SCSI_IDENT_LUN_ATA' to provide ata_id compatible information for creating symlinks. References: bnc#876344 Signed-off-by: Hannes Reinecke <h...@suse.de> --- scripts/55-scsi-sg3_id.rules | 3 ++- src/sg_inq.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/55-scsi-sg3_id.rules b/scripts/55-scsi-sg3_id.rules index 2f99157..ab5a8e3 100644 --- a/scripts/55-scsi-sg3_id.rules +++ b/scripts/55-scsi-sg3_id.rules @@ -25,7 +25,8 @@ ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_WWN}!="?*", ENV{ID_WWN}="0x$env{SCSI_IDENT ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_WWN_WITH_EXTENSION}!="?*", ENV{ID_WWN_WITH_EXTENSION}="0x$env{SCSI_IDENT_LUN_NAA}" # ata_id compability -ENV{ID_SERIAL}!="?*", ENV{SCSI_VENDOR}=="ATA", ENV{ID_BUS}="ata", ENV{ID_ATA}="1", ENV{ID_SERIAL}="$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}" +ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_ATA}=="?*", ENV{ID_BUS}="ata", ENV{ID_ATA}="1", ENV{ID_SERIAL}="$env{SCSI_IDENT_LUN_ATA}" +ENV{ID_SERIAL_SHORT}!="?*", ENV{SCSI_VENDOR}=="ATA", ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_VENDOR}" # Compat ID_SERIAL setting ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="3$env{SCSI_IDENT_LUN_NAA}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAA}" ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="2$env{SCSI_IDENT_LUN_EUI64}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_EUI64}" diff --git a/src/sg_inq.c b/src/sg_inq.c index bfa4f58..7d8ada5 100644 --- a/src/sg_inq.c +++ b/src/sg_inq.c @@ -1839,6 +1839,10 @@ export_dev_ids(unsigned char * buff, int len) if ((2 == c_set) || (3 == c_set)) { k = encode_whitespaces(ip, i_len); printf("%.*s\n", k, ip); + if (!memcmp(ip, "ATA_", 4)) { + printf("SCSI_IDENT_%s_ATA=%.*s\n", assoc_str, + k - 4, ip + 4); + } } else { for (m = 0; m < i_len; ++m) printf("%02x", (unsigned int)ip[m]); -- 1.7.12.4 ++++++ 0004-sg_inq-suppress-warning-messages-for-export.patch ++++++ >From 880ad9e51b2a2e1f3a8feb0c8e0bb4b5b840a7a3 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Thu, 15 May 2014 12:27:22 +0200 Subject: sg_inq: suppress warning messages for --export When called with --export we should just print out the resulting strings. Printing out warnings in addition just confuses the caller. And if required the warnings can be enabled by specifying --verbose. References: bnc#876454 Signed-off-by: Hannes Reinecke <h...@suse.de> --- src/sg_inq.c | 111 +++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 70 insertions(+), 41 deletions(-) diff --git a/src/sg_inq.c b/src/sg_inq.c index 7d8ada5..473d212 100644 --- a/src/sg_inq.c +++ b/src/sg_inq.c @@ -1767,7 +1767,7 @@ decode_dev_ids(const char * leadin, unsigned char * buff, int len, int do_hex) } static void -export_dev_ids(unsigned char * buff, int len) +export_dev_ids(unsigned char * buff, int len, int verbose) { int u, j, m, id_len, c_set, assoc, desig_type, i_len; int off, d_id, naa, k, p_id; @@ -1797,9 +1797,11 @@ export_dev_ids(unsigned char * buff, int len) i_len = ucp[3]; id_len = i_len + 4; if ((off + id_len) > len) { - pr2serr("Device Identification VPD page error: designator " - "length longer than\n remaining response length=%d\n", - (len - off)); + if (verbose) + pr2serr("Device Identification VPD page error: designator " + "length longer than\n remaining response length=%d\n", + (len - off)); + return; } ip = ucp + 4; @@ -1819,7 +1821,8 @@ export_dev_ids(unsigned char * buff, int len) assoc_str = "TARGET"; break; default: - pr2serr(" Invalid association %d\n", assoc); + if (verbose) + pr2serr(" Invalid association %d\n", assoc); return; } switch (desig_type) { @@ -1851,8 +1854,10 @@ export_dev_ids(unsigned char * buff, int len) break; case 2: /* EUI-64 based */ if (1 != c_set) { - pr2serr(" << expected binary code_set (1)>>\n"); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << expected binary code_set (1)>>\n"); + dStrHexErr((const char *)ip, i_len, 0); + } break; } printf("SCSI_IDENT_%s_EUI64=", assoc_str); @@ -1862,21 +1867,27 @@ export_dev_ids(unsigned char * buff, int len) break; case 3: /* NAA */ if (1 != c_set) { - pr2serr(" << expected binary code_set (1)>>\n"); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << expected binary code_set (1)>>\n"); + dStrHexErr((const char *)ip, i_len, 0); + } break; } naa = (ip[0] >> 4) & 0xff; if ((naa < 2) || (naa > 6) || (4 == naa)) { - pr2serr(" << unexpected naa [0x%x]>>\n", naa); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << unexpected naa [0x%x]>>\n", naa); + dStrHexErr((const char *)ip, i_len, 0); + } break; } if (6 != naa) { if (8 != i_len) { - pr2serr(" << unexpected NAA 2 identifier " - "length: 0x%x>>\n", i_len); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << unexpected NAA 2 identifier " + "length: 0x%x>>\n", i_len); + dStrHexErr((const char *)ip, i_len, 0); + } break; } printf("SCSI_IDENT_%s_NAA=", assoc_str); @@ -1885,9 +1896,11 @@ export_dev_ids(unsigned char * buff, int len) printf("\n"); } else { /* NAA IEEE Registered extended */ if (16 != i_len) { - pr2serr(" << unexpected NAA 6 identifier " - "length: 0x%x>>\n", i_len); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << unexpected NAA 6 identifier " + "length: 0x%x>>\n", i_len); + dStrHexErr((const char *)ip, i_len, 0); + } break; } printf("SCSI_IDENT_%s_NAA=", assoc_str); @@ -1898,9 +1911,11 @@ export_dev_ids(unsigned char * buff, int len) break; case 4: /* Relative target port */ if ((1 != c_set) || (1 != assoc) || (4 != i_len)) { - pr2serr(" << expected binary code_set, target " - "port association, length 4>>\n"); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << expected binary code_set, target " + "port association, length 4>>\n"); + dStrHexErr((const char *)ip, i_len, 0); + } break; } d_id = ((ip[2] << 8) | ip[3]); @@ -1908,9 +1923,11 @@ export_dev_ids(unsigned char * buff, int len) break; case 5: /* (primary) Target port group */ if ((1 != c_set) || (1 != assoc) || (4 != i_len)) { - pr2serr(" << expected binary code_set, target " - "port association, length 4>>\n"); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << expected binary code_set, target " + "port association, length 4>>\n"); + dStrHexErr((const char *)ip, i_len, 0); + } break; } d_id = ((ip[2] << 8) | ip[3]); @@ -1918,9 +1935,11 @@ export_dev_ids(unsigned char * buff, int len) break; case 6: /* Logical unit group */ if ((1 != c_set) || (0 != assoc) || (4 != i_len)) { - pr2serr(" << expected binary code_set, logical " - "unit association, length 4>>\n"); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << expected binary code_set, logical " + "unit association, length 4>>\n"); + dStrHexErr((const char *)ip, i_len, 0); + } break; } d_id = ((ip[2] << 8) | ip[3]); @@ -1928,9 +1947,11 @@ export_dev_ids(unsigned char * buff, int len) break; case 7: /* MD5 logical unit identifier */ if ((1 != c_set) || (0 != assoc)) { - pr2serr(" << expected binary code_set, logical " - "unit association>>\n"); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << expected binary code_set, logical " + "unit association>>\n"); + dStrHexErr((const char *)ip, i_len, 0); + } break; } printf("SCSI_IDENT_%s_MD5=", assoc_str); @@ -1938,8 +1959,10 @@ export_dev_ids(unsigned char * buff, int len) break; case 8: /* SCSI name string */ if (3 != c_set) { - pr2serr(" << expected UTF-8 code_set>>\n"); - dStrHexErr((const char *)ip, i_len, -1); + if (verbose) { + pr2serr(" << expected UTF-8 code_set>>\n"); + dStrHexErr((const char *)ip, i_len, -1); + } break; } printf("SCSI_IDENT_%s_NAME=%.*s\n", assoc_str, i_len, @@ -1948,9 +1971,11 @@ export_dev_ids(unsigned char * buff, int len) case 9: /* Protocol specific port identifier */ if (TPROTO_UAS == p_id) { if ((4 != i_len) || (1 != assoc)) { - pr2serr(" << UAS (USB) expected target " - "port association>>\n"); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << UAS (USB) expected target " + "port association>>\n"); + dStrHexErr((const char *)ip, i_len, 0); + } break; } printf("SCSI_IDENT_%s_UAS_DEVICE_ADDRESS=0x%x\n", assoc_str, @@ -1959,9 +1984,11 @@ export_dev_ids(unsigned char * buff, int len) ip[2]); } else if (TPROTO_SOP == p_id) { if ((4 != i_len) && (8 != i_len)) { /* spc4r36h confused */ - pr2serr(" << SOP (PCIe) descriptor " - "length=%d >>\n", i_len); - dStrHexErr((const char *)ip, i_len, 0); + if (verbose) { + pr2serr(" << SOP (PCIe) descriptor " + "length=%d >>\n", i_len); + dStrHexErr((const char *)ip, i_len, 0); + } break; } printf("SCSI_IDENT_%s_SOP_ROUTING_ID=0x%x\n", assoc_str, @@ -1972,12 +1999,14 @@ export_dev_ids(unsigned char * buff, int len) } break; default: /* reserved */ - pr2serr(" reserved designator=0x%x\n", desig_type); - dStrHexErr((const char *)ip, i_len, -1); + if (verbose) { + pr2serr(" reserved designator=0x%x\n", desig_type); + dStrHexErr((const char *)ip, i_len, -1); + } break; } } - if (-2 == u) + if (-2 == u && verbose) pr2serr("Device identification VPD page error: " "around offset=%d\n", off); } @@ -3257,7 +3286,7 @@ vpd_decode(int sg_fd, const struct opts_t * op, int inhex_len) else if (op->do_hex > 2) dStrHex((const char *)rp, len, -1); else if (op->do_export) - export_dev_ids(rp + 4, len - 4); + export_dev_ids(rp + 4, len - 4, op->do_verbose); else decode_id_vpd(rp, len, op->do_hex); break; -- 1.7.12.4 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org