Index: create.patch.sh
===================================================================
--- create.patch.sh (nonexistent)
+++ create.patch.sh (revision 5)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=3.2.10
+
+tar --files-from=file.list -xJvf ../eudev-$VERSION.tar.xz
+mv eudev-$VERSION eudev-$VERSION-orig
+
+cp -rf ./eudev-$VERSION-new ./eudev-$VERSION
+
+diff --unified -Nr eudev-$VERSION-orig eudev-$VERSION > eudev-$VERSION-ids-pl.patch
+
+mv eudev-$VERSION-ids-pl.patch ../patches
+
+rm -rf ./eudev-$VERSION
+rm -rf ./eudev-$VERSION-orig
Property changes on: create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: eudev-3.2.10-new/configure.ac
===================================================================
--- eudev-3.2.10-new/configure.ac (nonexistent)
+++ eudev-3.2.10-new/configure.ac (revision 5)
@@ -0,0 +1,403 @@
+AC_PREREQ([2.68])
+AC_INIT([eudev],[3.2.10],[https://github.com/gentoo/eudev/issues])
+AC_SUBST(UDEV_VERSION, 243)
+AC_CONFIG_SRCDIR([src/udev/udevd.c])
+
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+AC_PREFIX_DEFAULT([/usr])
+
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([foreign 1.11])
+AM_SILENT_RULES([yes])
+
+LT_PREREQ(2.2)
+LT_INIT
+
+# Checks for programs.
+AC_PROG_MKDIR_P
+AC_PROG_LN_S
+AC_PROG_SED
+AC_PROG_GREP
+AC_PROG_AWK
+
+AC_PROG_CC_C99
+AS_IF([test "x$ac_cv_prog_cc_c99" = "xno"], [
+ AC_MSG_ERROR([no C99 compiler found, $PACKAGE requires a C99 compiler.])
+])
+
+AC_PROG_CXX
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+
+AC_PATH_PROG([M4], [m4])
+
+# Checks for header files.
+AC_CHECK_HEADERS(
+ [arpa/inet.h fcntl.h inttypes.h limits.h locale.h \
+ netinet/in.h sys/ioctl.h sys/mount.h \
+ sys/param.h sys/socket.h sys/statvfs.h sys/time.h sys/vfs.h syslog.h \
+ termios.h unistd.h],
+ [],
+ [AC_MSG_ERROR([*** POSIX header not found])]
+)
+
+AC_CHECK_HEADERS(
+ [mtd/mtd-user.h],
+ [],
+ [AC_MSG_ERROR([*** KERNEL header not found])]
+)
+
+AC_CHECK_HEADERS(
+ [linux/btrfs.h],
+ [],
+ [AC_MSG_WARN([*** KERNEL header not found])]
+)
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_UID_T
+AC_C_INLINE
+AC_TYPE_MODE_T
+AC_TYPE_PID_T
+AC_CHECK_MEMBERS([struct stat.st_rdev])
+AC_CHECK_DECLS([getrandom, gettid, name_to_handle_at, accept4, mkostemp, ppoll, strndupa], [], [],
+[[#include <fcntl.h>
+#include <linux/random.h>
+#include <poll.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mount.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <unistd.h>]])
+
+AC_CHECK_SIZEOF(pid_t)
+AC_CHECK_SIZEOF(uid_t)
+AC_CHECK_SIZEOF(gid_t)
+AC_CHECK_SIZEOF(dev_t)
+AC_CHECK_SIZEOF(time_t)
+AC_CHECK_SIZEOF(rlim_t,,[[
+#include <sys/time.h>
+#include <sys/resource.h>]])
+
+# Checks for library functions.
+AC_FUNC_CHOWN
+AC_FUNC_FORK
+AC_FUNC_FSEEKO
+AC_FUNC_GETGROUPS
+AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
+AC_HEADER_MAJOR
+AC_FUNC_MMAP
+
+AC_CHECK_FUNCS(
+ [alarm dup2 ftruncate localtime_r mempcpy \
+ mkdir munmap nl_langinfo rmdir setlocale socket stpcpy \
+ uname],
+ [],
+ [AC_MSG_ERROR([*** POSIX function not found])]
+)
+AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX librt not found])])
+LT_LIB_M
+
+# ------------------------------------------------------------------------------
+
+# TODO: the old python checks are irrelevant, but we do need python and perl for tests
+
+# ------------------------------------------------------------------------------
+# Set paths here
+
+AC_ARG_WITH(
+ [rootprefix],
+ [AS_HELP_STRING(
+ [--with-rootprefix=DIR],
+ [rootfs directory prefix for config files and kernel modules])],
+ [],
+ [with_rootprefix="\${prefix}"]
+)
+
+AC_ARG_WITH(
+ [rootlibdir],
+ [AS_HELP_STRING(
+ [--with-rootlibdir=DIR],
+ [Root directory for libraries necessary for boot])],
+ [],
+ [with_rootlibdir=${libdir}]
+)
+
+AC_ARG_WITH(
+ [rootlibexecdir],
+ [AS_HELP_STRING(
+ [--with-rootlibexecdir=DIR],
+ [Root directory for libexecs necessary for boot])],
+ [],
+ [with_rootlibexecdir=${with_rootlibdir}/udev]
+)
+
+AC_ARG_WITH(
+ [rootrundir],
+ [AS_HELP_STRING(
+ [--with-rootrundir=DIR],
+ [Configurable path for /run])],
+ [],
+ [with_rootrundir=/run]
+)
+
+AC_ARG_ENABLE(
+ [split-usr],
+ [AS_HELP_STRING(
+ [--enable-split-usr],
+ [Include hard-coded default search paths in / and /usr])],
+ [],
+ [AS_IF(
+ [test "x${ac_default_prefix}" != "x${with_rootprefix}" && test "x${with_rootprefix}" != "x\${prefix}"],
+ [enable_split_usr=yes],
+ [enable_split_usr=no])]
+)
+
+AS_IF(
+ [test "x${enable_split_usr}" = "xyes"],
+ [AC_DEFINE(HAVE_SPLIT_USR, 1, [Define to include hard-coded default search paths in / and /usr])]
+)
+
+# Configured paths
+AC_SUBST([rootprefix], [${with_rootprefix}])
+AC_SUBST([rootlibdir], [${with_rootlibdir}])
+AC_SUBST([rootlibexecdir], [${with_rootlibexecdir}])
+AC_SUBST([udevlibexecdir], [${rootlibexecdir}])
+
+# sysconfdir paths
+AC_SUBST([udevconfdir],[${sysconfdir}/udev])
+AC_SUBST([udevconffile],[${udevconfdir}/udev.conf])
+AC_SUBST([udevhwdbdir],[${udevconfdir}/hwdb.d])
+AC_SUBST([udevhwdbbin],[${udevconfdir}/hwdb.bin])
+
+# udevlibexecdir paths
+AC_SUBST([udevkeymapdir],[${udevlibexecdir}/keymaps])
+AC_SUBST([udevkeymapforceredir],[${udevkeymapdir}/force-release])
+AC_SUBST([udevrulesdir],[${udevlibexecdir}/rules.d])
+
+# pkgconfigdir paths
+AC_SUBST([pkgconfiglibdir], [${libdir}/pkgconfig])
+AC_SUBST([sharepkgconfigdir],[${datadir}/pkgconfig])
+
+AC_SUBST([rootrundir],[${with_rootrundir}])
+
+# ------------------------------------------------------------------------------
+AC_ARG_ENABLE([programs],
+ AS_HELP_STRING([--disable-programs], [disable programs (udevd, udevadm and helpers)]),
+ [], [enable_programs="yes"])
+AM_CONDITIONAL([ENABLE_PROGRAMS], [test "x$enable_programs" = "xyes"])
+
+# ------------------------------------------------------------------------------
+have_blkid=no
+AC_ARG_ENABLE(blkid, AS_HELP_STRING([--disable-blkid], [Disable optional blkid support]))
+if test "x$enable_blkid" != "xno"; then
+ PKG_CHECK_MODULES([BLKID], [blkid >= 2.20],
+ [AC_DEFINE(HAVE_BLKID, 1, [Define if blkid is available]) have_blkid=yes], have_blkid=no)
+ if test "x$have_blkid" = xno && test "x$enable_blkid" = xyes; then
+ AC_MSG_ERROR([*** blkid support requested but not found])
+ fi
+fi
+AM_CONDITIONAL(HAVE_BLKID, [test "x$have_blkid" = "xyes"])
+
+# ------------------------------------------------------------------------------
+have_selinux=no
+AC_ARG_ENABLE(selinux, AS_HELP_STRING([--disable-selinux], [Disable optional SELINUX support]))
+if test "x$enable_selinux" != "xno"; then
+ PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.1.9],
+ [AC_DEFINE(HAVE_SELINUX, 1, [Define if SELinux is available]) have_selinux=yes], have_selinux=no)
+ if test "x$have_selinux" = xno && test "x$enable_selinux" = xyes; then
+ AC_MSG_ERROR([*** SELinux support requested but libraries not found])
+ fi
+fi
+AM_CONDITIONAL(HAVE_SELINUX, [test "$have_selinux" = "yes"])
+if test "x${have_selinux}" != xno ; then
+ sushell=/sbin/sushell
+else
+ sushell=/bin/bash
+fi
+AC_SUBST(sushell)
+
+# selinux-util.c uses struct mallinfo which is not available for all C libraries (musl).
+AC_CHECK_FUNCS([mallinfo])
+
+# ------------------------------------------------------------------------------
+
+AC_CHECK_DECL([unshare],
+ [AC_DEFINE(HAVE_UNSHARE, 1, [Define if unshare is declared])],
+ [AC_CHECK_DECL([SYS_unshare],
+ [ ] ,
+ [AC_MSG_ERROR([*** unshare nor SYS_unshare found.])],
+ [#include <syscall.h>])],
+ [#include <sched.h>])
+
+# ------------------------------------------------------------------------------
+AC_PATH_TOOL(GPERF, gperf)
+if test -z "$GPERF" ; then
+ AC_MSG_ERROR([*** gperf not found])
+fi
+
+# ------------------------------------------------------------------------------
+AC_ARG_ENABLE([manpages], AS_HELP_STRING([--disable-manpages],[disable manpages]),[],[enable_manpages=no])
+AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$enable_manpages" = "xyes"])
+
+# ------------------------------------------------------------------------------
+if test "x$cross_compiling" = "xno" ; then
+ AC_CHECK_FILES([/usr/share/pci.ids], [pciids=/usr/share/pci.ids])
+ AC_CHECK_FILES([/usr/share/hwdata/pci.ids], [pciids=/usr/share/hwdata/pci.ids])
+ AC_CHECK_FILES([/usr/share/misc/pci.ids], [pciids=/usr/share/misc/pci.ids])
+fi
+
+AC_ARG_WITH(usb-ids-path,
+ [AS_HELP_STRING([--with-usb-ids-path=DIR], [Path to usb.ids file])],
+ [USB_IDS_PATH=${withval} ; USB_IDS="${USB_IDS_PATH}/usb.ids" ],
+ [if test -n "$usdids" ; then
+ USB_IDS="$usbids"
+ else
+ PKG_CHECK_MODULES(USBUTILS, usbutils >= 0.82)
+ AC_SUBST([USB_IDS], [$($PKG_CONFIG --variable=usbids usbutils)])
+ fi])
+if test -z "$USB_IDS" ; then
+ USB_IDS_PATH="${udevhwdbdir}"
+ USB_IDS="usb.ids"
+fi
+AC_MSG_CHECKING([for USB IDs database location])
+AC_MSG_RESULT([$USB_IDS])
+AC_SUBST(USB_IDS)
+
+AC_ARG_WITH(pci-ids-path,
+ [AS_HELP_STRING([--with-pci-ids-path=DIR], [Path to pci.ids file])],
+ [PCI_IDS_PATH=${withval} ; PCI_IDS="${PCI_IDS_PATH}/pci.ids" ],
+ [if test -n "$pciids" ; then
+ PCI_IDS="$pciids"
+ else
+ PCI_IDS="pci.ids"
+ fi])
+AC_MSG_CHECKING([for PCI IDs database location])
+AC_MSG_RESULT([$PCI_IDS])
+AC_SUBST(PCI_IDS)
+
+AC_ARG_WITH(misc-ids-path,
+ [AS_HELP_STRING([--with-misc-ids-path=DIR], [Path to unique ids files])],
+ [MISC_IDS_PATH=${withval}], [MISC_IDS_PATH="/usr/share/hwdata"])
+AC_MSG_CHECKING([for MISC IDs database location])
+AC_MSG_RESULT([$MISC_IDS_PATH])
+AC_SUBST(MISC_IDS_PATH)
+
+AC_ARG_ENABLE(update-ids-script,
+ AS_HELP_STRING(--disable-update-ids-script, [disable installing update-udev-ids.pl @<:@default=install@:>@]))
+AM_CONDITIONAL([INSTALL_UPDATE_IDS_SCRIPT], [test "x$enable_update_ids_script" != "xno"])
+
+# ------------------------------------------------------------------------------
+have_kmod=no
+AC_ARG_ENABLE(kmod, AS_HELP_STRING([--disable-kmod], [disable loadable modules support]))
+if test "x$enable_kmod" != "xno"; then
+ PKG_CHECK_EXISTS([ libkmod ], have_kmod=yes, have_kmod=no)
+ if test "x$have_kmod" = "xyes"; then
+ PKG_CHECK_MODULES(KMOD, [ libkmod >= 15 ],
+ [AC_DEFINE(HAVE_KMOD, 1, [Define if kmod is available])],
+ AC_MSG_ERROR([*** kmod version >= 15 not found]))
+ fi
+ if test "x$have_kmod" = xno && test "x$enable_kmod" = xyes; then
+ AC_MSG_ERROR([*** kmod support requested, but libraries not found])
+ fi
+fi
+AM_CONDITIONAL(HAVE_KMOD, [test "$have_kmod" = "yes"])
+
+# ------------------------------------------------------------------------------
+
+AC_ARG_ENABLE([hwdb], AS_HELP_STRING([--enable-hwdb],[install hwdb.d files]),[],[enable_hwdb=yes])
+AM_CONDITIONAL(ENABLE_HWDB, [test "x$enable_hwdb" = "xyes"])
+
+# ------------------------------------------------------------------------------
+# rule-generator - persistent network and optical device rule generator
+# ------------------------------------------------------------------------------
+AC_ARG_ENABLE([rule-generator],
+ AS_HELP_STRING([--enable-rule-generator], [enable legacy persistent network, cdrom support]),
+ [], [enable_rule_generator=no])
+
+if test "x${enable_rule_generator}" != xno; then
+ AC_DEFINE([ENABLE_RULE_GENERATOR], [1], [Define if we are enabling rule generator])
+fi
+
+AM_CONDITIONAL([ENABLE_RULE_GENERATOR], [test "x$enable_rule_generator" = xyes])
+
+# ------------------------------------------------------------------------------
+# mtd_probe - autoloads FTL module for mtd devices
+# ------------------------------------------------------------------------------
+AC_ARG_ENABLE([mtd_probe],
+ AS_HELP_STRING([--disable-mtd_probe], [disable MTD support]),
+ [], [enable_mtd_probe=yes])
+AM_CONDITIONAL([ENABLE_MTD_PROBE], [test "x$enable_mtd_probe" = xyes])
+
+# ------------------------------------------------------------------------------
+
+AC_CONFIG_FILES([Makefile
+ hwdb/Makefile
+ hwdb/ids-update.pl
+ man/Makefile
+ rule_generator/Makefile
+ rule_generator/write_net_rules
+ rules/Makefile
+ src/Makefile
+ src/ata_id/Makefile
+ src/cdrom_id/Makefile
+ src/collect/Makefile
+ src/mtd_probe/Makefile
+ src/scsi_id/Makefile
+ src/v4l_id/Makefile
+ src/shared/Makefile
+ src/libudev/Makefile
+ src/libudev/libudev.pc
+ src/udev/Makefile
+ src/udev/udev.pc
+ test/Makefile], [chmod a+x hwdb/ids-update.pl])
+
+AC_OUTPUT
+
+# ------------------------------------------------------------------------------
+
+AC_MSG_RESULT([
+ prefix: ${prefix}
+ exec_prefix: ${exec_prefix}
+ sysconfdir: ${sysconfdir}
+ datadir: ${datadir}
+ includedir: ${includedir}
+ bindir: ${bindir}
+ libdir: ${libdir}
+
+ rootprefix: ${rootprefix}
+ rootlibdir: ${rootlibdir}
+ rootlibexecdir: ${rootlibexecdir}
+ datarootdir: ${datarootdir}
+ rootrundir: ${rootrundir}
+
+ udevconfdir: ${udevconfdir}
+ udevconffile: ${udevconffile}
+ udevhwdbdir: ${udevhwdbdir}
+ udevhwdbbin: ${udevhwdbbin}
+ udevlibexecdir: ${udevlibexecdir}
+ udevkeymapdir: ${udevkeymapdir}
+ udevkeymapforceredir: ${udevkeymapforceredir}
+ udevrulesdir: ${udevrulesdir}
+
+ pkgconfiglibdir: ${libdir}/pkgconfig
+ sharepkgconfigdir ${datadir}/pkgconfig
+])
+
+# ------------------------------------------------------------------------------
+
+dnl Set configured scripts executable
+if test -f src/keymap/check-keymaps.sh; then
+ chmod +x src/keymap/check-keymaps.sh
+fi
+
+if test -f src/keymap/keyboard-force-release.sh; then
+ chmod +x src/keymap/keyboard-force-release.sh
+fi
+
Index: eudev-3.2.10-new/hwdb/Makefile.am
===================================================================
--- eudev-3.2.10-new/hwdb/Makefile.am (nonexistent)
+++ eudev-3.2.10-new/hwdb/Makefile.am (revision 5)
@@ -0,0 +1,30 @@
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+
+dist_udevhwdb_DATA = \
+ 20-OUI.hwdb \
+ 20-acpi-vendor.hwdb \
+ 20-bluetooth-vendor-product.hwdb \
+ 20-net-ifname.hwdb \
+ 20-pci-classes.hwdb \
+ 20-pci-vendor-model.hwdb \
+ 20-sdio-classes.hwdb \
+ 20-sdio-vendor-model.hwdb \
+ 20-usb-classes.hwdb \
+ 20-usb-vendor-model.hwdb \
+ 20-vmbus-class.hwdb \
+ 60-evdev.hwdb \
+ 60-keyboard.hwdb \
+ 60-sensor.hwdb \
+ 70-mouse.hwdb \
+ 70-pointingstick.hwdb \
+ 70-touchpad.hwdb
+
+sbin_SCRIPTS =
+
+if INSTALL_UPDATE_IDS_SCRIPT
+sbin_SCRIPTS += update-udev-ids.pl
+
+update-udev-ids.pl: ids-update.pl
+ cp $< $@
+ chmod 755 $@
+endif
Index: eudev-3.2.10-new/hwdb/ids-update.pl.in
===================================================================
--- eudev-3.2.10-new/hwdb/ids-update.pl.in (nonexistent)
+++ eudev-3.2.10-new/hwdb/ids-update.pl.in (revision 5)
@@ -0,0 +1,375 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+sub usb_vendor {
+ my $vendor;
+
+ open(IN, "<", "@USB_IDS@");
+ open(OUT, ">", "@udevhwdbdir@/20-usb-vendor-model.hwdb");
+ print(OUT "# This file is part of systemd.\n" .
+ "#\n" .
+ "# Data imported from: http://www.linux-usb.org/usb.ids\n");
+
+ while (my $line = <IN>) {
+ $line =~ s/\s+$//;
+ $line =~ m/^([0-9a-f]{4})\s*(.+)$/;
+ if (defined $1) {
+ $vendor = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "usb:v" . $vendor . "*\n");
+ print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+
+ $line =~ m/^\t([0-9a-f]{4})\s*(.+)$/;
+ if (defined $1) {
+ my $model = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "usb:v" . $vendor . "p" . $model . "*\n");
+ print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n");
+ }
+ }
+
+ close(IN);
+ close(OUT);
+}
+
+sub usb_classes {
+ my $class;
+ my $subclass;
+ my $protocol;
+
+ open(IN, "<", "@USB_IDS@");
+ open(OUT, ">", "@udevhwdbdir@/20-usb-classes.hwdb");
+ print(OUT "# This file is part of systemd.\n" .
+ "#\n" .
+ "# Data imported from: http://www.linux-usb.org/usb.ids\n");
+
+ while (my $line = <IN>) {
+ $line =~ s/\s+$//;
+
+ $line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/;
+ if (defined $1) {
+ $class = uc $1;
+ if ($class =~ m/^00$/) {
+ next;
+ }
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "usb:v*p*d*dc" . $class . "*\n");
+ print(OUT " ID_USB_CLASS_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+
+ if (not defined $class) {
+ next;
+ } elsif ($line =~ m/^$/) {
+ last;
+ }
+
+ $line =~ m/^\t([0-9a-f]{2})\s*(.+)$/;
+ if (defined $1) {
+ $subclass = uc $1;
+ if ($subclass =~ m/^00$/) {
+ next;
+ }
+ my $text = $2;
+ if ($text =~ m/^(\?|None|Unused)$/) {
+ next;
+ }
+ print(OUT "\n");
+ print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "*\n");
+ print(OUT " ID_USB_SUBCLASS_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+
+ $line =~ m/^\t\t([0-9a-f]{2})\s*(.+)$/;
+ if (defined $1) {
+ $protocol = uc $1;
+ my $text = $2;
+ if ($text =~ m/^(\?|None|Unused)$/) {
+ next;
+ }
+ print(OUT "\n");
+ print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "dp" . $protocol . "*\n");
+ print(OUT " ID_USB_PROTOCOL_FROM_DATABASE=" . $text . "\n");
+ }
+ }
+
+ close(IN);
+ close(OUT);
+}
+
+sub pci_vendor {
+ my $vendor;
+ my $device;
+ my $device_text;
+
+ open(IN, "<", "@PCI_IDS@");
+ open(OUT, ">", "@udevhwdbdir@/20-pci-vendor-model.hwdb");
+ print(OUT "# This file is part of systemd.\n" .
+ "#\n" .
+ "# Data imported from: http://pci-ids.ucw.cz/v2.2/pci.ids\n");
+
+ while (my $line = <IN>) {
+ $line =~ s/\s+$//;
+ $line =~ m/^([0-9a-f]{4})\s*(.+)$/;
+
+ if (defined $1) {
+ $vendor = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "pci:v0000" . $vendor . "*\n");
+ print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+
+ $line =~ m/^\t([0-9a-f]{4})\s*(.+)$/;
+ if (defined $1) {
+ $device = uc $1;
+ $device_text = $2;
+ print(OUT "\n");
+ print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n");
+ print(OUT " ID_MODEL_FROM_DATABASE=" . $device_text . "\n");
+ next;
+ }
+
+ $line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/;
+ if (defined $1) {
+ my $sub_vendor = uc $1;
+ my $sub_device = uc $2;
+ my $sub_text = $3;
+ $sub_text =~ s/^\Q$device_text\E\s*//;
+ $sub_text =~ s/(.+)/\ ($1)/;
+ print(OUT "\n");
+ print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n");
+ print(OUT " ID_MODEL_FROM_DATABASE=" . $device_text . $sub_text . "\n");
+ }
+ }
+
+ close(IN);
+ close(OUT);
+}
+
+sub pci_classes {
+ my $class;
+ my $subclass;
+ my $interface;
+
+ open(IN, "<", "@PCI_IDS@");
+ open(OUT, ">", "@udevhwdbdir@/20-pci-classes.hwdb");
+ print(OUT "# This file is part of systemd.\n" .
+ "#\n" .
+ "# Data imported from: http://pci-ids.ucw.cz/v2.2/pci.ids\n");
+
+ while (my $line = <IN>) {
+ $line =~ s/\s+$//;
+
+ $line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/;
+ if (defined $1) {
+ $class = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "pci:v*d*sv*sd*bc" . $class . "*\n");
+ print(OUT " ID_PCI_CLASS_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+
+ if (not defined $class) {
+ next;
+ } elsif ($line =~ m/^$/) {
+ last;
+ }
+
+ $line =~ m/^\t([0-9a-f]{2})\s*(.+)$/;
+ if (defined $1) {
+ $subclass = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "*\n");
+ print(OUT " ID_PCI_SUBCLASS_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+
+ $line =~ m/^\t\t([0-9a-f]{2})\s*(.+)$/;
+ if (defined $1) {
+ $interface = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "i" . $interface . "*\n");
+ print(OUT " ID_PCI_INTERFACE_FROM_DATABASE=" . $text . "\n");
+ }
+ }
+
+ close(IN);
+ close(OUT);
+}
+
+sub sdio_vendor {
+ my $vendor;
+ my $device;
+
+ open(IN, "<", "@MISC_IDS_PATH@/sdio.ids");
+ open(OUT, ">", "@udevhwdbdir@/20-sdio-vendor-model.hwdb");
+ print(OUT "# This file is part of systemd.\n" .
+ "#\n" .
+ "# Data imported from: hwdb/sdio.ids\n");
+
+ while (my $line = <IN>) {
+ $line =~ s/\s+$//;
+ $line =~ m/^([0-9a-f]{4})\s*(.+)$/;
+
+ if (defined $1) {
+ $vendor = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "sdio:c*v" . $vendor . "*\n");
+ print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+
+ $line =~ m/^\t([0-9a-f]{4})\s*(.+)$/;
+ if (defined $1) {
+ $device = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "sdio:c*v" . $vendor . "d" . $device . "*\n");
+ print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+ }
+
+ close(IN);
+ close(OUT);
+}
+
+sub sdio_classes {
+ my $class;
+ my $subclass;
+ my $interface;
+
+ open(IN, "<", "@MISC_IDS_PATH@/sdio.ids");
+ open(OUT, ">", "@udevhwdbdir@/20-sdio-classes.hwdb");
+ print(OUT "# This file is part of systemd.\n" .
+ "#\n" .
+ "# Data imported from: hwdb/sdio.ids\n");
+
+ while (my $line = <IN>) {
+ $line =~ s/\s+$//;
+
+ $line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/;
+ if (defined $1) {
+ $class = uc $1;
+ my $text = $2;
+ print(OUT "\n");
+ print(OUT "sdio:c" . $class . "v*d*\n");
+ print(OUT " ID_SDIO_CLASS_FROM_DATABASE=" . $text . "\n");
+ next;
+ }
+ }
+
+ close(IN);
+ close(OUT);
+}
+
+# MAC Address Block Large/Medium/Small
+# Large MA-L 24/24 bit (OUI)
+# Medium MA-M 28/20 bit (OUI prefix owned by IEEE)
+# Small MA-S 36/12 bit (OUI prefix owned by IEEE)
+sub oui {
+ my $prefix;
+ my %ieee_prefixes = ();
+
+ open(OUT, ">", "@udevhwdbdir@/20-OUI.hwdb");
+ print(OUT "# This file is part of systemd.\n" .
+ "#\n" .
+ "# Data imported from:\n" .
+ "# https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-L&format=txt\n" .
+ "# https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-M&format=txt\n" .
+ "# https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-S&format=txt\n");
+
+ open(IN, "<", "@MISC_IDS_PATH@/ma-small.txt");
+ while (my $line = <IN>) {
+ $line =~ s/^ +//;
+ $line =~ s/\s+$//;
+ $line =~ m/^([0-9A-F]{2})-([0-9A-F]{2})-([0-9A-F]{2})\s*\(hex\)\s*.+$/;
+ if (defined $1) {
+ $prefix = $1 . $2 . $3;
+ $ieee_prefixes{ $prefix } = 1;
+ next;
+ }
+
+ $line =~ m/^([0-9A-F]{3})000-\g1FFF\s*\(base 16\)\s*(.+)$/;
+ if (defined $1) {
+ my $vendor = uc $1;
+ my $text = $2;
+
+ print(OUT "\n");
+ print(OUT "OUI:" . $prefix . $vendor . "*\n");
+ print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
+ }
+ }
+ close(IN);
+
+ open(IN, "<", "@MISC_IDS_PATH@/ma-medium.txt");
+ while (my $line = <IN>) {
+ $line =~ s/^ +//;
+ $line =~ s/\s+$//;
+ $line =~ m/^([0-9A-F]{2})-([0-9A-F]{2})-([0-9A-F]{2})\s*\(hex\)\s*.+$/;
+ if (defined $1) {
+ $prefix = $1 . $2 . $3;
+ $ieee_prefixes{ $prefix } = 1;
+ next;
+ }
+
+ $line =~ m/^([0-9A-F])00000-\g1FFFFF\s*\(base 16\)\s*(.+)$/;
+ if (defined $1) {
+ my $vendor = uc $1;
+ my $text = $2;
+
+ print(OUT "\n");
+ print(OUT "OUI:" . $prefix . $vendor . "*\n");
+ print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
+ }
+ }
+
+ open(IN, "<", "@MISC_IDS_PATH@/ma-large.txt");
+ while (my $line = <IN>) {
+ $line =~ s/^ +//;
+ $line =~ s/\s+$//;
+ $line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.+)$/;
+ if (defined $1) {
+ my $vendor = uc $1;
+ my $text = $2;
+
+ if ($text =~ m/^IEEE REGISTRATION AUTHORITY/) {
+ next;
+ }
+
+ # skip the IEEE owned prefixes
+ if (! exists $ieee_prefixes{ $vendor }) {
+ print(OUT "\n");
+ print(OUT "OUI:" . $vendor . "*\n");
+ print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
+ }
+ }
+ }
+ close(IN);
+
+ close(OUT);
+}
+
+usb_vendor();
+usb_classes();
+
+pci_vendor();
+pci_classes();
+
+sdio_vendor();
+sdio_classes();
+
+oui();
Index: eudev-3.2.10-new/hwdb
===================================================================
--- eudev-3.2.10-new/hwdb (nonexistent)
+++ eudev-3.2.10-new/hwdb (revision 5)
Property changes on: eudev-3.2.10-new/hwdb
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: eudev-3.2.10-new
===================================================================
--- eudev-3.2.10-new (nonexistent)
+++ eudev-3.2.10-new (revision 5)
Property changes on: eudev-3.2.10-new
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: file.list
===================================================================
--- file.list (nonexistent)
+++ file.list (revision 5)
@@ -0,0 +1,3 @@
+eudev-3.2.10/configure.ac
+eudev-3.2.10/hwdb/Makefile.am
+eudev-3.2.10/hwdb/ids-update.pl
Index: .
===================================================================
--- . (nonexistent)
+++ . (revision 5)
Property changes on: .
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~