+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
+============================================
+
+Kay Sievers (26):
+ fix compile error with --disable-logging
+ libudev: enumerate - add_device() -> add_syspath()
+ volume_id: hpfs - read label and uuid
+ use no_argument, required_argument, optional_argument in longopts
+ libudev: get rid of selinux
+ libudev: device - add get_parent_with_subsystem()
+ usb_id: use libudev
+ udevadm: info - fix --query=all for devices without a device node
+ vol_id: add size= option
+ move selinux noops to udev.h
+ volume_id: add dbg() as noop to check for compile errors
+ vol_id: fix logging glue
+ vol_id: always use the safe string versions for unencoded label and uuid
+ volume_id: better DDF raid detection
+ volume_id: add btrfs
+ volume_id: use PRIu64i, PRIx64 macros
+ udevd: clarify deprecated sysfs layout warning
+ libudev: fix --enable-debug
+ don not print error if GOTO jumps just to next rule
+ volume_id: add more vfat debugging information
+ libudev: libudev.pc remove selinux
+ store node name and symlinks into db symlink target if they are small enough
+ volume_id: more fat debugging
+ libudev: fix typo in "multiple entries in symlink" handling
+ connect /sys and /dev with /sys/dev/{block,char}/<maj>:<min> and /dev/{block,char}/<maj>:<min>
+ replace spaces in dm and md name symlinks
+
+
+Summary of changes from v128 to v129
+============================================
+
+Alan Jenkins (7):
+ udev-test.pl: set non-zero exitcode if tests fail
+ scsi_id: compiler warning on 32-bit
+ trivial cleanup in udev_rules_iter
+ avoid repeated scans for goto targets (udev_iter_find_label)
+ replace strerror() usage with threadsafe "%m" format string
+ fix messages (inc. debug compile failure) introduced when optimizing "goto"
+ allow compiler to check dbg() arguments on non-debug builds
+
+Kay Sievers (46):
+ libudev: switch to "udev_device_get_parent"
+ libudev: udev_device - add attribute cache
+ libudev: handle "device" link as parent, handle "class" "block" as "subsystem"
+ udevadm: info - fix lookup-by-name
+ libudev: switch API from devpath to syspath
+ libudev: rename ctrl_msg to ctrl_msg_wire
+ vol_id: fix lib logging glue
+ fix broken symlink resolving
+ fix udevadm trigger
+ libudev: pass udev_device in enumerate
+ libudev: fix "subsystem" value
+ always include config.h from Makefile
+ libudev: udev_device_get_devname -> udev_device_get_devnode
+ libudev: add udev_device_new_from_devnum()
+ libudev: also import "uevent" file when reading udev database
+ libudev: add userdata pointer
+ libudev: replace awkward callback list interfaces with list iterators
+ libudev: get devnum from uevent file
+ libudev: enumerate_get_devices_list -> enumerate_get_list
+ libudev: initialize selinux only when needed
+ libudev: device - read database only when needed
+ libudev: rework list handling
+ libudev: more list rework
+ lubudev: accept more sys directories as devices, and parent devices
+ libudev: enumerate - accept list of subsystems to scan, or skip
+ libudev: enumerate "subsystem"
+ libudev: enumerate - scan /sys/block/ if needed
+ libudev: enumerate - split new() and scan()
+ test: replace ancient sysfs tree with recent one
+ test: add missing pci directory because of .gitignore *.7
+ gitignore: move *.8 to subdirs
+ test: replace last reference of "/class/*" devpath
+ fix dbg() callers
+ libudev: enumerate - scan devices and subsystems, add subsystem and attribute filter
+ udevadm: trigger: use libudev
+ fix segfault caused by wrong pointer used in dbg()
+ libudev: device_init() -> device_new()
+ udevadm: trigger fix long option --type=
+ libudev: add queue interface
+ udevadm: settle - use libudev queue
+ libudev: device - handle /sys/block/<disk-device-link>/<partition>
+ libudev: enumerate - ignore regular files while scanning
+ udevadm: trigger --type=failed - use libudev queue
+ rules: ieee1394 - create both, by-id/scsi-* and by-id/ieee-* links
+ build: include Makefile.am.inc in all Makefile.am
+ udevd: print warning if CONFIG_SYSFS_DEPRECATED is used
+
+
+Summary of changes from v127 to v128
+============================================
+
+Alan Jenkins (8):
+ fix uninitialized name_list error::ignore_error
+ do not needlessly declare some local variables in udev_rules_parse.c as static
+ remove deprecated envp[] in main()
+ fix name compare bug name_list_key_add()
+ remove redundant string copy in udev_rules_apply_format()
+ remove redundant "remove trailing newlines" in udevadm info
+ threadsafe rules iteration
+ fix off-by-one in pass_env_to_socket()
+
+Kay Sievers (53):
+ libudev: add monitor documentation
+ libudev: fix --disable-log
+ autogen.sh: add --with-selinux
+ volume_id: hfs - calculate proper uuid
+ fix dangling pointer returned by attr_get_by_subsys_id()
+ udev-test.pl: add --valgrind option
+ libudev: libudev.pc add Libs.private
+ volume_id: fail on undefined __BYTE_ORDER
+ remove FAQ
+ libudev: fix monitor documentation
+ libudev: add udev_device_get_syspath()
+ udev_device_init() remove statically allocated device support
+ udevadm: info - fix broken --device-id-of-file=
+ udevadm: control - use getopt_long()
+ udevadm: print warning to stderr if udevadm is called by symlink
+ udev-test.pl: remove left-over comment from --valgrind option
+ udevadm: rename source files
+ udevadm: rename internal functions to udevadm_*
+ udevadm: split out control functions
+ udevadm: move init from commands to udevadm
+ autogen.sh: add debug
+ use libudev code, unify logging, pass udev context around everywhere
+ volume_id: linux_raid - fix logic for volumes with size == 0
+ vol_id: add --debug option
+ udevadm: add --version --help options to man page, hide them as commands
+ move udev_ctrl to libudev-private
+ udev-test.pl: set udev_log="err"
+ test-udev: cleanup libudev context and overridden rules file string
+ test-udev: remove unused var
+ add a bunch of private device properties to udev_device
+ udevadm: monitor - use libudev for udev monitor
+ libudev: monitor - add event properties to udev_device
+ udevadm: log message if udevadm link is used
+ udevd: remove max_childs_running logic
+ libudev: monitor- add netlink uevent support
+ udevadm: monitor - use libudev code to retrieve device data
+ libudev: udev_device - read "driver" value
+ libudev: rename enumerate function
+ libudev: add selinux
+ libudev: initialize selinux after logging
+ volume_id: merge util.h in libvolume_id-private.h
+ update file headers
+ libudev: udev_device - add more properties
+ libudev: do not use udev_db.c
+ libudev: get rid of udev_sysfs.c
+ libudev: get rid of udev_utils.c
+ libudev: rename libudev-utils.c libudev-util.c
+ libudev: do not use any udev source file
+ extras: use libudev code
+ convert to libudev and delete udev_utils_string.c
+ get rid of udev_sysdeps.c
+ use size definitions from libudev
+ udevadm: info - use "udev_device"
+
+
Summary of changes from v126 to v127
============================================