David Zeuthen [Mon, 11 Oct 2010 16:01:04 +0000 (12:01 -0400)]
Install libgudev-1.0.so in prefix / instead of prefix /usr
This is to match where libudev.so is installed and it works because
all dependent libraries are already installed in / instead of /usr on
most distros:
With this change it is possible to write libgudev applications that
can be installed in /bin or /sbin and can run without /usr being
mounted. This is needed for e.g. udisks, NetworkManager and other
subsystem-specific daemons.
Harald Hoyer [Thu, 7 Oct 2010 15:02:21 +0000 (17:02 +0200)]
cdrom_id: request the drive profile features with a dynamic length
Some drives don't like huge feature buffers, so we query twice. First
run for the current profile and to get the length.
Second time we query the whole profile feature set.
Martin Pitt [Tue, 5 Oct 2010 15:56:19 +0000 (17:56 +0200)]
cdrom_id: Don't read beyond "last track" in TOC
Read the first and last track from the TOC header, and do not go beyond that
stated number of tracks when reading the TOC. Otherwise we interpret random
data which leads to bogus tracks. (Reported on an IronKey, which reported 1
data track, and 4 audio tracks which weren't actually present.)
Martin Pitt [Tue, 5 Oct 2010 12:59:51 +0000 (14:59 +0200)]
cdrom_id: Fall back to CDROM_DRIVE_STATUS if all MMC commands fail
Reportedly, some "when I'm grown up I want to be a CD drive" fake USB CD sticks
like the IronKey neither support the SCSI "GET CONFIGURATION" nor the older
(pre-MMC2) "READ DISC INFORMATION" command. In that case, check if
cd_media_compat() detected that there is a disc present, and assume that we
have a CD-ROM medium.
Martin Pitt [Tue, 5 Oct 2010 12:34:55 +0000 (14:34 +0200)]
cdrom_id: Try reading the medium if all MMC commands fail
Reportedly, some "when I'm grown up I want to be a CD drive" fake USB CD sticks
like the IronKey neither support the SCSI "GET CONFIGURATION" nor the older
(pre-MMC2) "READ DISC INFORMATION" command. In that case, check if we can read
data from the drive, and assume that we have a CD-ROM medium if it succeeds.
Martin Pitt [Tue, 21 Sep 2010 10:45:52 +0000 (12:45 +0200)]
Add automatic rules syntax check
Add test/rule-syntax-check.py, a script for checking the syntax of all udev
rules files passed as command line arguments.
Add a wrapper test/rules-test.sh which calls rule-syntax-check.py on all udev
rules that we ship, but does nothing if Python is not available. Integrate this
into make check/distcheck.
David Zeuthen [Tue, 7 Sep 2010 15:01:23 +0000 (11:01 -0400)]
gudev: Deliver ::uevent signal in the thread-default main loop
... that the GUdevClient object was constructed in. This change makes
GUdev follow the GLib guidelines and, more importantly, makes it
possible to actually use the library in a multi-threaded
application. Prior to this patch, signals were emitted in the thread
that ran the "default" main loop.
Michal Soltys [Fri, 3 Sep 2010 08:53:26 +0000 (10:53 +0200)]
ChangeLog fix
In v141 -> v142 entry, there's a note about udevd creating
/dev/{null,kmsg,console}. It was added in commit 540f46698dd5a3b,
but shortly after that removed in a00bdfa16b9bac7 before v142
release.
Martin Pitt [Thu, 2 Sep 2010 06:39:12 +0000 (08:39 +0200)]
do not create persistent name rules for VMWare network interfaces
Not generating persistent MAC address rules will significantly ease cloning of
VMs. The kernel reliably sorts eth* enumeration by bus number, so as long as
you only have cards from one vendor (or more precisely, drivers), the
enumeration will be stable. Having cards from different vendors is very
unlikely in VMs.
KVM was already covered in the previous commit, this is the equivalent
blacklist for VMWare:
Jan Drzewiecki [Mon, 30 Aug 2010 22:37:28 +0000 (00:37 +0200)]
cdrom_id: Fix DVD blank detection for sloppy firmware
Reportedly, many CD drive firmwares will only consider the MSB in a READ
command, thus if we request 17 blocks to be read, we'll actually only get 16 in
many cases, and thus miss out the interesting sector #17. This would lead to
falsely considering nonempty DVDs as blank.
Fetch 32 blocks now, which should work everywhere.
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
Martin Pitt [Mon, 30 Aug 2010 13:33:26 +0000 (15:33 +0200)]
cdrom_id: Fix DVD-RW media detection
Commit cf2205a19 applied the "restricted overwrite" vs. "sequential" DVD-RW
test to feature_profiles() (which reads the drive capabilities), which caused
every DVD medium to be detected as ID_CDROM_MEDIA_DVD_RW. Now apply it to
cd_profiles() instead, to just check the current profile.
Luca Tettamanti [Mon, 23 Aug 2010 12:35:37 +0000 (14:35 +0200)]
Add support for oom_score_adj
/proc/<pid>/oom_adj has been deprecated (kernel v2.6.36) due to the
rework of the badness heuristic; oom_score_adj is the replacement.
Keep a fallback to the old interface for compatibility with older
kernels.
Martin Pitt [Fri, 20 Aug 2010 10:19:23 +0000 (12:19 +0200)]
udev(7): Point out required extension, and remove some confusion
Rules files must end in .rules.
Also drop the redundant and confusing sentence about "file names must be
unique". What is really meant is explained in a better way in the paragraph
above.
Jan Drzewiecki [Fri, 13 Aug 2010 05:24:29 +0000 (07:24 +0200)]
cdrom_id: Drop MEDIA_SESSION_NEXT for DVD-RW-RO
Commit cf2205a fixed the media status for fresh DVD-RW in restricted overwrite
mode, but missed a detail: We should not report the ID_CDROM_MEDIA_SESSION_NEXT
property either, since in that mode you can never append tracks/sessions; this
just works in sequential mode.
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
Kay Sievers [Wed, 11 Aug 2010 12:34:32 +0000 (14:34 +0200)]
do not rename the database on device rename
Harald Hoyer discovered some incorrect behavior while debugging
problems with network interface renaming:
Udev events might be queued for devices which are renamed. A new
device registered the same time may claime the old name and create
a database entry for it. The current rename logic would move over
this databse entry to the wrong device.
Jan Drzewiecki [Tue, 10 Aug 2010 21:37:14 +0000 (23:37 +0200)]
cdrom_id: Fix state for fresh DVD-RW
Fresh DVD-RW in restricted overwite mode reports itself as "appendable"; change
it to "blank" to make it consistent with what gets reported after blanking, and
what userspace expects.
For the exotic case where some uses multi-track recording on a DVD-RW in
sequential mode, we need to tell apart sequential and restricted overwrite
modes, so keep separate states for them internally.
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
Harald Hoyer [Tue, 10 Aug 2010 14:41:24 +0000 (16:41 +0200)]
udev-event.c: rename interface to <src>-<dest>, if <dest> taken
e.g. if eth0 should be eth3 and eth3 is waiting to be renamed,
eth0 was renamed to eth0_rename. The kernel would take eth0 as the name
for a new interface and this new eth0 could also become eth0_rename, if
the target name is also taken. To prevent this name clash, the
interfaces are now renamed to <src>-<dest> and the rename is logged.
Richard Hughes [Mon, 9 Aug 2010 10:41:18 +0000 (11:41 +0100)]
udev-acl: add DDC_DEVICE to the types that are managed
DDC_DEVICEs are control points for high-end monitors such as the
HP DreamColor. The DDC/CI interface allows userspace applications
to upload custom colorspaces and interact with the display without
using the monitor hardware controls.
Yin Kangkai [Fri, 6 Aug 2010 07:08:51 +0000 (15:08 +0800)]
udev: fix compile warning
CC udev/udevd.o
In file included from udev/udev.h:27,
from udev/udevd.c:47:
./libudev/libudev-private.h: In function ‘udev_selinux_setfscreateconat’:
./libudev/libudev-private.h:230: warning: declaration of ‘dirfd’ shadows a global declaration
/usr/include/dirent.h:224: warning: shadowed declaration is here
Signed-off-by: Yin Kangkai <kangkai.yin@intel.com> Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
Jan Drzewiecki [Sun, 8 Aug 2010 15:57:47 +0000 (17:57 +0200)]
cdrom_id: Handle pre-MMC2 drives
Those do not yet support the 0x46 "GET CONFIGURATION" support. If we have
those, fall back to the 0x51 "READ DISC INFORMATION" call. This can only
differentiate between CD-RW and CD-R, but first that's better than a complete
detection failure, and second, those old drives likely don't support more
modern media in the first place.
https://launchpad.net/bugs/502143
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
Jan Drzewiecki [Sun, 8 Aug 2010 15:47:08 +0000 (17:47 +0200)]
cdrom_id: Fix detection of reblanked DVD+RW and DVD-RAM
Once formatted, DVD+RW and DVD-RAM discs are always reported "complete" by the
drive. Check the if the Volume Descriptor or Volume Descriptor Anchor sectors
are empty, and if so, set the status to blank. If the disc is unformatted the
blank status is maintained and no reads are issued. If the disc is formatted and
read command fails, the status remains set to complete to avoid accidental
blanking.
Bug-Ubuntu: https://launchpad.net/bugs/581925
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
Kay Sievers [Thu, 5 Aug 2010 16:55:57 +0000 (18:55 +0200)]
udev-acl: remove specific device matches from the rules file
We should do only do classes of devices, not individual pieces
of hardware.
There is no way for us to manage this in the long term, and it needs
to be thought through what we want here, but it surely isn't a list of
smartphones in the udev source tarball installed on all systems.
Michal Schmidt [Wed, 4 Aug 2010 09:53:25 +0000 (11:53 +0200)]
udev-acl: really fix ACL assignment in CK events
The previous fix for udev-acl was incomplete. The ACL were not properly
assigned to the new user when switching from root's session because of
the test for 'uid != 0'.
Centralize the special handling of root to a single place (in set_facl).
Kay Sievers [Tue, 3 Aug 2010 13:09:46 +0000 (15:09 +0200)]
udev-acl: properly handle CK change events for root user
mschmidt@redhat.com writes:
> since root is treated specially, it does not do anything!
> udev-acl may want to prevent removing ACLs from root, but
> it must not stop the ACLs being granted to the user of the
> new session.
Martin Pitt [Sun, 1 Aug 2010 19:59:58 +0000 (21:59 +0200)]
keymap: Generalize Samsung keymaps
Fortunato Ventre (voRia) <vorione@gmail.com> reports a lot more Samsung models
which need the "samsung-other" keymap. Instead of eternally playing catchup,
apply it to all Samsung models for now, and keep the two known special cases.
Stefan Richter [Sun, 11 Jul 2010 10:32:12 +0000 (12:32 +0200)]
rules: add more FireWire IDs: Point Grey IIDC; AV/C + vendor unique
1. IIDC cameras from Point Grey use the vendor OUI as Specifier_ID
instead of the 1394 TA's OUI but are otherwise fully compliant to the
IIDC spec. Their device files should be accessible like those of any
other IIDC cameras.
2. Originally, the Software_Version of devices that implement FCP
(IEC 61883-1 Function Control Protocol) was meant to be a bitmap of all
command sets that an FCP capable unit supports. Bitmap flags are
defined for AV/C, CAL, EHS, HAVi, and vendor unique command sets.
Software_Version was revised to be a simple identifier instead, and
devices that support several command sets were meant to instantiate one
unit directory for each command set. Still, some devices with the flags
for AV/C and vendor unique command sets combined were released (but
apparently no devices with any other flag combinations). These rare but
existing AV/C + vendor unique devices need to be accessible just like
plain AV/C devices.
Side notes:
- Many AV/C devices make use of the Vendor Dependent AV/C command, but
this is unrelated to vendor unique FCP command sets.
- Here are all standardized FireWire protocol identifiers that I know
of, listed as Specifier_ID:Software_Version | specifier | protocol.
0x00005e:0x000001 | IANA | IPv4 over 1394 (RFC 2734)
0x00005e:0x000002 | IANA | IPv6 over 1394 (RFC 3146)
0x00609e:0x010483 | INCITS | SBP-2 (or SCSI command sets over SBP-3)
0x00609e:0x0105bb | INCITS | AV/C over SBP-3
0x00a02d:0x010001 | 1394 TA | AV/C (over FCP)
0x00a02d:0x010002 | 1394 TA | CAL
0x00a02d:0x010004 | 1394 TA | EHS
0x00a02d:0x010008 | 1394 TA | HAVi
0x00a02d:0x014000 | 1394 TA | Vendor Unique
0x00a02d:0x014001 | 1394 TA | Vendor Unique and AV/C (over FCP)
0x00a02d:0x000100 | 1394 TA | IIDC 1.04
0x00a02d:0x000101 | 1394 TA | IIDC 1.20
0x00a02d:0x000102 | 1394 TA | IIDC 1.30
0x00a02d:0x0A6BE2 | 1394 TA | DPP 1.0
0x00a02d:0x4B661F | 1394 TA | IICP 1.0
For now we are only interested in udev rules for AV/C and IIDC.