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

Reply via email to