+Summary of changes from v141 to v142
+============================================
+
+Andre Przywara (1):
+ rules: create /dev/cpu/<n>/cpuid world readable
+
+Ian Campbell (1):
+ path_id: support identification of Xen virtual block devices
+
+John Wright (1):
+ edd_id: add cciss devices
+
+Kay Sievers (46):
+ version bump
+ libudev: path_encode - always return 0 if encoded string does not fit into size
+ libudev: monitor - clarify socket handling documentation
+ udevd: log error for too old kernels or CONFIG_SYSFS_DEPRECATED
+ rules: remove DVB shell script
+ update NEWS
+ cdrom_id: add Xen cdrom support
+ test-libudev: update monitor source
+ TODO: add packet filter
+ update NEWS
+ udevd: at startup create /dev/null, /dev/console, /dev/kmsg
+ cdrom_id: add and use ID_CDROM_MEDIA to decide if we run vol_id
+ libudev: monitor - add client socket filter for subsystem value
+ udevadm: monitor - print error if we can not bind to socket
+ update TODO
+ udevadm monitor - add --subsystem-match=
+ libudev: monitor - use simpler hash
+ libudev: monitor - switch to filter_add_match_subsystem_devtype()
+ libudev: monitor - do not filter messages with wrong magic
+ udevadm: monitor - add <subsytem>:<devtype> support
+ libudev: monitor - add udev_monitor_filter_remove
+ libudev: queue - fix get_seqnum_is_finished()
+ cdrom_id: skip media tests if CDROM_DRIVE_STATUS != CDS_DISC_OK
+ libudev: queue - clarify comments
+ libudev: monitor - export filter_update()
+ update NEWS
+ drop "extern" keyword from non-static function
+ rule_generator: net - fix usb comment generation
+ rules: input - add links for USB/platform non-kbd/mouse devices
+ rules: input - fix comments
+ rules: add rfcomm* to group dialout
+ accept DEVNAME from the kernel as a hint for the node name
+ update TODO
+ build: use AC_MSG_RESULT
+ rules: add "event*" match
+ udevd: revert initial device node creation
+ rules: remove initramfs comment
+ handle devtmpfs nodes
+ oops, removed ppp entry from rules got committed
+ remove all PHYSDEVPATH handling and warning about
+ remove asmlinkage
+ rules: fix ieee1394 rules
+ add "static" back to the inline functions
+ update TODO
+ delete vol_id and require util-linux-ng's blkid
+ delete libvolume_id
+
+Lubomir Rintel (1):
+ rule-generator: net - whitelist NICs that violate MAC local scheme
+
+
+Summary of changes from v140 to v141
+============================================
+
+Adam Buchbinder (4):
+ usb_id: add manpage
+ cdrom_id: update manpage
+ create_floppy_devices: expand manpage
+ vol_id: fix language in manpage
+
+Alan Jenkins (1):
+ avoid leaking netlink socket fd to external programs
+
+Borislav Petkov (1):
+ rules: rename ide-floppy to ide-gd
+
+David Brownell (1):
+ rules: exclude mtd* from persistent disk links
+
+Kay Sievers (15):
+ rules: fix extra quote in 50-udev-default.rules
+ version bump
+ udevadm: test - handling trailing '/' in devpath
+ udevadm: monitor - clarify printed header
+ rules: remove ram* from persisten disk links blacklist
+ rules: serial - support ttyACM devices
+ rules: replace IDE driver with media match
+ usb_id: add ID_VENDOR_ID, ID_MODEL_ID, ID_USB_INTERFACE_NUM, ID_USB_DRIVER
+ libudev: GPL -> LGPL
+ usb_id: remove unused variable
+ send monitor events back to netlink socket
+ "UDEV_MONITOR_KERNEL/UDEV" -> "kernel/udev"
+ IMPORT: 2048 -> 4096 bytes buffer
+ path_encode: fix max length calculation
+ libudev: monitor - unify socket message handling
+
+Michal Soltys (1):
+ rules: md-raid.rules fix
+
+Robby Workman (1):
+ udevadm: trigger - add "--action" to --help
+
+Scott James Remnant (1):
+ libudev: monitor - ignore messages from unusual sources
+
+
+Summary of changes from v139 to v140
+============================================
+
+Harald Hoyer (1):
+ libvolume_id: bump age
+
+Kay Sievers (12):
+ version bump
+ update TODO
+ volume_id: ntfs - fix uuid setting
+ update TODO
+ rules: Fedora update
+ libudev: queue - use lstat() to check existence of symlink
+ udevadm: settle - add --seq-start= --seq-end=
+ udevd: switch watch symlinks to devpath
+ udevadm: add text for new options to command and man page
+ update TODO
+ libudev: ctrl - return error after sending ctrl message
+ udevadm: settle - use timeout signal, instead of loop counter
+
+Michael Prokop (1):
+ fix compile error in debug mode
+
+Scott James Remnant (1):
+ udevadm: settle - synchronise with the udev daemon
+
+
+Summary of changes from v138 to v139
+============================================
+
+Kay Sievers (11):
+ version bump
+ remove static local variable
+ use the event udev_device to disable the watch on "remove"
+ add "nowatch" to disable a default installed watch with a later rule
+ add m4/ subdir
+ use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE
+ usb_id: add ID_USB_INTERFACES=:0e0100:0e0200:010100:010200:
+ usb_id: return values if called directly for an usb_device
+ usb_id: fix NULL string usage
+ usb_id: fix comment
+ udevadm: info - export all devices with --export-db
+
+Scott James Remnant (10):
+ Don't add inotify watch until RUN rules processed.
+ Clear existing inotify watch before processing.
+ Cleanup a little.
+ Allow watch handle to be stored in the udevdb.
+ Store watch handle in db.
+ Use the udevdb to speed up watch clearing.
+ Put a log message in a more sensible place.
+ Output watch handle in udevadm info.
+ lookup the old watch handle; reload only if has a path
+ Look at more inotify events in the buffer than just the first.
+
+
+Summary of changes from v137 to v138
+============================================
+
+David Zeuthen (1):
+ *_id: add model/vendor enc strings
+
+Karel Zak (2):
+ vol_id: fix ddf version string
+ vol_id: add missing id->type to swap0
+
+Kay Sievers (13):
+ man: fix grammar
+ version bump
+ fix NAME="" logic
+ rules: dm - add escape for uuid links with whitespace
+ test: add test for empty and non-existent ATTR
+ rules: fix md "change"/"remove" handling
+ autogen.sh: add more warnings
+ fix NAME= and OPTION+="string_escape=..." logic
+ rules: move OPTIONS to separate rule
+ use global "reload_config" flag
+ rules: add "watch" option to dm and md rules
+ rules: include loop block devices in persistent links
+ release 138
+
+Matthias Schwarzott (1):
+ rules: Gentoo update
+
+Miklos Vajna (1):
+ doc: writing udev rules - refer to 'udevadm info' instead of 'udevinfo'
+
+Scott James Remnant (2):
+ udevd: optionally watch device nodes with inotify
+ rules: update persistent storage rules to use inotify watches
+
+
+Summary of changes from v136 to v137
+============================================
+
+Alan Jenkins (2):
+ man: typo fixes
+ remove stray initializer
+
+Kay Sievers (17):
+ version bump
+ rules: fix typo in ide cd rule
+ libudev: use 4096 bytes buffer for attribute reading
+ rules: add drm devices to group "video"
+ do not complain about a missing /etc/udev/rules.d/
+ udevadm: test - remove --force option
+ update NEWS
+ remove name from index if the node name has changed
+ cleanup old names before creating the new names
+ open-code pollfd setup
+ increase netif renaming timeout from 30 to 90 seconds
+ Merge commit '5f03ed8a56d308af72db8a48ab66ed68667af2c6'
+ Merge commit '9032f119f07ad3b5116b3d4858816d851d4127de'
+ split up long line
+ udevd: add back SA_RESTART
+ usb_id: handle ATAPI devices like SCSI devices
+ udevadm: settle - fix typo
+
+Lennart Poettering (1):
+ fix naming for tape nst devices in /dev/tape/by-path/
+
+Olaf Kirch (2):
+ udevd: use ppoll instead of signal pipes
+ reap children faster
+
+Scott James Remnant (2):
+ Allow user and group lookup to be disabled.
+ Expose delayed name resolution
+
+Sven Jost (1):
+ volume_id: support via raid version 2
+
+
+Summary of changes from v135 to v136
+============================================
+
+Adam Buchbinder (1):
+ extras: fix mis-spelling of "environment"
+
+Harald Hoyer (1):
+ rule_generator: fix enumeration for write_cd_rules
+
+Jeremy Higdon (1):
+ path_id: rework SAS persistent names
+
+Karel Zak (1):
+ volume_id: HPFS code clean up
+
+Kay Sievers (54):
+ rules: ATA_COMPAT do not try to match on sr*, it will never have vendor ATA
+ scsi_id: do not fail if no serial is found like for optical drives
+ update configure and NEWS
+ rules: fix isdn rules
+ rules: add persistent /dev/serial/{by-id,by-path} rules
+ make: install serial rules file
+ make: do not delete autotools generated file with distclean
+ udevadm: settle - allow --timeout=0 and --quiet
+ rules: move aoe rules to default rules file
+ volume_id: btrfs - update format
+ rules: add "do not edit header"
+ volume_id: support sub-uuid's and plug in btrfs device uuid
+ libudev: include <sys/types.h>
+ build: add -lsepol
+ build: just use autoreconf -i
+ rules: remove ide-scsi
+ rules: first simple step merging with Ubuntu rules
+ "'/sbin/modprobe abnormal' exit" - also print program options
+ rules: more changes toward Ubuntu rules merge
+ rules: more changes toward Ubuntu rules merge
+ rules: remove /dev/raw/raxctl symlink, it's a devfs leftover
+ rules: rtc - create rtc compat link only for cmos type rtc
+ rules: remove legacy symlinks
+ rules: do not put raw1394 in "video" group
+ rules: second round merging with Ubuntu rules
+ rules: remove /dev/dsp /dev/audio
+ rules: put alsa in group "audio"
+ rules: isdn - remove /dev/isdn/capi20 symlink
+ rules: provide /dev/raw/rawctl
+ if needed, store database entries also for devices which do not have a device node
+ build: use autoreconf --symlink
+ usb_id: add "image" class
+ require non-SYSFS_DEPRECATED 2.6.20+ kernel
+ build: default to --prefix=/usr --exec-prefix=""
+ libudev: enumerate - add lookup by property
+ rules: input - make sure needed variables are set
+ libudev: device - read "uevent" only if info is not already loaded
+ libudev: subsytem -> subsystem
+ libudev: bump revision
+ usb_id: use devtype lookup
+ require 2.6.22+ kernel
+ rules: Ubuntu merge - use group "cdrom"
+ rules: Ubuntu merge - use group "tape"
+ rules: replace DVB shell script rule
+ rules: Ubuntu merge - s/uucp/dialout/
+ update NEWS
+ update NEWS
+ enable skipping of "naming-only" rules
+ usb_id: s/image/media/
+ udevadm: s/udevinfo/udevadm info/
+ rules: reorder block rules
+ rules: zaptel - add "dialout" group
+ libudev: device - add udev_device_get_property_value()
+ libudev: test - add udev_device_get_property_value()
+
+Marcel Holtmann (3):
+ libudev: device - add devtype support
+ libudev: device - lookup subsystem and devtype together
+ libudev: device - remove udev_device_get_parent_with_subsystem
+
+Michal Soltys (1):
+ man: udev - update NAME assignment
+
+Ryan Thomas (1):
+ rules: add rules for AoE devices
+
+
+Summary of changes from v134 to v135
+============================================
+
+Kay Sievers (6):
+ usb_id: add "break" to currently unused case labels
+ rules: fix cciss disk/by-id/ links
+ rules: add infiniband rules
+ rules: infiniband.rules -> 40-infiniband.rules
+ fix network interface name swapping
+ update configure and NEWS
+
+Marcel Holtmann (1):
+ usb_id: fix switch statement for video type
+
+Piter PUNK (2):
+ rules: /dev/null -> X0R
+ rules: add usb device nodes
+
+
+Summary of changes from v133 to v134
+============================================
+
+Gabor Z. Papp (1):
+ include errno.h in sysdeps.h
+
+Harald Hoyer (1):
+ rules: add persistent rules for memory stick block devices
+
+Kay Sievers (19):
+ autogen.sh: fix -print-multi-os-directory usage
+ volume_id: update btrfs magic
+ bump version
+ rules: merge group "video" into default rules
+ rules: v4l - add by-id/ links for USB devices
+ libudev: accept NULL whitelist in util_replace_chars()
+ usb_id: replace chars in returned strings
+ ata_id: make sure, we do not have slashes in values
+ scsi_id: make sure, we do not have slashes in values
+ volume_id: remove unused usage types
+ vol_id: if regular files are probed, use stat() for the size value
+ volume_id: update btrfs
+ volume_id: clear probing result before probing and do not probe a second time, if not needed
+ path_id: fix fibre channel handling
+ update NEWS TODO
+ floppy: use ARRAY_SIZE()
+ fix handling of swapping node name with symlink name
+ silence PHYSDEV* warning for WAIT_FOR* rules
+ rules: exclude "btibm" devices from vol_id calls
+
+Matthias Schwarzott (1):
+ rules: Gentoo update
+
+Peter Breitenlohner (2):
+ man: fix typos
+ floppy: fix array bounds check and minor calculation
+
+
+Summary of changes from v132 to v133
+============================================
+
+Alan Jenkins (2):
+ udevd: de-duplicate strings in rules
+ scsi_id: we don't use DEVPATH env var anymore, update man page
+
+Karel Zak (1):
+ volume_id: fat - move check for msdos signature (0x55 0xaa)
+
+Kay Sievers (22):
+ silence "comparison between signed and unsigned"
+ string index - split nodes and childs to allow and unlimited number of childs
+ reserve child slot 0
+ merge trie nodes, childs and root into a single array
+ set errno = ENOSYS in inotify stub
+ udevadm: info - unify -V and --version
+ rules: remove DEVTYPE disk/partition
+ rules: remove pnp shell script, acpi loads these modules properly
+ update NEWS
+ configure: add linux-hotplug mail address
+ remove len == 0 check, the index root is always '\0'
+ volume_id: bump revision
+ volume_id: always check for all filesystem types and skip conflicting results
+ volume_id: fat - accept empty FAT32 fsinfo signature
+ fix spelling in comment
+ volume_id: ntfs - mark as no other fs must match
+ vol_id: clarify error message
+ libudev: device - handle disk "device" link for partitions in deprecated sysfs layout
+ limit $attr(<symlink>) magic to well-known links only
+ udevd: fix cleanup of /dev/.udev/uevent_seqnum
+ fix $links substitution for devices without any link
+ update NEWS
+
+Sergey Vlasov (1):
+ udevadm: fix option parsing breakage with klibc
+
+
+Summary of changes from v131 to v132
+============================================
+
+Kay Sievers (2):
+ fix size_t compiler warning on 32 bit platforms
+ convert debug string arrays to functions
+
+
+Summary of changes from v130 to v131
+============================================
+
+Alan Jenkins (17):
+ libudev: fix sysnum logic for digit-only device names
+ udevd: avoid overhead of calling rmdir on non-empty directories
+ use more appropriate alternatives to malloc()
+ libudev: util - optimize path_encode()
+ libudev: allocate udev_device->envp[] dynamically
+ replace strncpy() with strlcpy()
+ use re-entrant variants of getpwnam and getgrnam
+ udevd: fix memory leak
+ udevd: fix WAIT_FOR_SYSFS execution order
+ fix handling of string_escape option
+ udevd: use a tighter loop for compare_devpath()
+ udevd: avoid implicit memset in match_attr()
+ kerneldoc comment fixes
+ udevd: simplify rules execution loop
+ udevd: fix termination of rule execution
+ udevd: be more careful when matching against parents
+ udevd: shrink struct token to 12 bytes
+
+Kay Sievers (113):
+ remove outdated docs/README-gcov_for_udev
+ libudev: device - add device lookup by subsystem:sysname
+ libudev: also prefix non-exported functions with udev_*
+ libudev: add udev_monitor_send_device()
+ libudev: list - add flag
+ libudev: device - generate DEVNAME and DEVLINKS properties
+ vol_id: update README
+ libudev: handle ! in sysname, add sysnum, return allocated list_entry on add
+ delete simple-build-check.sh
+ test: move global ENV{ENV_KEY_TEST}="test" to local rule
+ libudev: monitor - fix send_device() property copying
+ libudev: device - add get_envp() to construct envp from property list
+ libudev: do not include ctrl in libudev.so
+ libudev: monitor - do not mangle DEVLINKS property
+ libudev: update DEVLINKS property when properties are read
+ libudev: device - lookup "subsystem" and "driver" only once
+ libudev: device - export properties when values are set
+ libudev: list - handle update of key with NULL value
+ libudev: ctrl - fix typo in set_env()
+ libudev: add global property list
+ libudev: device - copy global properties, unset empty properties
+ volume_id: btrfs - update magic to latest disk format
+ udevd: use libudev
+ move udev_device_db to libudev
+ rename udev source files
+ libudev: always add UDEV_LOG
+ libudev: monitor - export MAJOR/MINOR only if available
+ udev-node: name_list -> udev_list
+ udev-rules-parse: name_list -> udev_list
+ delete name_list, move common file functions
+ fix sorting of rules files
+ run_program: prevent empty last argv entry
+ update IMPORT= file/stdout property parsing
+ update rules file parsing
+ delete udev-util-file.c
+ libudev: list - prepend udev_* to all functions
+ libudev: add sysnum to test program
+ test: fix a few unintentially wrongly written rules which cause parse errors
+ libudev: monitor - add set_receive_buffer_size()
+ libudev: ctrl - change magic to integer
+ libudev: make list_node functions available
+ udevd: use udev_list_node
+ collect: use udev_list
+ delete list.h
+ merge udev-rules.c and udev-rules-parse.c
+ make struct udev_rules opaque
+ move run_program to util
+ udev_event_run() -> udev_event_execute_rules()
+ udev_rules_run() -> udev_event_execute_run();
+ move udev_rules_apply_format() to udev-event.c
+ udev_list_cleanup() -> udev_list_cleanup_entries()
+ selinux_init(udev) -> udev_selinux_init(udev)
+ prefix udev-util.c functions with util_*
+ pass make distcheck
+ libudev: device - get_attr_value() -> get_sysattr_value()
+ cdrom_id: remove ARRAY_SIZE() declaration
+ replace missing get_attr_value() -> get_sysattr_value()
+ add "root" == 0 shortcuts to lookup_user/group()
+ do not use the new work-in-progress parser rule matcher
+ libudev: device - 128 -> ENVP_SIZE
+ add util_resolve_subsys_kernel()
+ handle numerical owner/group string in lookup_user/group()
+ replace in-memory rules array with match/action token list
+ do not create temporary node ($tempnode) if node already exists
+ shrink struct udev_event
+ shrink struct udev_event
+ rule_generator: fix netif NAME= value extraction regex
+ skip SYMLINK rules for devices without a device node
+ rules: let empty strings added to buffer always return offset 0
+ fix uninitialized variable warnings
+ cache uid/gid during rule parsing
+ distinguish "match" from "assign" by (op < OP_MATCH_MAX)
+ determine at rule parse time if we need to call fnmatch()
+ special-case "?*" match to skip fnmatch()
+ libudev: monitor - replace far too expensive snprintf() with strlcpy()
+ libudev: monitor - cache result of monitor send buffer
+ fix "unused" warnings
+ remove debug printf
+ match KEY="A|B" without temporary string copy
+ match_attr() - copy attr value only when needed
+ do not init string arrays, just clear first byte
+ fix $attr{[<subsystem>/<sysname>]<attribute>} substitution
+ libudev: device - fill envp array while composing monitor buffer
+ test: add RUN+="socket: ..." to a test to run monitor code
+ libudev: device - allocate envp array only once
+ update NEWS
+ udevd: merge exec and run queue to minimize devpath string compares
+ ATTR{}== always fails if the attribute does not exist
+ rules: remove SCSI timeouts
+ rules: remove "add" match from usb device node rule
+ edd_id: add "change" event match
+ fstab_import: add "change" event match
+ write trace log to stderr
+ log rules file and line number when NAME, SYMLINK, OWNER, GROUP, MODE, RUN is applied
+ skip entire rule containing device naming keys, if no device can be named
+ fix udev_node_update_old_links() logic
+ move some info() to dbg()
+ add "devel" and "install" switches to autogen.sh
+ move debugging strings inside #ifdef DEBUG
+ firmware.sh: record missing files in /dev/.udev/firmware-missing/
+ fix list handling in enumerate and rules file sorting
+ volume_id: btrfs update
+ info() PROGRAM and IMPORT execution
+ fix $links substitution
+ fix cleanup of possible left-over symlinks
+ do not import the "uevent" file when we only read the db to get old symlinks
+ usb_id: MassStorage SubClass 6 is "scsi" not "disk"
+ unify string replacement
+ $links should be relative
+ fix indentation
+ rules: md - add mdadm 3 device naming
+ cleanup /dev/.udev/queue on startup and exit
+ udevadm: settle - exit if udevd exits
+
+Matthias Koenig (1):
+ volume_id: swap - larger PAGE_SIZE support
+
+Steven Whitehouse (1):
+ volume_id: support for GFS2 UUIDs
+
+
Summary of changes from v129 to v130
============================================