forked from pool/systemd
Accepting request 155320 from Base:System
- rework patch: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch - udev: use unique names for temporary files created in /dev. add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch - cdrom_id: add data track count for bad virtual drive. add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch - rework patch: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch - udev: use unique names for temporary files created in /dev. add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch - cdrom_id: add data track count for bad virtual drive. add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch (forwarded request 155319 from rmilasan) OBS-URL: https://build.opensuse.org/request/show/155320 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=128
This commit is contained in:
parent
98354dd2e0
commit
8456f90f72
@ -2,7 +2,7 @@ Index: systemd-195/Makefile.am
|
||||
===================================================================
|
||||
--- systemd-195.orig/Makefile.am
|
||||
+++ systemd-195/Makefile.am
|
||||
@@ -2265,6 +2265,8 @@ dist_udevkeymap_DATA = \
|
||||
@@ -2246,6 +2246,8 @@ dist_udevkeymap_DATA = \
|
||||
keymaps/hewlett-packard-presario-2100 \
|
||||
keymaps/hewlett-packard-tablet \
|
||||
keymaps/hewlett-packard-tx2 \
|
||||
|
@ -9,10 +9,10 @@ Subject: [PATCH] usb_id: some strange devices have a very bogus or strange seria
|
||||
src/udev/udev-builtin-usb_id.c | 23 +++++++++++++++++++++++
|
||||
1 file changed, 23 insertions(+)
|
||||
|
||||
diff --git a/src/udev/udev-builtin-usb_id.c b/src/udev/udev-builtin-usb_id.c
|
||||
index 7ce401d..9e407c5 100644
|
||||
--- a/src/udev/udev-builtin-usb_id.c
|
||||
+++ b/src/udev/udev-builtin-usb_id.c
|
||||
Index: systemd-195/src/udev/udev-builtin-usb_id.c
|
||||
===================================================================
|
||||
--- systemd-195.orig/src/udev/udev-builtin-usb_id.c
|
||||
+++ systemd-195/src/udev/udev-builtin-usb_id.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -25,7 +25,7 @@ index 7ce401d..9e407c5 100644
|
||||
|
||||
#include "udev.h"
|
||||
|
||||
+static bool validate_string(const char *str)
|
||||
+static bool valid_string(const char *str)
|
||||
+{
|
||||
+ const char *s;
|
||||
+
|
||||
@ -48,15 +48,16 @@ index 7ce401d..9e407c5 100644
|
||||
static void set_usb_iftype(char *to, int if_class_num, size_t len)
|
||||
{
|
||||
const char *type = "generic";
|
||||
@@ -431,6 +452,8 @@ fallback:
|
||||
const char *usb_serial;
|
||||
@@ -428,10 +449,10 @@ fallback:
|
||||
}
|
||||
|
||||
if (serial_str[0] == '\0') {
|
||||
- const char *usb_serial;
|
||||
+ const char *usb_serial = NULL;
|
||||
|
||||
usb_serial = udev_device_get_sysattr_value(dev_usb, "serial");
|
||||
+ if (!validate_string(usb_serial))
|
||||
+ usb_serial = NULL;
|
||||
if (usb_serial) {
|
||||
- if (usb_serial) {
|
||||
+ if (valid_string(usb_serial)) {
|
||||
util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1);
|
||||
util_replace_chars(serial_str, NULL);
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,57 @@
|
||||
Index: systemd-195/src/udev/udev-node.c
|
||||
===================================================================
|
||||
--- systemd-195.orig/src/udev/udev-node.c
|
||||
+++ systemd-195/src/udev/udev-node.c
|
||||
@@ -31,15 +31,13 @@
|
||||
|
||||
#include "udev.h"
|
||||
|
||||
-#define TMP_FILE_EXT ".udev-tmp"
|
||||
-
|
||||
-static int node_symlink(struct udev *udev, const char *node, const char *slink)
|
||||
+static int node_symlink(struct udev_device *dev, const char *node, const char *slink)
|
||||
{
|
||||
struct stat stats;
|
||||
char target[UTIL_PATH_SIZE];
|
||||
char *s;
|
||||
size_t l;
|
||||
- char slink_tmp[UTIL_PATH_SIZE + sizeof(TMP_FILE_EXT)];
|
||||
+ char slink_tmp[UTIL_PATH_SIZE + 32];
|
||||
int i = 0;
|
||||
int tail = 0;
|
||||
int err = 0;
|
||||
@@ -101,7 +99,7 @@ static int node_symlink(struct udev *ude
|
||||
}
|
||||
|
||||
log_debug("atomically replace '%s'\n", slink);
|
||||
- util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, TMP_FILE_EXT, NULL);
|
||||
+ util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, ".tmp-", udev_device_get_id_filename(dev), NULL);
|
||||
unlink(slink_tmp);
|
||||
do {
|
||||
err = mkdir_parents_label(slink_tmp, 0755);
|
||||
@@ -204,7 +202,7 @@ static void link_update(struct udev_devi
|
||||
util_delete_path(udev, slink);
|
||||
} else {
|
||||
log_debug("creating link '%s' to '%s'\n", slink, target);
|
||||
- node_symlink(udev, target, slink);
|
||||
+ node_symlink(dev, target, slink);
|
||||
}
|
||||
|
||||
if (add) {
|
||||
@@ -304,7 +302,6 @@ out:
|
||||
|
||||
void udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
|
||||
{
|
||||
- struct udev *udev = udev_device_get_udev(dev);
|
||||
char filename[UTIL_PATH_SIZE];
|
||||
struct udev_list_entry *list_entry;
|
||||
|
||||
@@ -318,7 +315,7 @@ void udev_node_add(struct udev_device *d
|
||||
snprintf(filename, sizeof(filename), "/dev/%s/%u:%u",
|
||||
strcmp(udev_device_get_subsystem(dev), "block") == 0 ? "block" : "char",
|
||||
major(udev_device_get_devnum(dev)), minor(udev_device_get_devnum(dev)));
|
||||
- node_symlink(udev, udev_device_get_devnode(dev), filename);
|
||||
+ node_symlink(dev, udev_device_get_devnode(dev), filename);
|
||||
|
||||
/* create/update symlinks, add symlinks to name index */
|
||||
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev))
|
@ -0,0 +1,51 @@
|
||||
From a0ec302b9309bc56f6bed6162e47ad6c27165747 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Tue, 12 Feb 2013 15:19:38 +0100
|
||||
Subject: [PATCH] cdrom_id: add data track count for bad virtual drive
|
||||
implementations
|
||||
Organization: SUSE Linux
|
||||
|
||||
/# /lib/udev/cdrom_id --debug /dev/sr0
|
||||
probing: '/dev/sr0'
|
||||
INQUIRY: [AMI ][Virtual CDROM ][1.00]
|
||||
GET CONFIGURATION failed with SK=5h/ASC=20h/ACQ=00h
|
||||
drive is pre-MMC2 and does not support 46h get configuration command
|
||||
trying to work around the problem
|
||||
READ DISC INFORMATION failed with SK=5h/ASC=20h/ACQ=00h
|
||||
no current profile, but disc is present; assuming CD-ROM
|
||||
READ TOC: len: 12, start track: 1, end track: 1
|
||||
last track 1 starts at block 0
|
||||
READ DISC INFORMATION failed with SK=5h/ASC=20h/ACQ=00h
|
||||
ID_CDROM=1
|
||||
ID_CDROM_MEDIA=1
|
||||
ID_CDROM_MEDIA_CD=1
|
||||
|
||||
What is missing here is ID_CDROM_MEDIA_TRACK_COUNT_DATA to trigger
|
||||
blkid in /lib/udev/rules.d/60-persistent-storage.rules
|
||||
|
||||
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*",
|
||||
ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*",
|
||||
ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \
|
||||
IMPORT{builtin}="blkid --noraid"
|
||||
|
||||
Signed-off-by: Robert Milasan <rmilasan@suse.com>
|
||||
---
|
||||
src/udev/cdrom_id/cdrom_id.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c
|
||||
index 1056536..b659cc3 100644
|
||||
--- a/src/udev/cdrom_id/cdrom_id.c
|
||||
+++ b/src/udev/cdrom_id/cdrom_id.c
|
||||
@@ -513,6 +513,8 @@ static int cd_profiles_old_mmc(struct udev *udev, int fd)
|
||||
if (cd_media == 1) {
|
||||
log_debug("no current profile, but disc is present; assuming CD-ROM\n");
|
||||
cd_media_cd_rom = 1;
|
||||
+ cd_media_track_count = 1;
|
||||
+ cd_media_track_count_data = 1;
|
||||
return 0;
|
||||
} else {
|
||||
log_debug("no current profile, assuming no media\n");
|
||||
--
|
||||
1.7.7
|
||||
|
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- rework patch:
|
||||
1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
|
||||
- udev: use unique names for temporary files created in /dev.
|
||||
add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
- cdrom_id: add data track count for bad virtual drive.
|
||||
add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
|
@ -308,6 +308,10 @@ Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch
|
||||
Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
|
||||
# PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch
|
||||
Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch
|
||||
# PATCH-FIX-UPSTREAM 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
# PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -489,6 +493,8 @@ cp %{SOURCE7} m4/
|
||||
%patch1019 -p1
|
||||
%patch1020 -p1
|
||||
%patch1021 -p1
|
||||
%patch1022 -p1
|
||||
%patch1023 -p1
|
||||
|
||||
#systemd
|
||||
%patch1 -p1
|
||||
|
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 13 11:34:06 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
- rework patch:
|
||||
1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
|
||||
- udev: use unique names for temporary files created in /dev.
|
||||
add: 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
- cdrom_id: add data track count for bad virtual drive.
|
||||
add: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 12 09:16:23 UTC 2013 - rmilasan@suse.com
|
||||
|
||||
|
@ -303,6 +303,10 @@ Patch1019: 1019-udev-Fix-device-matching-in-the-accelerometer.patch
|
||||
Patch1020: 1020-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
|
||||
# PATCH-FIX-OPENSUSE 1021-create-default-links-for-primary-cd_dvd-drive.patch
|
||||
Patch1021: 1021-create-default-links-for-primary-cd_dvd-drive.patch
|
||||
# PATCH-FIX-UPSTREAM 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
Patch1022: 1022-udev-use-unique-names-for-temporary-files-created-in.patch
|
||||
# PATCH-FIX-UPSTREAM 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
Patch1023: 1023-cdrom_id-add-data-track-count-for-bad-virtual-drive.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -484,6 +488,8 @@ cp %{SOURCE7} m4/
|
||||
%patch1019 -p1
|
||||
%patch1020 -p1
|
||||
%patch1021 -p1
|
||||
%patch1022 -p1
|
||||
%patch1023 -p1
|
||||
|
||||
#systemd
|
||||
%patch1 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user