From 053cb661375673774108664fe42f1197574ca3e9 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 2 Jan 2012 22:10:27 +0000 Subject: [PATCH] Support reading of compressed pci/usb databases #360849 by Samuli Suominen. Package-Manager: portage-2.2.0_alpha81/cvs/Linux x86_64 --- sys-fs/udev/ChangeLog | 6 +- sys-fs/udev/Manifest | 35 +++++----- sys-fs/udev/files/udev-175-zlib.patch | 94 +++++++++++++++++++++++++++ sys-fs/udev/udev-175-r1.ebuild | 12 ++-- 4 files changed, 124 insertions(+), 23 deletions(-) create mode 100644 sys-fs/udev/files/udev-175-zlib.patch diff --git a/sys-fs/udev/ChangeLog b/sys-fs/udev/ChangeLog index 51de8a4759df..667fe24f523c 100644 --- a/sys-fs/udev/ChangeLog +++ b/sys-fs/udev/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for sys-fs/udev # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.629 2012/01/01 21:49:17 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.630 2012/01/02 22:10:27 vapier Exp $ + + 02 Jan 2012; Mike Frysinger udev-175-r1.ebuild, + +files/udev-175-zlib.patch: + Support reading of compressed pci/usb databases #360849 by Samuli Suominen. 01 Jan 2012; Andreas K. Huettel +ChangeLog-2009: Split ChangeLog. diff --git a/sys-fs/udev/Manifest b/sys-fs/udev/Manifest index 41ce98c7dd8c..145d8610e7d8 100644 --- a/sys-fs/udev/Manifest +++ b/sys-fs/udev/Manifest @@ -1,5 +1,5 @@ -----BEGIN PGP SIGNED MESSAGE----- -Hash: SHA512 +Hash: SHA1 AUX 136/shell-compat-KV.sh 1012 RMD160 5bc85047b4237d502f7b0ccc7181f9974c2b0898 SHA1 bbc58d6181f3fc8d623de1537eddcc1ede919202 SHA256 2393918bc65c69e1c19d7712292c945a4adfe45ce02b88ae7663167b8745cf8b AUX 136/shell-compat-addon.sh 930 RMD160 c96a77a2085698e4ca3636994d1b6d07326e4b5f SHA1 d696a1ff942d31b493d385cff27bc9cbacd3fa47 SHA256 94b1fe1f5ba892c82798cec6f15b5c5c76e1902ef2d13701ddfbb54f19079af9 @@ -84,6 +84,7 @@ AUX udev-150-fix-missing-firmware-timeout.diff 1065 RMD160 79a9fa2321d9d9fc6cf03 AUX udev-151-readd-hd-rules.diff 2759 RMD160 5a3e52ce6442ef14f5f89faa36f98ddeb06fda00 SHA1 d954725615e963ba2854c0e4c0a424450e89280e SHA256 47eb3b3dd8c8c3199148aa083a47b2cbd29953b647b6ed06391424a353e6d39c AUX udev-164-remove-v4l1.patch 1263 RMD160 6fac54e8ef9810c57065f730e3fcacb0a47f9143 SHA1 491bdba9b141acff68b9cd18b65055d9f7f41b54 SHA256 df8a13ea471f40383438aa5133465f580841e5cd7a95aedc090d85f7389a6403 AUX udev-167-revert-disable-all-extras.patch 1281 RMD160 fd62b74bc534aad58690615edc5cbeafcacf3b3e SHA1 3a822ef8b94d5d08cb80546de1b6b5a56b958fea SHA256 fb695c5032f30a2091554db4dcb2713025ffc7e01036e39910421776a54c95d0 +AUX udev-175-zlib.patch 2699 RMD160 d0da79d2716ec55370b1f3e6b9039064bae6bf92 SHA1 c9f77c0d6583e8ac8036d8d638ab7dcdc017ccb3 SHA256 064d28cd5c57d3e73445517943c3da9dba98544db8edf025e3f5d98ec11266e4 AUX udev-postmount-initd-111-r2 508 RMD160 e1f42197fe3003ec4691b768a921029ce085becb SHA1 7ceb08150d429bd6b5cef88d76847575c6e89f22 SHA256 607deb133ab4be0d2fcb16346e86b3d8ae00bd62d2cbc1329458f278a1b1ff5c AUX udev-start-113-r2.sh 6515 RMD160 2ecaa37fd9e498e60f8cd5978cb4f7930594cf99 SHA1 670bb1845ed70442fe598a5580101be75e2402c9 SHA256 438bc31605c8d2e50bebedd7fbff1410845738372ab3bc03d6f5ed1427ddd046 AUX udev-start-114-r1.sh 6218 RMD160 a7348ac44768096b3da712a9be0ef4bf9af6ec17 SHA1 6dfcb9aed5e066d21bebee03d29137722db19b56 SHA256 a639a6f1093f05da197c3fc548c31f7078b2f0023f66f3caade0721c60819268 @@ -130,25 +131,25 @@ EBUILD udev-149.ebuild 16615 RMD160 03518a87dbf75a07d92e36b4f2502205b9b9bf9e SHA EBUILD udev-151-r4.ebuild 16854 RMD160 2a3020c386c7febec51547f11adb56047d014ba6 SHA1 193231e2d153210345eff34a29de29e0848e46b2 SHA256 0f23858a6e5b7e88062d44230b8682a26a7f658fb054d0dffffdbb055dfc6c3c EBUILD udev-164-r2.ebuild 15293 RMD160 5ecd48a263c88c1943c9a8666e3f5189cce17917 SHA1 012c6929f96d77c59e15311dc62de36469189b5b SHA256 04ba93884db303008bf4027494775eb42b02d7ffd50d0620e3f2dbbc42bf37bc EBUILD udev-171-r5.ebuild 15561 RMD160 bc5f202faa0744571fd1ecb9f47ca92b47f5dc94 SHA1 f0d1b4e6d00795b5a8bc06df16687a94f2708502 SHA256 e2475435b4b20a2400585dca9845cf9244cd4ac914d463a1fc4910b099f3336c -EBUILD udev-175-r1.ebuild 12553 RMD160 fde4a1f6f5efff377d83943be9b6c4cea0548940 SHA1 fb80d3a1e52ee7165ec80be0ea8ad56a43a55479 SHA256 795df1ec343abee162d679c581ac89a67e285dce6fad21f784366f021fb2c8d4 +EBUILD udev-175-r1.ebuild 12638 RMD160 5c8cc194980df363c0cf4f1fbf0abec0571c4963 SHA1 3d6f67637fc6f7f3b0c7a216f23221f132fed826 SHA256 e3b81b7c9190e9b594a6b10f554bed314e22ea1742ea480a61b6534fb361dc4e EBUILD udev-9999.ebuild 12396 RMD160 d4a0d680d94d316cde14158a702eaf47c51522b1 SHA1 77ee95bb85d56d8df66e70f47fb898c016c073c2 SHA256 e4624b5bc0643ad2cdbeeddbbbb2441c8d3ee30b9cffd9e45498f2c144eee9e0 -MISC ChangeLog 22338 RMD160 f36a0b5f534d1b2b6e8522020154907bf9833639 SHA1 63f62a7249f575bc784f103b18b6f16145d6cb45 SHA256 45cbd00443cfef13db63be44548a2f03e9b22e9e43b258b41cef19a9d08fb2fd +MISC ChangeLog 22514 RMD160 df578df1221446596abe5dc132fc53c6adfe3f78 SHA1 c9c489322bcdae752377bbb6b8fda2c7a66aabfd SHA256 8460da7807b320dc6f54bcda364587b2564f6ff2d812b09d8b30296b9249606d MISC ChangeLog-2009 105929 RMD160 0c1dd5616962702fb0e85e4f9572fa27b0ee9d0f SHA1 d5635636ae54db968b8405a66be7d20c8d3f99ae SHA256 7a8d7123b7395dc5bbde09a8c0cee1c5110d24faf87a68a8210b0c6bdf862c1c MISC metadata.xml 1235 RMD160 36ff4665ed99aa392ff8003e9351bd620cc79424 SHA1 3fd0e915598c248b5c7d609b6a98a4cde8431b05 SHA256 dbbbd093a910a5cb541d7be160f749dc87fc699d72165c184965fa056d60f24b -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.17 (GNU/Linux) +Version: GnuPG v2.0.18 (GNU/Linux) -iQIcBAEBCgAGBQJPANVYAAoJEEb+UGWnxTyH5XYQALmP+WgGO+WXlWcVgl8R4GE7 -JVAbxsELOrvyWS4w5oPacSNKHQSHGNc5yHM2lcR6zo1L9Y+ftykjMQsU7UX1aG9D -Bx6jlVynqVSz+4RUbNhK28m3/0juctCTJ3qEPwE8CDsrwaTbFsuB3UaGk5dXraOj -88EISFksl+BByE1jt18dK6VUxzORjLsIEVjCk2BNmA1e/puzbxkUY6n2Luyx6uEv -/uBRlojXptHWR2LESJ8VquZ+VI4U4xP9HOqND+p8Mw1uD845GlOVJxbe/r7xRXqV -243oA+JaLIwLm/hHSqTzxtvBWJaqwOEpNwWlPWpGACSPTHejDHQpmIt/Pf0wheOR -h7Sh92kLpXpQmto/0+CfhSjHCniMCrYddtuzYKMNXOyrbIF64UINZ8Kg4SgtKGGA -V8W1/4b93DMuFuNYfKmRfFdSqa1w1kaeS21VrvKqtz125kkGrM76/pujaLtqiceA -RmxBGv1ml9//5ME2kjuYtXZQ6SeoCoCYZjehgRqRu5iP2Iv/uego2ZPk78VyXmlM -Zr/ms0z5FfgEqDc3N3Q1PNGguPxnqaiv2ULI7fGoLPhkleTWbmjLoAD9diQdZpwf -EXweQYGM/wadihrev68U0QjBBm88ts5iuV+jCOKrHF+WFN6U2uorP44do3/ga2Sy -7DCD0CVqtR0dvNckweaP -=K79v +iQIcBAEBAgAGBQJPAitgAAoJELEHsLL7fEFWa/QQAJTysf0fE1XdfTOu0eK4uN+B +2cosC8K+rm/DbW5LMaMwvZm9OZKD3JtS+yV+DuC7wXLpx6zjyAqITEWFFvlz4uRD +SNAzBjmk7Lk3xOfiJVCobBToGfwuED9sYALZY3Eo7Hu5JC7BvEFjAOBi/EZwKlP8 +NaUlFVuLdCsygXaN/ZLORFupaLAaFPO21ANJzX5mTHyYabyNBE7xHBWFVY7yhy5Z +oWB149VJFHufEZ3finHLgnIJIuQP3Xh5W45dtuzDykGS7syxxIHT+rHEyYm0Skp8 +s/gCKcUc0VF0MK3c508kF1DrkaH6cr3oEoZZzTkvtJruqMqKyHS95HYEi9/WsMiu +efORR6dsEKe+1hOrurSRMepkMNZGtdnDSZOVqKN1uNVfqTN7Mfsu0vnFgk0H/TI3 +j3fB8yRWZHGyIQ1mUvfwqHqP/+dnWnn/OAmeLDj4yZEAiHPsyYx6nu3OYXYJOmnH +Md/o9n6v1WdUlZE4WPRi/YFJbwDHB91QbHCufczjHOl7LfTHh5tq5RdTbiUA6Ehw +QPTMFnDif3yC03YbE2QN/z4LIktBifCDduE561W9k02vkBtIlyRJo9Hw36/SOHwj +Y1uJfvacVw64Iw0CwFn7dpk8WgdIjxuhX1Ume8YXqb5MWW5mGWA7IuExVI+JKvF4 +WySMoRsB5vYxlYdZqpz9 +=1AeY -----END PGP SIGNATURE----- diff --git a/sys-fs/udev/files/udev-175-zlib.patch b/sys-fs/udev/files/udev-175-zlib.patch new file mode 100644 index 000000000000..d6886d9abac7 --- /dev/null +++ b/sys-fs/udev/files/udev-175-zlib.patch @@ -0,0 +1,94 @@ +https://bugs.gentoo.org/360849 + +support opening the compressed pci/usb databases + +--- a/extras/usb-db/usb-db.c ++++ b/extras/usb-db/usb-db.c +@@ -90,19 +90,60 @@ + #define HEXCHARS "0123456789abcdefABCDEF" + #define WHITESPACE " \t\n\r" + ++#ifdef USE_ZLIB ++ ++#include ++ ++static ssize_t gz_getline(char **lineptr, size_t *n, void *stream) ++{ ++ if (!*lineptr) ++ *lineptr = malloc(*n = 4096); ++ if (!*lineptr) ++ return -1; ++ if (gzgets(stream, *lineptr, *n - 1)) { ++ (*lineptr)[*n - 1] = '\0'; ++ /* should return strlen(*lineptr), but caller doesn't care */ ++ return 0; ++ } ++ return -1; ++} ++static int gz_fclose(void *stream) ++{ ++ return gzclose(stream); ++} ++ ++static ssize_t stdio_getline(char **lineptr, size_t *n, void *stream) ++{ ++ return getline(lineptr, n, stream); ++} ++static int stdio_fclose(void *stream) ++{ ++ return fclose(stream); ++} ++ ++#endif ++ + static int lookup_vid_pid( + uint16_t vid, + uint16_t pid, + char **vendor, + char **product) { + +- FILE *f; ++ void *f; + int ret = -1; + int found_vendor = 0; + char *line = NULL; + + *vendor = *product = NULL; + ++#ifdef USE_ZLIB ++ ssize_t (*getline)(char **lineptr, size_t *n, void *stream) = stdio_getline; ++ int (*fclose)(void *stream) = stdio_fclose; ++ if ((f = gzopen(DATABASE ".gz", "r"))) { ++ getline = gz_getline; ++ fclose = gz_fclose; ++ } else ++#endif + if (!(f = fopen(DATABASE, "r"))) { + fprintf(stderr, "Failed to open database file "DATABASE": %s\n", strerror(errno)); + return -1; +@@ -111,11 +152,6 @@ + for (;;) { + size_t n; + +- if (line) { +- free(line); +- line = NULL; +- } +- + if (getline(&line, &n, f) < 0) + break; + +--- a/Makefile.in ++++ b/Makefile.in +@@ -987,7 +987,7 @@ + # ------------------------------------------------------------------------------ + @ENABLE_HWDB_TRUE@extras_usb_db_usb_db_SOURCES = extras/usb-db/usb-db.c +-@ENABLE_HWDB_TRUE@extras_usb_db_usb_db_CPPFLAGS = $(AM_CPPFLAGS) -DUSB_DATABASE=\"$(USB_DATABASE)\" -DBUILD_FOR_USB ++@ENABLE_HWDB_TRUE@extras_usb_db_usb_db_CPPFLAGS = $(AM_CPPFLAGS) -DUSB_DATABASE=\"$(USB_DATABASE)\" -DBUILD_FOR_USB -DUSE_ZLIB +-@ENABLE_HWDB_TRUE@extras_usb_db_usb_db_LDADD = libudev/libudev-private.la ++@ENABLE_HWDB_TRUE@extras_usb_db_usb_db_LDADD = libudev/libudev-private.la -lz + @ENABLE_HWDB_TRUE@extras_usb_db_pci_db_SOURCES = extras/usb-db/usb-db.c +-@ENABLE_HWDB_TRUE@extras_usb_db_pci_db_CPPFLAGS = $(AM_CPPFLAGS) -DPCI_DATABASE=\"$(PCI_DATABASE)\" -DBUILD_FOR_PCI ++@ENABLE_HWDB_TRUE@extras_usb_db_pci_db_CPPFLAGS = $(AM_CPPFLAGS) -DPCI_DATABASE=\"$(PCI_DATABASE)\" -DBUILD_FOR_PCI -DUSE_ZLIB +-@ENABLE_HWDB_TRUE@extras_usb_db_pci_db_LDADD = libudev/libudev-private.la ++@ENABLE_HWDB_TRUE@extras_usb_db_pci_db_LDADD = libudev/libudev-private.la -lz diff --git a/sys-fs/udev/udev-175-r1.ebuild b/sys-fs/udev/udev-175-r1.ebuild index 4487eeb3cb56..7b2477a5f66e 100644 --- a/sys-fs/udev/udev-175-r1.ebuild +++ b/sys-fs/udev/udev-175-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2011 Gentoo Foundation +# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-175-r1.ebuild,v 1.3 2011/12/29 19:32:46 williamh Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-175-r1.ebuild,v 1.4 2012/01/02 22:10:27 vapier Exp $ EAPI=4 @@ -34,14 +34,15 @@ HOMEPAGE="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" LICENSE="GPL-2" SLOT="0" IUSE="build selinux debug +rule_generator hwdb acl gudev introspection - keymap floppy edd doc" + keymap floppy edd doc +zlib" COMMON_DEPEND="selinux? ( sys-libs/libselinux ) acl? ( sys-apps/acl dev-libs/glib:2 ) gudev? ( dev-libs/glib:2 ) introspection? ( dev-libs/gobject-introspection ) >=sys-apps/util-linux-2.16 - >=sys-libs/glibc-2.10" + >=sys-libs/glibc-2.10 + zlib? ( sys-libs/zlib )" DEPEND="${COMMON_DEPEND} keymap? ( dev-util/gperf ) @@ -62,7 +63,7 @@ else fi RDEPEND="${COMMON_DEPEND} - hwdb? ( >=sys-apps/usbutils-0.82 sys-apps/pciutils[-zlib] ) + hwdb? ( >=sys-apps/usbutils-0.82 sys-apps/pciutils ) acl? ( sys-apps/coreutils[acl] ) !sys-apps/coldplug !