rpms/udev/devel 0001-volume_id-clean-up-linux_raid-code.patch, NONE, 1.1 0002-man-udevd-fix-udev-8-reference.patch, NONE, 1.1 0003-man-scsi_id.patch, NONE, 1.1 0004-scsi_id-remove-all-sysfs-dependencies.patch, NONE, 1.1 0005-scsi_id-add-SGv4-support.patch, NONE, 1.1 0006-scsi_id-update-man-page.patch, NONE, 1.1 0007-scsi_id-remove-bus_id-option.patch, NONE, 1.1 0008-scsi_id-add-sg-version-option.patch, NONE, 1.1 0009-rules-adapt-to-new-scsi_id.patch, NONE, 1.1 0010-rules-adapt-tape-rules-to-new-scsi_id.patch, NONE, 1.1 0011-cdrom_id-fix-segfault.patch, NONE, 1.1 udev-120-rhrules.patch, NONE, 1.1 udev-121-bsg.patch, NONE, 1.1 .cvsignore, 1.48, 1.49 sources, 1.48, 1.49 udev.spec, 1.244, 1.245 0001-writing-udev-rules-fix-rule-typos.patch, 1.1, NONE 0002-udevinfo-do-not-replace-chars-when-printing-ATTR.patch, 1.1, NONE 0003-vol_id-add-offset-option.patch, 1.1, NONE 0004-cdrom_id-replace-with-version-which-also-exports-me.patch, 1.1, NONE 0005-udevd-at-startup-write-message-including-version-nu.patch, 1.1, NONE 0006-rules_generator-net-rules-always-add-KERNEL-mat.patch, 1.1, NONE 0007-selinux-more-context-settings.patch, 1.1, NONE 0008-selinux-fix-missing-includes.patch, 1.1, NONE 0009-allow-setting-of-MODE-0000.patch, 1.1, NONE 0010-path_id-remove-subsystem-whitelist.patch, 1.1, NONE 0011-logging-add-trailing-newline-to-all-strings.patch, 1.1, NONE 0012-scsi_id-initialize-serial-strings.patch, 1.1, NONE 0013-persistent-device-naming-also-read-unpartitioned-me.patch, 1.1, NONE
Harald Hoyer (harald)
fedora-extras-commits at redhat.com
Fri May 16 10:12:11 UTC 2008
- Previous message (by thread): rpms/audacity README,1.15,1.16
- Next message (by thread): rpms/mono-tools/F-9 mono-tools.patch, NONE, 1.1 mono-tools.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: harald
Update of /cvs/pkgs/rpms/udev/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv21473
Modified Files:
.cvsignore sources udev.spec
Added Files:
0001-volume_id-clean-up-linux_raid-code.patch
0002-man-udevd-fix-udev-8-reference.patch
0003-man-scsi_id.patch
0004-scsi_id-remove-all-sysfs-dependencies.patch
0005-scsi_id-add-SGv4-support.patch
0006-scsi_id-update-man-page.patch
0007-scsi_id-remove-bus_id-option.patch
0008-scsi_id-add-sg-version-option.patch
0009-rules-adapt-to-new-scsi_id.patch
0010-rules-adapt-tape-rules-to-new-scsi_id.patch
0011-cdrom_id-fix-segfault.patch udev-120-rhrules.patch
udev-121-bsg.patch
Removed Files:
0001-writing-udev-rules-fix-rule-typos.patch
0002-udevinfo-do-not-replace-chars-when-printing-ATTR.patch
0003-vol_id-add-offset-option.patch
0004-cdrom_id-replace-with-version-which-also-exports-me.patch
0005-udevd-at-startup-write-message-including-version-nu.patch
0006-rules_generator-net-rules-always-add-KERNEL-mat.patch
0007-selinux-more-context-settings.patch
0008-selinux-fix-missing-includes.patch
0009-allow-setting-of-MODE-0000.patch
0010-path_id-remove-subsystem-whitelist.patch
0011-logging-add-trailing-newline-to-all-strings.patch
0012-scsi_id-initialize-serial-strings.patch
0013-persistent-device-naming-also-read-unpartitioned-me.patch
Log Message:
* Fri May 16 2008 Harald Hoyer <harald at redhat.com> 121-1.20080516git
- version 121 + latest git fixes
0001-volume_id-clean-up-linux_raid-code.patch:
--- NEW FILE 0001-volume_id-clean-up-linux_raid-code.patch ---
>From 661a0bea80d129d5df708e36dbaed745c9d8392e Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak at redhat.com>
Date: Tue, 13 May 2008 00:55:53 +0200
Subject: [PATCH] volume_id: clean up linux_raid code
extra global and/or non-static variables suck in shared libraries
use "else if" rather than many "return" calls
Signed-off-by: Karel Zak <kzak at redhat.com>
---
extras/volume_id/lib/linux_raid.c | 25 ++++++++++++-------------
1 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/extras/volume_id/lib/linux_raid.c b/extras/volume_id/lib/linux_raid.c
index 96ae7c3..af49658 100644
--- a/extras/volume_id/lib/linux_raid.c
+++ b/extras/volume_id/lib/linux_raid.c
@@ -27,7 +27,7 @@
#include "libvolume_id.h"
#include "util.h"
-static struct mdp0_super_block {
+struct mdp0_super_block {
uint32_t md_magic;
uint32_t major_version;
uint32_t minor_version;
@@ -44,7 +44,7 @@ static struct mdp0_super_block {
uint32_t set_uuid1;
uint32_t set_uuid2;
uint32_t set_uuid3;
-} PACKED *mdp0;
+} PACKED;
struct mdp1_super_block {
uint32_t magic;
@@ -53,7 +53,7 @@ struct mdp1_super_block {
uint32_t pad0;
uint8_t set_uuid[16];
uint8_t set_name[32];
-} PACKED *mdp1;
+} PACKED;
#define MD_RESERVED_BYTES 0x10000
#define MD_SB_MAGIC 0xa92b4efc
@@ -61,6 +61,7 @@ struct mdp1_super_block {
static int volume_id_probe_linux_raid0(struct volume_id *id, uint64_t off, uint64_t size)
{
const uint8_t *buf;
+ struct mdp0_super_block *mdp0;
union {
uint32_t ints[4];
uint8_t bytes[16];
@@ -119,6 +120,7 @@ static int volume_id_probe_linux_raid0(struct volume_id *id, uint64_t off, uint6
static int volume_id_probe_linux_raid1(struct volume_id *id, uint64_t off, uint64_t size)
{
const uint8_t *buf;
+ struct mdp1_super_block *mdp1;
info("probing at offset 0x%llx, size 0x%llx\n",
(unsigned long long) off, (unsigned long long) size);
@@ -153,22 +155,19 @@ int volume_id_probe_linux_raid(struct volume_id *id, uint64_t off, uint64_t size
/* version 1.0 at the end of the device */
sboff = (size & ~(0x1000 - 1)) - 0x2000;
- if (volume_id_probe_linux_raid1(id, off + sboff, size) == 0) {
+ if (volume_id_probe_linux_raid1(id, off + sboff, size) == 0)
strcpy(id->type_version, "1.0");
- return 0;
- }
/* version 1.1 at the start of the device */
- if (volume_id_probe_linux_raid1(id, off, size) == 0) {
+ else if (volume_id_probe_linux_raid1(id, off, size) == 0)
strcpy(id->type_version, "1.1");
- return 0;
- }
/* version 1.2 at 4k offset from the start */
- if (volume_id_probe_linux_raid1(id, off + 0x1000, size) == 0) {
+ else if (volume_id_probe_linux_raid1(id, off + 0x1000, size) == 0)
strcpy(id->type_version, "1.2");
- return 0;
- }
- return -1;
+ else
+ return -1;
+
+ return 0;
}
--
1.5.4.5
0002-man-udevd-fix-udev-8-reference.patch:
--- NEW FILE 0002-man-udevd-fix-udev-8-reference.patch ---
>From 877bded34a528b6436c12678f2430e2ad466f327 Mon Sep 17 00:00:00 2001
From: MUNEDA Takahiro <muneda.takahiro at jp.fujitsu.com>
Date: Wed, 14 May 2008 04:33:34 +0200
Subject: [PATCH] man: udevd- fix udev(8) reference
---
udevd.8 | 2 +-
udevd.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/udevd.8 b/udevd.8
index 210ed3f..c6b4811 100644
--- a/udevd.8
+++ b/udevd.8
@@ -57,5 +57,5 @@ Written by Kay Sievers
<kay\.sievers at vrfy\.org>\.
.SH "SEE ALSO"
.PP
-\fBudev\fR(8),
+\fBudev\fR(7),
\fBudevadm\fR(8)
diff --git a/udevd.xml b/udevd.xml
index 178af4c..8d22a0c 100644
--- a/udevd.xml
+++ b/udevd.xml
@@ -97,7 +97,7 @@
<refsect1>
<title>SEE ALSO</title>
<para><citerefentry>
- <refentrytitle>udev</refentrytitle><manvolnum>8</manvolnum>
+ <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum>
--
1.5.4.5
0003-man-scsi_id.patch:
--- NEW FILE 0003-man-scsi_id.patch ---
>From 838436fa328345ffb0b355e6921b6d75a9b2992f Mon Sep 17 00:00:00 2001
From: MUNEDA Takahiro <muneda.takahiro at jp.fujitsu.com>
Date: Wed, 14 May 2008 04:47:33 +0200
Subject: [PATCH] man: scsi_id
---
extras/scsi_id/scsi_id.8 | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/extras/scsi_id/scsi_id.8 b/extras/scsi_id/scsi_id.8
index 927549b..aa429a5 100644
--- a/extras/scsi_id/scsi_id.8
+++ b/extras/scsi_id/scsi_id.8
@@ -45,7 +45,7 @@ identifier starts with the NAA value of 6):
.sp
.nf
-# /sbin/scsi_id --page=0x83 --devpath=/block/sdg
+# scsi_id --page=0x83 --devpath=/block/sdg
3600a0b80000b174b000000d63efc5c8c
.fi
.P
@@ -131,7 +131,10 @@ warnings are sent using syslog.
.nf
.ft B
.ft
-/etc/scsi_id.config configuration and black/white list entries
+.TP
+\fI/etc/scsi_id.config\fP
+configuration and black/white list entries
+.RE
.fi
.LP
.SH "SEE ALSO"
--
1.5.4.5
0004-scsi_id-remove-all-sysfs-dependencies.patch:
--- NEW FILE 0004-scsi_id-remove-all-sysfs-dependencies.patch ---
>From 753417db2ba6faafa3aa30f6b15678e1557e20b8 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare at suse.de>
Date: Wed, 14 May 2008 13:42:41 +0200
Subject: [PATCH] scsi_id: remove all sysfs dependencies
---
extras/scsi_id/scsi_id.c | 213 ++++++------------------------------------
extras/scsi_id/scsi_id.h | 19 +++-
extras/scsi_id/scsi_serial.c | 85 ++++++++---------
3 files changed, 83 insertions(+), 234 deletions(-)
diff --git a/extras/scsi_id/scsi_id.c b/extras/scsi_id/scsi_id.c
index 5381087..4f0233e 100644
--- a/extras/scsi_id/scsi_id.c
+++ b/extras/scsi_id/scsi_id.c
@@ -31,21 +31,14 @@
#include "scsi_id.h"
#include "scsi_id_version.h"
-/* temporary names for mknod */
-#define TMP_DIR "/dev"
-#define TMP_PREFIX "tmp-scsi"
-
static const struct option options[] = {
{ "device", 1, NULL, 'd' },
{ "config", 1, NULL, 'f' },
{ "page", 1, NULL, 'p' },
- { "devpath", 1, NULL, 's' },
- { "fallback-to-sysfs", 0, NULL, 'a' },
{ "blacklisted", 0, NULL, 'b' },
{ "whitelisted", 0, NULL, 'g' },
{ "prefix-bus-id", 0, NULL, 'i' },
{ "replace-whitespace", 0, NULL, 'u' },
- { "ignore-sysfs", 0, NULL, 'n' },
{ "verbose", 0, NULL, 'v' },
{ "version", 0, NULL, 'V' },
{ "export", 0, NULL, 'x' },
@@ -53,21 +46,17 @@ static const struct option options[] = {
{}
};
-static const char short_options[] = "abd:f:ghinp:s:uvVx";
+static const char short_options[] = "d:f:ghip:uvVx";
static const char dev_short_options[] = "bgp:";
static int all_good;
-static int always_info;
static int dev_specified;
-static int sys_specified;
static char config_file[MAX_PATH_LEN] = SCSI_ID_CONFIG_FILE;
static int display_bus_id;
static enum page_code default_page_code;
static int use_stderr;
static int debug;
-static int hotplug_mode;
static int reformat_serial;
-static int ignore_sysfs;
static int export;
static char vendor_str[64];
static char model_str[64];
@@ -169,35 +158,6 @@ static void set_type(char *to, const char *from, size_t len)
to[len-1] = '\0';
}
-static int create_tmp_dev(const char *devpath, char *tmpdev, int dev_type)
-{
- unsigned int maj, min;
- const char *attr;
-
- dbg("%s\n", devpath);
- attr = sysfs_attr_get_value(devpath, "dev");
- if (attr == NULL) {
- dbg("%s: could not get dev attribute: %s\n", devpath, strerror(errno));
- return -1;
- }
-
- dbg("dev value %s\n", attr);
- if (sscanf(attr, "%u:%u", &maj, &min) != 2) {
- err("%s: invalid dev major/minor\n", devpath);
- return -1;
- }
-
- snprintf(tmpdev, MAX_PATH_LEN, "%s/%s-maj%d-min%d-%u",
- TMP_DIR, TMP_PREFIX, maj, min, getpid());
-
- dbg("tmpdev '%s'\n", tmpdev);
- if (mknod(tmpdev, 0600 | dev_type, makedev(maj, min))) {
- err("mknod failed: %s\n", strerror(errno));
- return -1;
- }
- return 0;
-}
-
/*
* get_value:
*
@@ -415,7 +375,7 @@ static int get_file_options(const char *vendor, const char *model,
}
static int set_options(int argc, char **argv, const char *short_opts,
- char *target, char *maj_min_dev)
+ char *maj_min_dev)
{
int option;
@@ -436,9 +396,6 @@ static int set_options(int argc, char **argv, const char *short_opts,
dbg("option '%c'\n", option);
switch (option) {
- case 'a':
- always_info = 1;
- break;
case 'b':
all_good = 0;
break;
@@ -465,11 +422,8 @@ static int set_options(int argc, char **argv, const char *short_opts,
case 'h':
printf("Usage: scsi_id OPTIONS <device>\n"
" --device device node for SG_IO commands\n"
- " --devpath sysfs devpath\n"
" --config location of config file\n"
" --page SCSI page (0x80, 0x83, pre-spc3-83)\n"
- " --fallback-to-sysfs print sysfs values if inquiry fails\n"
- " --ignore-sysfs ignore sysfs entries\n"
" --blacklisted threat device as blacklisted\n"
" --whitelisted threat device as whitelisted\n"
" --prefix-bus-id prefix SCSI bus id\n"
@@ -497,16 +451,6 @@ static int set_options(int argc, char **argv, const char *short_opts,
}
break;
- case 'n':
- ignore_sysfs = 1;
- break;
-
- case 's':
- sys_specified = 1;
- strncpy(target, optarg, MAX_PATH_LEN);
- target[MAX_PATH_LEN-1] = '\0';
- break;
-
case 'u':
reformat_serial = 1;
break;
@@ -528,10 +472,15 @@ static int set_options(int argc, char **argv, const char *short_opts,
exit(1);
}
}
+ if (optind < argc && !dev_specified) {
+ dev_specified = 1;
+ strncpy(maj_min_dev, argv[optind], MAX_PATH_LEN);
+ maj_min_dev[MAX_PATH_LEN-1] = '\0';
+ }
return 0;
}
-static int per_dev_options(struct sysfs_device *dev_scsi, int *good_bad, int *page_code)
+static int per_dev_options(struct scsi_id_device *dev_scsi, int *good_bad, int *page_code)
{
int retval;
int newargc;
@@ -590,54 +539,18 @@ static int per_dev_options(struct sysfs_device *dev_scsi, int *good_bad, int *pa
return retval;
}
-static int set_sysfs_values(struct sysfs_device *dev_scsi)
-{
- const char *vendor, *model, *type;
-
- vendor = sysfs_attr_get_value(dev_scsi->devpath, "vendor");
- if (!vendor) {
- info("%s: cannot get vendor attribute\n", dev_scsi->devpath);
- return -1;
- }
- set_str(vendor_str, vendor, sizeof(vendor_str)-1);
-
- model = sysfs_attr_get_value(dev_scsi->devpath, "model");
- if (!model) {
- info("%s: cannot get model attribute\n", dev_scsi->devpath);
- return -1;
- }
- set_str(model_str, model, sizeof(model_str)-1);
-
- type = sysfs_attr_get_value(dev_scsi->devpath, "type");
- if (!type) {
- info("%s: cannot get type attribute\n", dev_scsi->devpath);
- return -1;
- }
- set_type(type_str, type, sizeof(type_str));
-
- type = sysfs_attr_get_value(dev_scsi->devpath, "rev");
- if (!type) {
- info("%s: cannot get type attribute\n", dev_scsi->devpath);
- return -1;
- }
- set_str(revision_str, type, sizeof(revision_str)-1);
-
- return 0;
-}
-
-static int set_inq_values(struct sysfs_device *dev_scsi, const char *path)
+static int set_inq_values(struct scsi_id_device *dev_scsi, const char *path)
{
int retval;
- char vendor[8], model[16], type[4], rev[4];
- retval = scsi_std_inquiry(dev_scsi, path, vendor, model, rev, type);
+ retval = scsi_std_inquiry(dev_scsi, path);
if (retval)
return retval;
- set_str(vendor_str, vendor, 8);
- set_str(model_str, model, 16);
- set_type(type_str, type, sizeof(type_str) - 1);
- set_str(revision_str, rev, sizeof(revision_str) -1);
+ set_str(vendor_str, dev_scsi->vendor, 8);
+ set_str(model_str, dev_scsi->model, 16);
+ set_type(type_str, dev_scsi->type, sizeof(type_str) - 1);
+ set_str(revision_str, dev_scsi->revision, sizeof(revision_str) -1);
return 0;
}
@@ -674,60 +587,25 @@ static void format_serial(char *serial)
* memory etc. return 2, and return 1 for expected cases (like broken
* device found) that do not print an id.
*/
-static int scsi_id(const char *devpath, char *maj_min_dev)
+static int scsi_id(char *maj_min_dev)
{
int retval;
- int dev_type = 0;
- struct sysfs_device *dev;
- struct sysfs_device *dev_scsi = NULL;
+ struct scsi_id_device dev_scsi;
int good_dev;
int page_code;
- char serial[MAX_SERIAL_LEN] = "";
char serial_short[MAX_SERIAL_LEN] = "";
- const char *bus_str = NULL;
-
- dbg("devpath %s\n", devpath);
- dev = sysfs_device_get(devpath);
- if (dev == NULL) {
- err("unable to access '%s'\n", devpath);
- return 1;
- }
-
- if (strcmp(dev->subsystem, "block") == 0)
- dev_type = S_IFBLK;
- else
- dev_type = S_IFCHR;
-
- /* mknod a temp dev to communicate with the device */
- if (!dev_specified && create_tmp_dev(dev->devpath, maj_min_dev, dev_type)) {
- dbg("create_tmp_dev failed\n");
- return 1;
- }
-
- if (!ignore_sysfs) {
- /* get scsi parent device */
- dev_scsi = sysfs_device_get_parent_with_subsystem(dev, "scsi");
- if (dev_scsi == NULL) {
- err("unable to access parent device of '%s'\n", devpath);
- return 1;
- }
- set_sysfs_values(dev_scsi);
- bus_str = "scsi";
- } else {
- dev_scsi = dev;
- set_inq_values(dev_scsi, maj_min_dev);
- }
+ set_inq_values(&dev_scsi, maj_min_dev);
/* get per device (vendor + model) options from the config file */
- retval = per_dev_options(dev_scsi, &good_dev, &page_code);
+ retval = per_dev_options(&dev_scsi, &good_dev, &page_code);
dbg("per dev options: good %d; page code 0x%x\n", good_dev, page_code);
if (!good_dev) {
retval = 1;
- } else if (scsi_get_serial(dev_scsi, maj_min_dev, page_code,
- serial, serial_short, MAX_SERIAL_LEN)) {
- retval = always_info?0:1;
+ } else if (scsi_get_serial(&dev_scsi, maj_min_dev, page_code,
+ serial_short, MAX_SERIAL_LEN)) {
+ retval = 1;
} else {
retval = 0;
}
@@ -738,59 +616,33 @@ static int scsi_id(const char *devpath, char *maj_min_dev)
printf("ID_VENDOR=%s\n", vendor_str);
printf("ID_MODEL=%s\n", model_str);
printf("ID_REVISION=%s\n", revision_str);
- set_str(serial_str, serial, sizeof(serial_str));
+ set_str(serial_str, dev_scsi.serial, sizeof(serial_str));
printf("ID_SERIAL=%s\n", serial_str);
set_str(serial_str, serial_short, sizeof(serial_str));
printf("ID_SERIAL_SHORT=%s\n", serial_str);
printf("ID_TYPE=%s\n", type_str);
- if (bus_str != NULL)
- printf("ID_BUS=%s\n", bus_str);
} else {
if (reformat_serial)
- format_serial(serial);
- if (display_bus_id)
- printf("%s: ", dev_scsi->kernel);
- printf("%s\n", serial);
+ format_serial(dev_scsi.serial);
+ printf("%s\n", dev_scsi.serial);
}
- dbg("%s\n", serial);
+ dbg("%s\n", dev_scsi.serial);
retval = 0;
}
- if (!dev_specified)
- unlink(maj_min_dev);
-
return retval;
}
int main(int argc, char **argv)
{
int retval = 0;
- char devpath[MAX_PATH_LEN];
char maj_min_dev[MAX_PATH_LEN];
int newargc;
- const char *env;
char **newargv;
logging_init("scsi_id");
- sysfs_init();
dbg("argc is %d\n", argc);
- /* sysfs path can be overridden for testing */
- env = getenv("SYSFS_PATH");
- if (env) {
- strncpy(sysfs_path, env, sizeof(sysfs_path));
- sysfs_path[sizeof(sysfs_path)-1] = '\0';
- } else
- strcpy(sysfs_path, "/sys");
-
- env = getenv("DEVPATH");
- if (env) {
- hotplug_mode = 1;
- sys_specified = 1;
- strncpy(devpath, env, MAX_PATH_LEN);
- devpath[sizeof(devpath)-1] = '\0';
- }
-
/*
* Get config file options.
*/
@@ -801,8 +653,7 @@ int main(int argc, char **argv)
goto exit;
}
if (newargv && (retval == 0)) {
- if (set_options(newargc, newargv, short_options, devpath,
- maj_min_dev) < 0) {
+ if (set_options(newargc, newargv, short_options, maj_min_dev) < 0) {
retval = 2;
goto exit;
}
@@ -810,22 +661,20 @@ int main(int argc, char **argv)
}
/*
- * Get command line options (overriding any config file or DEVPATH
- * settings).
+ * Get command line options (overriding any config file settings).
*/
- if (set_options(argc, argv, short_options, devpath, maj_min_dev) < 0)
+ if (set_options(argc, argv, short_options, maj_min_dev) < 0)
exit(1);
- if (!sys_specified) {
- info("--devpath=<path> must be specified\n");
+ if (!dev_specified) {
+ info("no device specified\n");
retval = 1;
goto exit;
}
- retval = scsi_id(devpath, maj_min_dev);
+ retval = scsi_id(maj_min_dev);
exit:
- sysfs_cleanup();
logging_close();
return retval;
}
diff --git a/extras/scsi_id/scsi_id.h b/extras/scsi_id/scsi_id.h
index 0e2b297..3b3a000 100644
--- a/extras/scsi_id/scsi_id.h
+++ b/extras/scsi_id/scsi_id.h
@@ -30,13 +30,21 @@
*/
#define MAX_BUFFER_LEN 256
-extern int scsi_std_inquiry(struct sysfs_device *dev_scsi, const char *devname,
- char *vendor, char *model, char *rev, char *type);
-extern int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
- int page_code, char *serial, char *serial_short, int len);
+struct scsi_id_device {
+ char vendor[9];
+ char model[17];
+ char revision[5];
+ char type[33];
+ char kernel[64];
+ char serial[MAX_SERIAL_LEN];
+};
+
+extern int scsi_std_inquiry(struct scsi_id_device *dev_scsi, const char *devname);
+extern int scsi_get_serial (struct scsi_id_device *dev_scsi, const char *devname,
+ int page_code, char *serial_short, int len);
/*
- * Page code values.
+ * Page code values.
*/
enum page_code {
PAGE_83_PRE_SPC3 = -0x83,
@@ -44,3 +52,4 @@ enum page_code {
PAGE_80 = 0x80,
PAGE_83 = 0x83,
};
+
diff --git a/extras/scsi_id/scsi_serial.c b/extras/scsi_id/scsi_serial.c
index 28e82db..32bb0f4 100644
--- a/extras/scsi_id/scsi_serial.c
+++ b/extras/scsi_id/scsi_serial.c
@@ -148,7 +148,7 @@ static int sg_err_category3(struct sg_io_hdr *hp)
hp->sbp, hp->sb_len_wr);
}
-static int scsi_dump_sense(struct sysfs_device *dev_scsi, struct sg_io_hdr *io)
+static int scsi_dump_sense(struct scsi_id_device *dev_scsi, struct sg_io_hdr *io)
{
unsigned char *sense_buffer;
int s;
@@ -254,7 +254,7 @@ static int scsi_dump_sense(struct sysfs_device *dev_scsi, struct sg_io_hdr *io)
return -1;
}
-static int scsi_dump(struct sysfs_device *dev_scsi, struct sg_io_hdr *io)
+static int scsi_dump(struct scsi_id_device *dev_scsi, struct sg_io_hdr *io)
{
if (!io->status && !io->host_status && !io->msg_status &&
!io->driver_status) {
@@ -273,7 +273,7 @@ static int scsi_dump(struct sysfs_device *dev_scsi, struct sg_io_hdr *io)
return -1;
}
-static int scsi_inquiry(struct sysfs_device *dev_scsi, int fd,
+static int scsi_inquiry(struct scsi_id_device *dev_scsi, int fd,
unsigned char evpd, unsigned char page,
unsigned char *buf, unsigned int buflen)
{
@@ -343,11 +343,10 @@ error:
}
/* Get list of supported EVPD pages */
-static int do_scsi_page0_inquiry(struct sysfs_device *dev_scsi, int fd,
+static int do_scsi_page0_inquiry(struct scsi_id_device *dev_scsi, int fd,
unsigned char *buffer, unsigned int len)
{
int retval;
- const char *vendor;
memset(buffer, 0, len);
retval = scsi_inquiry(dev_scsi, fd, 1, 0x0, buffer, len);
@@ -375,12 +374,7 @@ static int do_scsi_page0_inquiry(struct sysfs_device *dev_scsi, int fd,
* If the vendor id appears in the page assume the page is
* invalid.
*/
- vendor = sysfs_attr_get_value(dev_scsi->devpath, "vendor");
- if (!vendor) {
- info("%s: cannot get model attribute\n", dev_scsi->kernel);
- return 1;
- }
- if (!strncmp((char *)&buffer[VENDOR_LENGTH], vendor, VENDOR_LENGTH)) {
+ if (!strncmp((char *)&buffer[VENDOR_LENGTH], dev_scsi->vendor, VENDOR_LENGTH)) {
info("%s: invalid page0 data\n", dev_scsi->kernel);
return 1;
}
@@ -392,25 +386,14 @@ static int do_scsi_page0_inquiry(struct sysfs_device *dev_scsi, int fd,
* The caller checks that serial is long enough to include the vendor +
* model.
*/
-static int prepend_vendor_model(struct sysfs_device *dev_scsi, char *serial)
+static int prepend_vendor_model(struct scsi_id_device *dev_scsi, char *serial)
{
- const char *attr;
int ind;
- attr = sysfs_attr_get_value(dev_scsi->devpath, "vendor");
- if (!attr) {
- info("%s: cannot get vendor attribute\n", dev_scsi->kernel);
- return 1;
- }
- strncpy(serial, attr, VENDOR_LENGTH);
+ strncpy(serial, dev_scsi->vendor, VENDOR_LENGTH);
ind = strlen(serial) - 1;
- attr = sysfs_attr_get_value(dev_scsi->devpath, "model");
- if (!attr) {
- info("%s: cannot get model attribute\n", dev_scsi->kernel);
- return 1;
- }
- strncat(serial, attr, MODEL_LENGTH);
+ strncat(serial, dev_scsi->model, MODEL_LENGTH);
ind = strlen(serial) - 1;
ind++;
@@ -430,7 +413,7 @@ static int prepend_vendor_model(struct sysfs_device *dev_scsi, char *serial)
* check_fill_0x83_id - check the page 0x83 id, if OK allocate and fill
* serial number.
**/
-static int check_fill_0x83_id(struct sysfs_device *dev_scsi,
+static int check_fill_0x83_id(struct scsi_id_device *dev_scsi,
unsigned char *page_83,
const struct scsi_id_search_values
*id_search, char *serial, char *serial_short, int max_len)
@@ -521,7 +504,7 @@ static int check_fill_0x83_id(struct sysfs_device *dev_scsi,
}
/* Extract the raw binary from VPD 0x83 pre-SPC devices */
-static int check_fill_0x83_prespc3(struct sysfs_device *dev_scsi,
+static int check_fill_0x83_prespc3(struct scsi_id_device *dev_scsi,
unsigned char *page_83,
const struct scsi_id_search_values
*id_search, char *serial, char *serial_short, int max_len)
@@ -543,7 +526,7 @@ static int check_fill_0x83_prespc3(struct sysfs_device *dev_scsi,
/* Get device identification VPD page */
-static int do_scsi_page83_inquiry(struct sysfs_device *dev_scsi, int fd,
+static int do_scsi_page83_inquiry(struct scsi_id_device *dev_scsi, int fd,
char *serial, char *serial_short, int len)
{
int retval;
@@ -633,7 +616,7 @@ static int do_scsi_page83_inquiry(struct sysfs_device *dev_scsi, int fd,
* Return the hard coded error code value 2 if the page 83 reply is not
* conformant to the SCSI-2 format.
*/
-static int do_scsi_page83_prespc3_inquiry(struct sysfs_device *dev_scsi, int fd,
+static int do_scsi_page83_prespc3_inquiry(struct scsi_id_device *dev_scsi, int fd,
char *serial, char *serial_short, int len)
{
int retval;
@@ -695,7 +678,7 @@ static int do_scsi_page83_prespc3_inquiry(struct sysfs_device *dev_scsi, int fd,
}
/* Get unit serial number VPD page */
-static int do_scsi_page80_inquiry(struct sysfs_device *dev_scsi, int fd,
+static int do_scsi_page80_inquiry(struct scsi_id_device *dev_scsi, int fd,
char *serial, char *serial_short, int max_len)
{
int retval;
@@ -736,30 +719,38 @@ static int do_scsi_page80_inquiry(struct sysfs_device *dev_scsi, int fd,
return 0;
}
-int scsi_std_inquiry(struct sysfs_device *dev_scsi, const char *devname,
- char *vendor, char *model, char *rev, char *type)
+int scsi_std_inquiry(struct scsi_id_device *dev_scsi, const char *devname)
{
int retval;
int fd;
unsigned char buf[SCSI_INQ_BUFF_LEN];
+ struct stat statbuf;
dbg("opening %s\n", devname);
fd = open(devname, O_RDONLY | O_NONBLOCK);
if (fd < 0) {
- info("%s: cannot open %s: %s\n",
- dev_scsi->kernel, devname, strerror(errno));
+ info("scsi_id: cannot open %s: %s\n",
+ devname, strerror(errno));
return 1;
}
+ if (fstat(fd, &statbuf) < 0) {
+ info("scsi_id: cannot stat %s: %s\n",
+ devname, strerror(errno));
+ return 2;
+ }
+ sprintf(dev_scsi->kernel,"%d:%d", major(statbuf.st_rdev),
+ minor(statbuf.st_rdev));
+
memset(buf, 0, SCSI_INQ_BUFF_LEN);
retval = scsi_inquiry(dev_scsi, fd, 0, 0, buf, SCSI_INQ_BUFF_LEN);
if (retval < 0)
return retval;
- memcpy(vendor, buf + 8, 8);
- memcpy(model, buf + 16, 16);
- memcpy(rev, buf + 32, 4);
- sprintf(type,"%x", buf[0] & 0x1f);
+ memcpy(dev_scsi->vendor, buf + 8, 8);
+ memcpy(dev_scsi->model, buf + 16, 16);
+ memcpy(dev_scsi->revision, buf + 32, 4);
+ sprintf(dev_scsi->type,"%x", buf[0] & 0x1f);
if (close(fd) < 0)
info("%s: close failed: %s\n", dev_scsi->kernel, strerror(errno));
@@ -767,15 +758,15 @@ int scsi_std_inquiry(struct sysfs_device *dev_scsi, const char *devname,
return 0;
}
-int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
- int page_code, char *serial, char *serial_short, int len)
+int scsi_get_serial (struct scsi_id_device *dev_scsi, const char *devname,
+ int page_code, char *serial_short, int len)
{
unsigned char page0[SCSI_INQ_BUFF_LEN];
int fd;
int ind;
int retval;
- memset(serial, 0, len);
+ memset(dev_scsi->serial, 0, len);
dbg("opening %s\n", devname);
fd = open(devname, O_RDONLY | O_NONBLOCK);
if (fd < 0) {
@@ -785,7 +776,7 @@ int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
}
if (page_code == PAGE_80) {
- if (do_scsi_page80_inquiry(dev_scsi, fd, serial, serial_short, len)) {
+ if (do_scsi_page80_inquiry(dev_scsi, fd, dev_scsi->serial, serial_short, len)) {
retval = 1;
goto completed;
} else {
@@ -793,7 +784,7 @@ int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
goto completed;
}
} else if (page_code == PAGE_83) {
- if (do_scsi_page83_inquiry(dev_scsi, fd, serial, serial_short, len)) {
+ if (do_scsi_page83_inquiry(dev_scsi, fd, dev_scsi->serial, serial_short, len)) {
retval = 1;
goto completed;
} else {
@@ -801,7 +792,7 @@ int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
goto completed;
}
} else if (page_code == PAGE_83_PRE_SPC3) {
- retval = do_scsi_page83_prespc3_inquiry(dev_scsi, fd, serial, serial_short, len);
+ retval = do_scsi_page83_prespc3_inquiry(dev_scsi, fd, dev_scsi->serial, serial_short, len);
if (retval) {
/*
* Fallback to servicing a SPC-2/3 compliant page 83
@@ -809,7 +800,7 @@ int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
* conform to pre-SPC3 expectations.
*/
if (retval == 2) {
- if (do_scsi_page83_inquiry(dev_scsi, fd, serial, serial_short, len)) {
+ if (do_scsi_page83_inquiry(dev_scsi, fd, dev_scsi->serial, serial_short, len)) {
retval = 1;
goto completed;
} else {
@@ -849,7 +840,7 @@ int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
for (ind = 4; ind <= page0[3] + 3; ind++)
if (page0[ind] == PAGE_83)
if (!do_scsi_page83_inquiry(dev_scsi, fd,
- serial, serial_short, len)) {
+ dev_scsi->serial, serial_short, len)) {
/*
* Success
*/
@@ -860,7 +851,7 @@ int scsi_get_serial (struct sysfs_device *dev_scsi, const char *devname,
for (ind = 4; ind <= page0[3] + 3; ind++)
if (page0[ind] == PAGE_80)
if (!do_scsi_page80_inquiry(dev_scsi, fd,
- serial, serial_short, len)) {
+ dev_scsi->serial, serial_short, len)) {
/*
* Success
*/
--
1.5.4.5
0005-scsi_id-add-SGv4-support.patch:
--- NEW FILE 0005-scsi_id-add-SGv4-support.patch ---
>From 78d9ecfd4f1e37f7453e55e71f2909a58706ae10 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare at suse.de>
Date: Wed, 14 May 2008 13:55:49 +0200
Subject: [PATCH] scsi_id: add SGv4 support
Fall back to SGv3, if SGv3 returns a failure/is not available.
---
extras/scsi_id/Makefile | 4 +-
extras/scsi_id/scsi_id.c | 2 +
extras/scsi_id/scsi_id.h | 1 +
extras/scsi_id/scsi_serial.c | 103 ++++++++++++++++++++++++++++++++----------
4 files changed, 84 insertions(+), 26 deletions(-)
diff --git a/extras/scsi_id/Makefile b/extras/scsi_id/Makefile
index 870296a..ca067d0 100644
--- a/extras/scsi_id/Makefile
+++ b/extras/scsi_id/Makefile
@@ -6,11 +6,11 @@
# Released under the GNU General Public License, version 2.
#
-SCSI_ID_VERSION = 0.9
+SCSI_ID_VERSION = 2.0
PROG = scsi_id
OBJS= scsi_serial.o
-HEADERS = scsi_id.h scsi.h scsi_id_version.h
+HEADERS = scsi_id.h scsi.h scsi_id_version.h bsg.h
GEN_HEADERS = scsi_id_version.h
MAN_PAGES = scsi_id.8
diff --git a/extras/scsi_id/scsi_id.c b/extras/scsi_id/scsi_id.c
index 4f0233e..0f09f29 100644
--- a/extras/scsi_id/scsi_id.c
+++ b/extras/scsi_id/scsi_id.c
@@ -543,6 +543,8 @@ static int set_inq_values(struct scsi_id_device *dev_scsi, const char *path)
{
int retval;
+ dev_scsi->use_sg = 4;
+
retval = scsi_std_inquiry(dev_scsi, path);
if (retval)
return retval;
diff --git a/extras/scsi_id/scsi_id.h b/extras/scsi_id/scsi_id.h
index 3b3a000..680c39d 100644
--- a/extras/scsi_id/scsi_id.h
+++ b/extras/scsi_id/scsi_id.h
@@ -37,6 +37,7 @@ struct scsi_id_device {
char type[33];
char kernel[64];
char serial[MAX_SERIAL_LEN];
+ int use_sg;
};
extern int scsi_std_inquiry(struct scsi_id_device *dev_scsi, const char *devname);
diff --git a/extras/scsi_id/scsi_serial.c b/extras/scsi_id/scsi_serial.c
index 32bb0f4..202ffc0 100644
--- a/extras/scsi_id/scsi_serial.c
+++ b/extras/scsi_id/scsi_serial.c
@@ -22,7 +22,12 @@
#include <stdlib.h>
#include <unistd.h>
#include <syslog.h>
+#include <inttypes.h>
+#include <scsi/scsi.h>
#include <scsi/sg.h>
+#include <linux/types.h>
+/* #include <linux/bsg.h> */
+#include "bsg.h"
#include "../../udev.h"
#include "scsi.h"
@@ -94,10 +99,7 @@ static int sg_err_category_new(int scsi_status, int msg_status, int
* XXX change to return only two values - failed or OK.
*/
- /*
- * checks msg_status
- */
- if (!scsi_status && !msg_status && !host_status && !driver_status)
+ if (!scsi_status && !host_status && !driver_status)
return SG_ERR_CAT_CLEAN;
if ((scsi_status == SCSI_CHECK_CONDITION) ||
@@ -148,11 +150,18 @@ static int sg_err_category3(struct sg_io_hdr *hp)
hp->sbp, hp->sb_len_wr);
}
-static int scsi_dump_sense(struct scsi_id_device *dev_scsi, struct sg_io_hdr *io)
+static int sg_err_category4(struct sg_io_v4 *hp)
+{
+ return sg_err_category_new(hp->device_status, 0,
+ hp->transport_status, hp->driver_status,
+ (unsigned char *)hp->response,
+ hp->response_len);
+}
+
+static int scsi_dump_sense(struct scsi_id_device *dev_scsi,
+ unsigned char *sense_buffer, int sb_len)
{
- unsigned char *sense_buffer;
int s;
- int sb_len;
int code;
int sense_class;
int sense_key;
@@ -177,13 +186,11 @@ static int scsi_dump_sense(struct scsi_id_device *dev_scsi, struct sg_io_hdr *io
dbg("got check condition\n");
- sb_len = io->sb_len_wr;
if (sb_len < 1) {
info("%s: sense buffer empty\n", dev_scsi->kernel);
return -1;
}
- sense_buffer = io->sbp;
sense_class = (sense_buffer[0] >> 4) & 0x07;
code = sense_buffer[0] & 0xf;
@@ -268,7 +275,28 @@ static int scsi_dump(struct scsi_id_device *dev_scsi, struct sg_io_hdr *io)
info("%s: sg_io failed status 0x%x 0x%x 0x%x 0x%x\n",
dev_scsi->kernel, io->driver_status, io->host_status, io->msg_status, io->status);
if (io->status == SCSI_CHECK_CONDITION)
- return scsi_dump_sense(dev_scsi, io);
+ return scsi_dump_sense(dev_scsi, io->sbp, io->sb_len_wr);
+ else
+ return -1;
+}
+
+static int scsi_dump_v4(struct scsi_id_device *dev_scsi, struct sg_io_v4 *io)
+{
+ if (!io->device_status && !io->transport_status &&
+ !io->driver_status) {
+ /*
+ * Impossible, should not be called.
+ */
+ info("%s: called with no error\n", __FUNCTION__);
+ return -1;
+ }
+
+ info("%s: sg_io failed status 0x%x 0x%x 0x%x\n",
+ dev_scsi->kernel, io->driver_status, io->transport_status,
+ io->device_status);
+ if (io->device_status == SCSI_CHECK_CONDITION)
+ return scsi_dump_sense(dev_scsi, (unsigned char *)io->response,
+ io->response_len);
else
return -1;
}
@@ -281,6 +309,8 @@ static int scsi_inquiry(struct scsi_id_device *dev_scsi, int fd,
{ INQUIRY_CMD, evpd, page, 0, buflen, 0 };
unsigned char sense[SENSE_BUFF_LEN];
struct sg_io_hdr io_hdr;
+ struct sg_io_v4 io_v4;
+ void *io_buf;
int retval;
int retry = 3; /* rather random */
@@ -292,24 +322,46 @@ static int scsi_inquiry(struct scsi_id_device *dev_scsi, int fd,
resend:
dbg("%s evpd %d, page 0x%x\n", dev_scsi->kernel, evpd, page);
- memset(&io_hdr, 0, sizeof(struct sg_io_hdr));
- io_hdr.interface_id = 'S';
- io_hdr.cmd_len = sizeof(inq_cmd);
- io_hdr.mx_sb_len = sizeof(sense);
- io_hdr.dxfer_direction = SG_DXFER_FROM_DEV;
- io_hdr.dxfer_len = buflen;
- io_hdr.dxferp = buf;
- io_hdr.cmdp = inq_cmd;
- io_hdr.sbp = sense;
- io_hdr.timeout = DEF_TIMEOUT;
-
- if (ioctl(fd, SG_IO, &io_hdr) < 0) {
+ if (dev_scsi->use_sg == 4) {
+ memset(&io_v4, 0, sizeof(struct sg_io_v4));
+ io_v4.guard = 'Q';
+ io_v4.protocol = BSG_PROTOCOL_SCSI;
+ io_v4.subprotocol = BSG_SUB_PROTOCOL_SCSI_CMD;
+ io_v4.request_len = sizeof(inq_cmd);
+ io_v4.request = (uintptr_t)inq_cmd;
+ io_v4.max_response_len = sizeof(sense);
+ io_v4.response = (uintptr_t)sense;
+ io_v4.din_xfer_len = buflen;
+ io_v4.din_xferp = (uintptr_t)buf;
+ io_buf = (void *)&io_v4;
+ } else {
+ memset(&io_hdr, 0, sizeof(struct sg_io_hdr));
+ io_hdr.interface_id = 'S';
+ io_hdr.cmd_len = sizeof(inq_cmd);
+ io_hdr.mx_sb_len = sizeof(sense);
+ io_hdr.dxfer_direction = SG_DXFER_FROM_DEV;
+ io_hdr.dxfer_len = buflen;
+ io_hdr.dxferp = buf;
+ io_hdr.cmdp = inq_cmd;
+ io_hdr.sbp = sense;
+ io_hdr.timeout = DEF_TIMEOUT;
+ io_buf = (void *)&io_hdr;
+ }
+
+ if (ioctl(fd, SG_IO, io_buf) < 0) {
+ if (errno == EINVAL && dev_scsi->use_sg == 4) {
+ dev_scsi->use_sg = 3;
+ goto resend;
+ }
info("%s: ioctl failed: %s\n", dev_scsi->kernel, strerror(errno));
retval = -1;
goto error;
}
- retval = sg_err_category3(&io_hdr);
+ if (dev_scsi->use_sg == 4)
+ retval = sg_err_category4(io_buf);
+ else
+ retval = sg_err_category3(io_buf);
switch (retval) {
case SG_ERR_CAT_NOTSUPPORTED:
@@ -321,7 +373,10 @@ resend:
break;
default:
- retval = scsi_dump(dev_scsi, &io_hdr);
+ if (dev_scsi->use_sg == 4)
+ retval = scsi_dump_v4(dev_scsi, io_buf);
+ else
+ retval = scsi_dump(dev_scsi, io_buf);
}
if (!retval) {
--
1.5.4.5
0006-scsi_id-update-man-page.patch:
--- NEW FILE 0006-scsi_id-update-man-page.patch ---
>From 138cf75e4eda54ab519c0d77ad3ca4b467dfe7ec Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Wed, 14 May 2008 13:59:11 +0200
Subject: [PATCH] scsi_id: update man page
---
extras/scsi_id/scsi_id.8 | 24 +-----------------------
1 files changed, 1 insertions(+), 23 deletions(-)
diff --git a/extras/scsi_id/scsi_id.8 b/extras/scsi_id/scsi_id.8
index aa429a5..725b7d5 100644
--- a/extras/scsi_id/scsi_id.8
+++ b/extras/scsi_id/scsi_id.8
@@ -52,25 +52,12 @@ identifier starts with the NAA value of 6):
.SH OPTIONS
.TP
-.BI \-\-fallback-to-sysfs
-Always print information (model, vendor strings) about the device even
-if it does not support VPD pages.
-.TP
-.BI \-\-ignore-sysfs
-Ignore sysfs entries. Used for devices which are not represented as SCSI
-devices, but understand SG_IO commands.
-.TP
.BI \-\-blacklisted
The default behaviour \- treat the device as black listed, and do nothing
unless a white listed device is found in the scsi_id config\-file.
.TP
.BI \-\-device=\| device\^
-Instead
-of determining and creating a device node based on a sysfs dev
-entry as done for the \fB\-s\fP, send SG_IO commands to
-\fBdevice\fP, such as \fB/dev/sdc\fP.
-This argument should also be used when invoked via udev to avoid problems
-with creation of temporary files on not-yet writable directories.
+Send SG_IO commands to \fBdevice\fP, such as \fB/dev/sdc\fP.
.TP
.BI \-\-config=\| config\-file
Read configuration and black/white list entries from
@@ -85,10 +72,6 @@ on the command line or in the scsi_id configuration file for
.B scsi_id
to generate any output.
.TP
-.BI \-\-prefix-bus-id
-Prefix the identification string with the driver model (sysfs) bus id of
-the SCSI device.
-.TP
.BI \-\-page=\| 0x80 | 0x83 | pre-spc3-83
Use SCSI INQUIRY VPD page code 0x80, 0x83, or pre-spc3-83.
.sp
@@ -102,11 +85,6 @@ option is used for older model 4, 5, and 6 EMC Symmetrix devices, its
use with SPC-2 or SPC-3 compliant devices will fallback to the page 83
format supported by these devices.
.TP
-.BI \-\-devpath=\| sysfs\-devpath
-Generate an id for the
-.B sysfs\-devpath.
-The sysfs mount point must not be included.
-.TP
.BI \-\-replace-whitespace
Reformat the output : replace all whitespaces by underscores.
.TP
--
1.5.4.5
0007-scsi_id-remove-bus_id-option.patch:
--- NEW FILE 0007-scsi_id-remove-bus_id-option.patch ---
>From 2d05764a77078953849a1f84ac269c927904ca23 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Wed, 14 May 2008 13:59:25 +0200
Subject: [PATCH] scsi_id: remove bus_id option
---
extras/scsi_id/scsi_id.c | 7 -------
1 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/extras/scsi_id/scsi_id.c b/extras/scsi_id/scsi_id.c
index 0f09f29..6194b71 100644
--- a/extras/scsi_id/scsi_id.c
+++ b/extras/scsi_id/scsi_id.c
@@ -37,7 +37,6 @@ static const struct option options[] = {
{ "page", 1, NULL, 'p' },
{ "blacklisted", 0, NULL, 'b' },
{ "whitelisted", 0, NULL, 'g' },
- { "prefix-bus-id", 0, NULL, 'i' },
{ "replace-whitespace", 0, NULL, 'u' },
{ "verbose", 0, NULL, 'v' },
{ "version", 0, NULL, 'V' },
@@ -52,7 +51,6 @@ static const char dev_short_options[] = "bgp:";
static int all_good;
static int dev_specified;
static char config_file[MAX_PATH_LEN] = SCSI_ID_CONFIG_FILE;
-static int display_bus_id;
static enum page_code default_page_code;
static int use_stderr;
static int debug;
@@ -426,7 +424,6 @@ static int set_options(int argc, char **argv, const char *short_opts,
" --page SCSI page (0x80, 0x83, pre-spc3-83)\n"
" --blacklisted threat device as blacklisted\n"
" --whitelisted threat device as whitelisted\n"
- " --prefix-bus-id prefix SCSI bus id\n"
" --replace-whitespace replace all whitespaces by underscores\n"
" --verbose verbose logging\n"
" --version print version\n"
@@ -434,10 +431,6 @@ static int set_options(int argc, char **argv, const char *short_opts,
" --help print this help text\n\n");
exit(0);
- case 'i':
- display_bus_id = 1;
- break;
-
case 'p':
if (strcmp(optarg, "0x80") == 0) {
default_page_code = PAGE_80;
--
1.5.4.5
0008-scsi_id-add-sg-version-option.patch:
--- NEW FILE 0008-scsi_id-add-sg-version-option.patch ---
>From 025570aa3e054d92d65f8d2de9f91d202f60c798 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Wed, 14 May 2008 15:02:17 +0200
Subject: [PATCH] scsi_id: add --sg-version= option
---
extras/scsi_id/scsi_id.c | 53 +++++++++++++++++++++++++----------------
extras/scsi_id/scsi_serial.c | 6 +++-
2 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/extras/scsi_id/scsi_id.c b/extras/scsi_id/scsi_id.c
index 6194b71..5eb95e8 100644
--- a/extras/scsi_id/scsi_id.c
+++ b/extras/scsi_id/scsi_id.c
@@ -38,6 +38,7 @@ static const struct option options[] = {
{ "blacklisted", 0, NULL, 'b' },
{ "whitelisted", 0, NULL, 'g' },
{ "replace-whitespace", 0, NULL, 'u' },
+ { "sg-version", 1, NULL, 's' },
{ "verbose", 0, NULL, 'v' },
{ "version", 0, NULL, 'V' },
{ "export", 0, NULL, 'x' },
@@ -52,6 +53,7 @@ static int all_good;
static int dev_specified;
static char config_file[MAX_PATH_LEN] = SCSI_ID_CONFIG_FILE;
static enum page_code default_page_code;
+static int sg_version = 4;
static int use_stderr;
static int debug;
static int reformat_serial;
@@ -257,7 +259,7 @@ static int get_file_options(const char *vendor, const char *model,
break;
lineno++;
if (buf[strlen(buffer) - 1] != '\n') {
- info("Config file line %d too long\n", lineno);
+ err("Config file line %d too long\n", lineno);
break;
}
@@ -309,7 +311,7 @@ static int get_file_options(const char *vendor, const char *model,
* Only allow: [vendor=foo[,model=bar]]options=stuff
*/
if (!options_in || (!vendor_in && model_in)) {
- info("Error parsing config file line %d '%s'\n", lineno, buffer);
+ err("Error parsing config file line %d '%s'\n", lineno, buffer);
retval = -1;
break;
}
@@ -419,16 +421,17 @@ static int set_options(int argc, char **argv, const char *short_opts,
case 'h':
printf("Usage: scsi_id OPTIONS <device>\n"
- " --device device node for SG_IO commands\n"
- " --config location of config file\n"
- " --page SCSI page (0x80, 0x83, pre-spc3-83)\n"
- " --blacklisted threat device as blacklisted\n"
- " --whitelisted threat device as whitelisted\n"
- " --replace-whitespace replace all whitespaces by underscores\n"
- " --verbose verbose logging\n"
- " --version print version\n"
- " --export print values as environment keys\n"
- " --help print this help text\n\n");
+ " --device= device node for SG_IO commands\n"
+ " --config= location of config file\n"
+ " --page=0x80|0x83|pre-spc3-83 SCSI page (0x80, 0x83, pre-spc3-83)\n"
+ " --sg-version=3|4 use SGv3 or SGv4\n"
+ " --blacklisted threat device as blacklisted\n"
+ " --whitelisted threat device as whitelisted\n"
+ " --replace-whitespace replace all whitespaces by underscores\n"
+ " --verbose verbose logging\n"
+ " --version print version\n"
+ " --export print values as environment keys\n"
+ " --help print this help text\n\n");
exit(0);
case 'p':
@@ -439,7 +442,15 @@ static int set_options(int argc, char **argv, const char *short_opts,
} else if (strcmp(optarg, "pre-spc3-83") == 0) {
default_page_code = PAGE_83_PRE_SPC3;
} else {
- info("Unknown page code '%s'\n", optarg);
+ err("Unknown page code '%s'\n", optarg);
+ return -1;
+ }
+ break;
+
+ case 's':
+ sg_version = atoi(optarg);
+ if (sg_version < 3 || sg_version > 4) {
+ err("Unknown SG version '%s'\n", optarg);
return -1;
}
break;
@@ -513,13 +524,13 @@ static int per_dev_options(struct scsi_id_device *dev_scsi, int *good_bad, int *
} else if (strcmp(optarg, "pre-spc3-83") == 0) {
*page_code = PAGE_83_PRE_SPC3;
} else {
- info("Unknown page code '%s'\n", optarg);
+ err("Unknown page code '%s'\n", optarg);
retval = -1;
}
break;
default:
- info("Unknown or bad option '%c' (0x%x)\n", option, option);
+ err("Unknown or bad option '%c' (0x%x)\n", option, option);
retval = -1;
break;
}
@@ -536,16 +547,16 @@ static int set_inq_values(struct scsi_id_device *dev_scsi, const char *path)
{
int retval;
- dev_scsi->use_sg = 4;
+ dev_scsi->use_sg = sg_version;
retval = scsi_std_inquiry(dev_scsi, path);
if (retval)
return retval;
- set_str(vendor_str, dev_scsi->vendor, 8);
- set_str(model_str, dev_scsi->model, 16);
- set_type(type_str, dev_scsi->type, sizeof(type_str) - 1);
- set_str(revision_str, dev_scsi->revision, sizeof(revision_str) -1);
+ set_str(vendor_str, dev_scsi->vendor, sizeof(vendor_str));
+ set_str(model_str, dev_scsi->model, sizeof(model_str));
+ set_type(type_str, dev_scsi->type, sizeof(type_str));
+ set_str(revision_str, dev_scsi->revision, sizeof(revision_str));
return 0;
}
@@ -662,7 +673,7 @@ int main(int argc, char **argv)
exit(1);
if (!dev_specified) {
- info("no device specified\n");
+ err("no device specified\n");
retval = 1;
goto exit;
}
diff --git a/extras/scsi_id/scsi_serial.c b/extras/scsi_id/scsi_serial.c
index 202ffc0..c5cacfa 100644
--- a/extras/scsi_id/scsi_serial.c
+++ b/extras/scsi_id/scsi_serial.c
@@ -803,12 +803,14 @@ int scsi_std_inquiry(struct scsi_id_device *dev_scsi, const char *devname)
return retval;
memcpy(dev_scsi->vendor, buf + 8, 8);
+ dev_scsi->vendor[8] = '\0';
memcpy(dev_scsi->model, buf + 16, 16);
+ dev_scsi->model[16] = '\0';
memcpy(dev_scsi->revision, buf + 32, 4);
+ dev_scsi->revision[4] = '\0';
sprintf(dev_scsi->type,"%x", buf[0] & 0x1f);
- if (close(fd) < 0)
- info("%s: close failed: %s\n", dev_scsi->kernel, strerror(errno));
+ close(fd);
return 0;
}
--
1.5.4.5
0009-rules-adapt-to-new-scsi_id.patch:
--- NEW FILE 0009-rules-adapt-to-new-scsi_id.patch ---
>From 3d2aed9e869dc8abadb6f7919dcf9e35837d6181 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Wed, 14 May 2008 15:14:23 +0200
Subject: [PATCH] rules: adapt to new scsi_id
---
etc/udev/rules.d/60-persistent-storage.rules | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/etc/udev/rules.d/60-persistent-storage.rules b/etc/udev/rules.d/60-persistent-storage.rules
index 85a9270..b7c4337 100644
--- a/etc/udev/rules.d/60-persistent-storage.rules
+++ b/etc/udev/rules.d/60-persistent-storage.rules
@@ -33,8 +33,8 @@ KERNEL=="hd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p"
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode"
-KERNEL=="cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted --ignore-sysfs -s %p -d $tempnode", ENV{ID_BUS}="cciss"
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="scsi"
+KERNEL=="cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="cciss"
KERNEL=="sd*[!0-9]|sr*|cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*[0-9]|cciss*p[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
--
1.5.4.5
0010-rules-adapt-tape-rules-to-new-scsi_id.patch:
--- NEW FILE 0010-rules-adapt-tape-rules-to-new-scsi_id.patch ---
>From 788096cb59a7ad1cdd08ccc59e5e3b1d2f4828c2 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Wed, 14 May 2008 15:17:35 +0200
Subject: [PATCH] rules: adapt tape rules to new scsi_id
---
etc/udev/rules.d/60-persistent-storage-tape.rules | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/etc/udev/rules.d/60-persistent-storage-tape.rules b/etc/udev/rules.d/60-persistent-storage-tape.rules
index e56d57a..45cac93 100644
--- a/etc/udev/rules.d/60-persistent-storage-tape.rules
+++ b/etc/udev/rules.d/60-persistent-storage-tape.rules
@@ -5,14 +5,14 @@
ACTION!="add|change", GOTO="persistent_storage_tape_end"
# type 8 devices are "Medium Changers"
-KERNEL=="sg[0-9]*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
+KERNEL=="sg[0-9]*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL}"
SUBSYSTEM!="scsi_tape", GOTO="persistent_storage_tape_end"
KERNEL=="st*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
KERNEL=="st*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p"
-KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode"
+KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="scsi"
KERNEL=="st*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
--
1.5.4.5
0011-cdrom_id-fix-segfault.patch:
--- NEW FILE 0011-cdrom_id-fix-segfault.patch ---
>From 4cd71da5603898cff68a31774be570750d7fd659 Mon Sep 17 00:00:00 2001
From: Matthias Schwarzott <zzam at gentoo.org>
Date: Wed, 14 May 2008 16:03:49 +0200
Subject: [PATCH] cdrom_id: fix segfault
---
extras/cdrom_id/cdrom_id.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
index 0e0a463..e0cbe9e 100644
--- a/extras/cdrom_id/cdrom_id.c
+++ b/extras/cdrom_id/cdrom_id.c
@@ -469,6 +469,8 @@ static int cd_media_toc(int fd)
info("READ TOC: len: %d\n", len);
if (len > sizeof(toc))
return -1;
+ if (len < 8)
+ return -1;
/* check if we have a data track */
info("ctl %02x (0x04 is data/audio)\n", header[5]);
--
1.5.4.5
udev-120-rhrules.patch:
--- NEW FILE udev-120-rhrules.patch ---
diff -up udev-121/etc/udev/redhat/40-redhat.rules.rhrules udev-121/etc/udev/redhat/40-redhat.rules
--- udev-121/etc/udev/redhat/40-redhat.rules.rhrules 2008-05-09 09:22:23.000000000 +0200
+++ udev-121/etc/udev/redhat/40-redhat.rules 2008-05-16 11:58:39.000000000 +0200
@@ -23,3 +23,6 @@ KERNEL=="vcs[0-9]*", OWNER="vc
KERNEL=="vcsa", OWNER="vcsa", GROUP="tty"
KERNEL=="vcsa[0-9]*", OWNER="vcsa", GROUP="tty"
KERNEL=="vcc/*", OWNER="vcsa", GROUP="tty"
+
+KERNEL=="event*", ATTRS{idVendor}=="03f0", ATTRS{interface}=="Virtual Mouse", ATTRS{bInterfaceProtocol}=="02", SYMLINK+="input/hp_ilo_mouse"
+
udev-121-bsg.patch:
--- NEW FILE udev-121-bsg.patch ---
diff -up udev-121/extras/scsi_id/bsg.h.bsg udev-121/extras/scsi_id/bsg.h
--- udev-121/extras/scsi_id/bsg.h.bsg 2008-05-16 12:04:38.000000000 +0200
+++ udev-121/extras/scsi_id/bsg.h 2008-05-16 12:04:28.000000000 +0200
@@ -0,0 +1,78 @@
+#ifndef BSG_H
+#define BSG_H
+
+#define BSG_PROTOCOL_SCSI 0
+
+#define BSG_SUB_PROTOCOL_SCSI_CMD 0
+#define BSG_SUB_PROTOCOL_SCSI_TMF 1
+#define BSG_SUB_PROTOCOL_SCSI_TRANSPORT 2
+
+struct sg_io_v4 {
+ __s32 guard; /* [i] 'Q' to differentiate from v3 */
+ __u32 protocol; /* [i] 0 -> SCSI , .... */
+ __u32 subprotocol; /* [i] 0 -> SCSI command, 1 -> SCSI task
+ management function, .... */
+
+ __u32 request_len; /* [i] in bytes */
+ __u64 request; /* [i], [*i] {SCSI: cdb} */
+ __u64 request_tag; /* [i] {SCSI: task tag (only if flagged)} */
+ __u32 request_attr; /* [i] {SCSI: task attribute} */
+ __u32 request_priority; /* [i] {SCSI: task priority} */
+ __u32 request_extra; /* [i] {spare, for padding} */
+ __u32 max_response_len; /* [i] in bytes */
+ __u64 response; /* [i], [*o] {SCSI: (auto)sense data} */
+
+ /* "dout_": data out (to device); "din_": data in (from device) */
+ __u32 dout_iovec_count; /* [i] 0 -> "flat" dout transfer else
+ dout_xfer points to array of iovec */
+ __u32 dout_xfer_len; /* [i] bytes to be transferred to device */
+ __u32 din_iovec_count; /* [i] 0 -> "flat" din transfer */
+ __u32 din_xfer_len; /* [i] bytes to be transferred from device */
+ __u64 dout_xferp; /* [i], [*i] */
+ __u64 din_xferp; /* [i], [*o] */
+
+ __u32 timeout; /* [i] units: millisecond */
+ __u32 flags; /* [i] bit mask */
+ __u64 usr_ptr; /* [i->o] unused internally */
+ __u32 spare_in; /* [i] */
+
+ __u32 driver_status; /* [o] 0 -> ok */
+ __u32 transport_status; /* [o] 0 -> ok */
+ __u32 device_status; /* [o] {SCSI: command completion status} */
+ __u32 retry_delay; /* [o] {SCSI: status auxiliary information} */
+ __u32 info; /* [o] additional information */
+ __u32 duration; /* [o] time to complete, in milliseconds */
+ __u32 response_len; /* [o] bytes of response actually written */
+ __s32 din_resid; /* [o] din_xfer_len - actual_din_xfer_len */
+ __s32 dout_resid; /* [o] dout_xfer_len - actual_dout_xfer_len */
+ __u64 generated_tag; /* [o] {SCSI: transport generated task tag} */
+ __u32 spare_out; /* [o] */
+
+ __u32 padding;
+};
+
+#ifdef __KERNEL__
+
+#if defined(CONFIG_BLK_DEV_BSG)
+struct bsg_class_device {
+ struct class_device *class_dev;
+ struct device *dev;
+ int minor;
+ struct request_queue *queue;
+};
+
+extern int bsg_register_queue(struct request_queue *, struct device *, const char *);
+extern void bsg_unregister_queue(struct request_queue *);
+#else
+static inline int bsg_register_queue(struct request_queue * rq, struct device *dev, const char *name)
+{
+ return 0;
+}
+static inline void bsg_unregister_queue(struct request_queue *rq)
+{
+}
+#endif
+
+#endif /* __KERNEL__ */
+
+#endif
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/udev/devel/.cvsignore,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- .cvsignore 4 Apr 2008 13:35:38 -0000 1.48
+++ .cvsignore 16 May 2008 10:11:19 -0000 1.49
@@ -1 +1 @@
-udev-120.tar.bz2
+udev-121.tar.bz2
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/udev/devel/sources,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- sources 4 Apr 2008 13:35:38 -0000 1.48
+++ sources 16 May 2008 10:11:19 -0000 1.49
@@ -1 +1 @@
-71d10400458de14f6e46f52a1a591532 udev-120.tar.bz2
+abd3833ba457cdc0cb5163a8bb7ca5d9 udev-121.tar.bz2
Index: udev.spec
===================================================================
RCS file: /cvs/pkgs/rpms/udev/devel/udev.spec,v
retrieving revision 1.244
retrieving revision 1.245
diff -u -r1.244 -r1.245
--- udev.spec 23 Apr 2008 15:45:38 -0000 1.244
+++ udev.spec 16 May 2008 10:11:19 -0000 1.245
@@ -5,8 +5,8 @@
Summary: A userspace implementation of devfs
Name: udev
-Version: 120
-Release: 5.20080421git%{?dist}
+Version: 121
+Release: 1.20080516git%{?dist}
License: GPLv2
Group: System Environment/Base
Provides: udev-persistent = %{version}-%{release}
@@ -19,26 +19,26 @@
Source4: fw_unit_symlinks.sh
Source5: udev.sysconfig
-Patch1: 0001-writing-udev-rules-fix-rule-typos.patch
-Patch2: 0002-udevinfo-do-not-replace-chars-when-printing-ATTR.patch
-Patch3: 0003-vol_id-add-offset-option.patch
-Patch4: 0004-cdrom_id-replace-with-version-which-also-exports-me.patch
-Patch5: 0005-udevd-at-startup-write-message-including-version-nu.patch
-Patch6: 0006-rules_generator-net-rules-always-add-KERNEL-mat.patch
-Patch7: 0007-selinux-more-context-settings.patch
-Patch8: 0008-selinux-fix-missing-includes.patch
-Patch9: 0009-allow-setting-of-MODE-0000.patch
-Patch10: 0010-path_id-remove-subsystem-whitelist.patch
-Patch11: 0011-logging-add-trailing-newline-to-all-strings.patch
-Patch12: 0012-scsi_id-initialize-serial-strings.patch
-Patch13: 0013-persistent-device-naming-also-read-unpartitioned-me.patch
-
+Patch1: 0001-volume_id-clean-up-linux_raid-code.patch
+Patch2: 0002-man-udevd-fix-udev-8-reference.patch
+Patch3: 0003-man-scsi_id.patch
+Patch4: 0004-scsi_id-remove-all-sysfs-dependencies.patch
+Patch5: 0005-scsi_id-add-SGv4-support.patch
+Patch6: 0006-scsi_id-update-man-page.patch
+Patch7: 0007-scsi_id-remove-bus_id-option.patch
+Patch8: 0008-scsi_id-add-sg-version-option.patch
+Patch9: 0009-rules-adapt-to-new-scsi_id.patch
+Patch10: 0010-rules-adapt-tape-rules-to-new-scsi_id.patch
+Patch11: 0011-cdrom_id-fix-segfault.patch
+Patch12: udev-121-bsg.patch
Patch101: udev-116-nettype.patch
Patch102: udev-118-sysconf.patch
Patch103: udev-089-nopie.patch
Patch104: udev-091-lib64.patch
+Patch200: udev-120-rhrules.patch
+
ExclusiveOS: Linux
URL: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -99,8 +99,7 @@
%patch9 -p1 -b .git9
%patch10 -p1 -b .git10
%patch11 -p1 -b .git11
-%patch12 -p1 -b .git12
-%patch13 -p1 -b .git13
+%patch12 -p1 -b .bsg
%patch101 -p1 -b .nettype
%patch102 -p1 -b .sysconf
@@ -108,6 +107,8 @@
%patch103 -p1 -b .nopie
%patch104 -p1 -b .lib64
+%patch200 -p1 -b .rhrules
+
%build
%if %{with_static}
@@ -422,6 +423,12 @@
%{_libdir}/pkgconfig/libvolume_id.pc
%changelog
+* Fri May 16 2008 Harald Hoyer <harald at redhat.com> 121-1.20080516git
+- version 121 + latest git fixes
+
+* Thu Apr 24 2008 Harald Hoyer <harald at redhat.com> 120-6.20080421git
+- added input/hp_ilo_mouse symlink
+
* Mon Apr 21 2008 Harald Hoyer <harald at redhat.com> 120-4.20080421git
- added patches from git:
- persistent device naming: also read unpartitioned media
--- 0001-writing-udev-rules-fix-rule-typos.patch DELETED ---
--- 0002-udevinfo-do-not-replace-chars-when-printing-ATTR.patch DELETED ---
--- 0003-vol_id-add-offset-option.patch DELETED ---
--- 0004-cdrom_id-replace-with-version-which-also-exports-me.patch DELETED ---
--- 0005-udevd-at-startup-write-message-including-version-nu.patch DELETED ---
--- 0006-rules_generator-net-rules-always-add-KERNEL-mat.patch DELETED ---
--- 0007-selinux-more-context-settings.patch DELETED ---
--- 0008-selinux-fix-missing-includes.patch DELETED ---
--- 0009-allow-setting-of-MODE-0000.patch DELETED ---
--- 0010-path_id-remove-subsystem-whitelist.patch DELETED ---
--- 0011-logging-add-trailing-newline-to-all-strings.patch DELETED ---
--- 0012-scsi_id-initialize-serial-strings.patch DELETED ---
--- 0013-persistent-device-naming-also-read-unpartitioned-me.patch DELETED ---
- Previous message (by thread): rpms/audacity README,1.15,1.16
- Next message (by thread): rpms/mono-tools/F-9 mono-tools.patch, NONE, 1.1 mono-tools.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list