diff options
author | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-05-14 00:07:43 -0300 |
---|---|---|
committer | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-05-14 00:07:43 -0300 |
commit | 6d90f2496f41209ab84d8b61d20b4d79d632ec7d (patch) | |
tree | 91a141bc21b17ccd6187b5c6a8b9f53367d9c93e | |
parent | 26841be26f283b971f431eb735f748cef7a5250d (diff) | |
parent | 2c4629f613c001fd29740d0f4c0e497c771a2182 (diff) |
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts:
community/frogatto/PKGBUILD
community/python-psycopg2/PKGBUILD
core/libtirpc/PKGBUILD
extra/cd-discid/PKGBUILD
extra/cups/PKGBUILD
extra/cyrus-sasl/PKGBUILD
extra/evolution-data-server/PKGBUILD
extra/gnome-control-center/PKGBUILD
extra/gnugo/PKGBUILD
extra/gperf/PKGBUILD
extra/gtk2/PKGBUILD
extra/kdegames/PKGBUILD
extra/kismet/PKGBUILD
extra/lzo/PKGBUILD
extra/mutt/PKGBUILD
extra/obconf/PKGBUILD
extra/opensp/PKGBUILD
extra/qt3/PKGBUILD
extra/re2c/PKGBUILD
extra/samba/PKGBUILD
extra/sharutils/PKGBUILD
extra/wireshark/PKGBUILD
149 files changed, 32677 insertions, 665 deletions
diff --git a/community/arch/PKGBUILD b/community/arch/PKGBUILD index 191df0ec5..de474a313 100644 --- a/community/arch/PKGBUILD +++ b/community/arch/PKGBUILD @@ -1,23 +1,27 @@ -# $Id: PKGBUILD 75248 2010-04-01 04:38:12Z allan $ +# $Id: PKGBUILD 46342 2011-05-05 11:48:15Z spupykin $ # Maintainer: Judd Vinet <jvinet@zeroflux.org> -pkgname=arch +pkgname='arch' pkgver=1.3.5 -pkgrel=7 +pkgrel=8 pkgdesc="a modern and remarkable revision control system" arch=('i686' 'x86_64' 'mips64el') license=('GPL') url="http://regexps.srparish.net/www/#Gnu-arch" -depends=('zlib' 'expat' 'heimdal') +depends=('zlib' 'expat' 'krb5') +options=('!makeflags') source=(ftp://ftp.gnu.org/gnu/gnu-arch/tla-$pkgver.tar.gz) md5sums=('db31ee89bc4788eef1eba1cee6c176ef') -options=('!makeflags') build() { cd "${srcdir}/tla-$pkgver/src" mkdir =build cd =build ../configure --prefix /usr - make || return 1 + make +} + +package() { + cd "${srcdir}/tla-$pkgver/src/=build" make prefix="${pkgdir}/usr" install } diff --git a/community/autofs/PKGBUILD b/community/autofs/PKGBUILD index 4dd49240e..26894dd02 100644 --- a/community/autofs/PKGBUILD +++ b/community/autofs/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 41838 2011-03-09 17:53:24Z lfleischer $ +# $Id: PKGBUILD 46345 2011-05-05 11:57:37Z spupykin $ # Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Dale Blount <dale@archlinux.org> @@ -6,12 +6,12 @@ pkgname=autofs pkgver=5.0.5 -pkgrel=5 +pkgrel=6 pkgdesc='A kernel-based automounter for Linux.' arch=('i686' 'x86_64' 'mips64el') url='http://freshmeat.net/projects/autofs' license=('GPL2') -depends=('libldap' 'libxml2' 'heimdal') +depends=('libldap' 'libxml2' 'krb5') backup=('etc/autofs/auto.master' 'etc/autofs/auto.misc' 'etc/conf.d/autofs') @@ -21,21 +21,18 @@ source=("http://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgv 'autofs' 'autofs.conf.d' 'auto.master' - 'auto.misc' - 'heimdal.patch') + 'auto.misc') md5sums=('a1d262cb6ebef0c2dd0fe22232fb3d5a' 'e307bf6d2638e46eeb916cf42fe029b2' '47f597c870410055e0fdb66103daf928' 'a6cefb591e77b31b79dbb7243646c96b' - 'd8a15ec9186c5c0b36e5cea1e2739e8a' - 'efd46b6406b940cb48f7c6197790fb8e') + 'd8a15ec9186c5c0b36e5cea1e2739e8a') build() { cd "${srcdir}/${pkgname}-${pkgver}" sed -i "s:SUBDIRS = lib daemon modules man samples:SUBDIRS = lib daemon modules man:" \ Makefile.rules - patch -Np1 -i "${srcdir}/heimdal.patch" ./configure --prefix=/usr --sysconfdir=/etc/autofs --with-mapdir=/etc/autofs --without-hesiod \ --enable-ignore-busy @@ -46,7 +43,7 @@ package() { cd "${srcdir}/${pkgname}-${pkgver}" make INSTALLROOT="${pkgdir}" install - + install -Dm0644 "${srcdir}/auto.master" "${pkgdir}/etc/autofs/auto.master" install -Dm0644 "${srcdir}/auto.misc" "${pkgdir}/etc/autofs/auto.misc" install -Dm0755 "${srcdir}/autofs" "${pkgdir}/etc/rc.d/autofs" diff --git a/community/cadaver/PKGBUILD b/community/cadaver/PKGBUILD index aef71b7dc..48f5205db 100644 --- a/community/cadaver/PKGBUILD +++ b/community/cadaver/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 25264 2010-09-03 11:24:01Z spupykin $ +# $Id: PKGBUILD 46500 2011-05-07 23:09:15Z stephane $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: William Rea <sillywilly@gmail.com> pkgname=cadaver pkgver=0.23.3 -pkgrel=1 +pkgrel=2 pkgdesc="Command-line WebDAV client for Unix" arch=('i686' 'x86_64' 'mips64el') url="http://www.webdav.org/cadaver" @@ -16,6 +16,10 @@ md5sums=('502ecd601e467f8b16056d2acca39a6f') build() { cd $srcdir/cadaver-$pkgver ./configure --prefix=/usr - make || return 1 + make +} + +package() { + cd $srcdir/cadaver-$pkgver make prefix=$pkgdir/usr install } diff --git a/community/docky/PKGBUILD b/community/docky/PKGBUILD index 2f030e654..830375ad3 100644 --- a/community/docky/PKGBUILD +++ b/community/docky/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 42638 2011-03-18 21:02:48Z heftig $ +# $Id: PKGBUILD 46732 2011-05-11 08:50:44Z heftig $ # Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com> # Contributor: dieghen89 <dieghen89@gmail.com> # Contributor: Alessio 'Bl@ster' Biancalana <dottorblaster@gmail.com> pkgname=docky -pkgver=2.1.1 +pkgver=2.1.2 pkgrel=1 pkgdesc="The finest dock no money can buy!" url="https://launchpad.net/docky" @@ -16,10 +16,8 @@ depends=(gnome-desktop-sharp gnome-keyring-sharp gtk2 mono-addins makedepends=(intltool) options=('!libtool' '!emptydirs') install=docky.install -source=("http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz" - "bzr-1798.diff") -md5sums=('628418e11088b96d47287dac6e838507' - 'e7fddf932967d37ad9bc060ba3bda15f') +source=("http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz") +md5sums=('a3597810198714b14dfbc9cfd1222fd2') build() { cd "$srcdir/$pkgname-$pkgver" @@ -27,8 +25,6 @@ build() { export MONO_SHARED_DIR="$srcdir/.wabi" mkdir -p "$MONO_SHARED_DIR" - patch -Np0 -i "$srcdir/bzr-1798.diff" - ./configure \ --prefix=/usr \ --sysconfdir=/etc diff --git a/community/espeak/PKGBUILD b/community/espeak/PKGBUILD index 450892dba..e1a8efcb9 100644 --- a/community/espeak/PKGBUILD +++ b/community/espeak/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 45579 2011-04-24 17:47:21Z mherych $ +# $Id: PKGBUILD 46811 2011-05-12 17:39:15Z mherych $ # Maintainer: Mateusz Herych <heniekk@gmail.com> # Contributor: niQo # Contributor: Christoph Siegenthaler <csi@gmx.ch> pkgname=espeak -pkgver=1.45.03 +pkgver=1.45.04 pkgrel=1 pkgdesc="Text to Speech engine for good quality English, with support for other languages" arch=('i686' 'x86_64' 'mips64el') @@ -12,7 +12,7 @@ url="http://espeak.sourceforge.net/" license=('GPL') depends=('gcc-libs' 'portaudio') source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}-source.zip) -md5sums=('68fbabb4e2021b83f606ad6a019e98df') +md5sums=('6e810d2786b55cddb34f31b3eb813507') build() { cd $srcdir/$pkgname-$pkgver-source/src diff --git a/community/freeradius/PKGBUILD b/community/freeradius/PKGBUILD index f436f8eef..ebcdb045d 100644 --- a/community/freeradius/PKGBUILD +++ b/community/freeradius/PKGBUILD @@ -1,36 +1,41 @@ -# $Id: PKGBUILD 44168 2011-04-04 11:24:12Z spupykin $ +# $Id: PKGBUILD 45793 2011-04-29 10:36:54Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Jason R Begley (jayray@digitalgoat.com> pkgname=freeradius pkgver=2.1.10 -pkgrel=5 +pkgrel=6 pkgdesc="The premier open source RADIUS server" arch=('i686' 'x86_64' 'mips64el') url="http://www.freeradius.org/" license=("GPL") -depends=('openssl' 'heimdal' 'pth' 'libldap>=2.4.18' 'net-snmp' 'pam' \ +depends=('openssl' 'krb5' 'pth' 'libldap>=2.4.18' 'net-snmp' 'pam' \ 'postgresql-libs>=9.0.3' 'libtool' 'libmysqlclient' 'gdbm' 'shadow') optdepends=('libpcap' 'unixodbc' 'python2') options=('!libtool' 'emptydirs' '!makeflags') install=$pkgname.install source=(ftp://ftp.freeradius.org/pub/radius/freeradius-server-$pkgver.tar.bz2 \ - radiusd) + radiusd + krb5-build-fix.patch) md5sums=('8ea2bd39460a06212decf2c14fdf3fb8' - 'f1a6530b1b69d2fa793aa45b2de379bb') + 'f1a6530b1b69d2fa793aa45b2de379bb' + 'c6a61de7576933f59154a53bfc12a2d2') build() { cd $srcdir/freeradius-server-$pkgver export CFLAGS="$CFLAGS -fno-strict-aliasing" - # Fix compilation with heimdal >= 1.3.1 - # Don't mess around with KRB5_DEPRECATED which is used internally :o sed -i 's/ -DKRB5_DEPRECATED//' src/modules/rlm_krb5/Makefile.in + patch -p1 <$srcdir/krb5-build-fix.patch ./configure --with-system-libtool --with-system-libltdl \ --prefix=/usr --enable-heimdal-krb5 \ --localstatedir=/var \ --sysconfdir=/etc \ --libdir=/usr/lib/freeradius make +} + +package() { + cd $srcdir/freeradius-server-$pkgver make install R=$pkgdir install -D -m755 ../radiusd $pkgdir/etc/rc.d/radiusd chmod o+r $pkgdir/etc/raddb/* diff --git a/community/freeradius/krb5-build-fix.patch b/community/freeradius/krb5-build-fix.patch new file mode 100644 index 000000000..11dae7090 --- /dev/null +++ b/community/freeradius/krb5-build-fix.patch @@ -0,0 +1,21 @@ +diff -wbBur freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c +--- freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c 2010-09-28 11:03:56.000000000 +0000 ++++ freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c 2011-04-29 09:26:10.000000000 +0000 +@@ -375,7 +375,7 @@ + * Heimdal krb5 verification + */ + radlog(L_AUTH, "rlm_krb5: Parsed name is: %s@%s\n", +- *userP->name.name_string.val, ++ "-" /* *userP->name.name_string.val*/, + userP->realm); + + krb5_cc_default(context, &id); +@@ -390,7 +390,7 @@ + + radlog(L_AUTH, "rlm_krb5: failed verify_user: %s (%s@%s )", + error_message(ret), +- *userP->name.name_string.val, ++ "-" /* *userP->name.name_string.val */, + userP->realm); + + return RLM_MODULE_REJECT; diff --git a/community/freerdp/PKGBUILD b/community/freerdp/PKGBUILD index 1818e7ed3..c91cd3d48 100644 --- a/community/freerdp/PKGBUILD +++ b/community/freerdp/PKGBUILD @@ -1,15 +1,16 @@ -# $Id: PKGBUILD 32552 2010-11-14 16:59:14Z spupykin $ +# $Id: PKGBUILD 45796 2011-04-29 10:42:30Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Stijn Segers <francesco dot borromini at gmail dot com> pkgname=freerdp pkgver=0.8.2 -pkgrel=1 +pkgrel=2 pkgdesc="Free RDP client" arch=('i686' 'x86_64' 'mips64el') url="http://freerdp.sourceforge.net" license=('GPL') depends=('openssl' 'libxcursor' 'libcups' 'alsa-lib') +makedepends=('krb5') conflicts=('freerdp-git') changelog=${pkgname}.changelog options=('!libtool') @@ -21,5 +22,9 @@ build() { [ -x configure ] || sh ./autogen.sh ./configure --prefix=/usr make +} + +package() { + cd `find ${srcdir}/ -type d -name freerdp-\*` make DESTDIR="${pkgdir}" install } diff --git a/community/frogatto/PKGBUILD b/community/frogatto/PKGBUILD index 7dc246aa6..b4da0526c 100644 --- a/community/frogatto/PKGBUILD +++ b/community/frogatto/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 40999 2011-03-03 04:25:46Z svenstaro $ +# $Id: PKGBUILD 46852 2011-05-12 23:55:35Z svenstaro $ # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Tom Wambold <tom5760@gmail.com> pkgname='frogatto' -arch=('i686' 'x86_64' 'mips64el') -pkgver=1.0.3 -pkgrel=3 +arch=('i686' 'x86_64') +pkgver=1.1 +pkgrel=1 pkgdesc="An old-school 2d platformer game, starring a certain quixotic frog" url="http://www.frogatto.com" license=('GPL') @@ -14,7 +14,7 @@ makedepends=('boost') source=(http://www.frogatto.com/files/$pkgname-$pkgver.tar.bz2 frogatto frogatto.desktop) -md5sums=('1e9ffe729c78c88d1e29147694299531' +md5sums=('8c01c8a1d7ecf820a682eb684d8bf739' '9ed2c9ea59e95fe3c0b3ad49e58f8890' 'e31563b04748a39292a59aaad633ff58') diff --git a/community/gimmie/ChangeLog b/community/gimmie/ChangeLog new file mode 100644 index 000000000..7fd5bbf99 --- /dev/null +++ b/community/gimmie/ChangeLog @@ -0,0 +1,2 @@ +2007-06-26 tardo <tardo@nagi-fanboi.net> +* Built for x86_64 diff --git a/community/gimmie/PKGBUILD b/community/gimmie/PKGBUILD new file mode 100644 index 000000000..601d39576 --- /dev/null +++ b/community/gimmie/PKGBUILD @@ -0,0 +1,44 @@ +# $Id: PKGBUILD 44484 2011-04-07 20:23:57Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: György Balló <ballogy@freestart.hu> + +pkgname=gimmie +pkgver=0.2.8 +pkgrel=16 +pkgdesc="desktop organizer which allows interaction with applications, contacts, documents, etc" +arch=('i686' 'x86_64') +url="http://beatniksoftware.com/gimmie/" +license=('LGPL') +depends=('libgnomecups' 'dbus-python' 'python2-gconf' 'python-gnomeapplet' + 'python-gnomedesktop' 'python2-libgnome' 'python-wnck' 'pyxdg' + 'hicolor-icon-theme' 'xdg-utils') +makedepends=('findutils' 'perlxml' 'krb5') +options=(!libtool) +install=$pkgname.install +source=(http://www.beatniksoftware.com/gimmie/releases/$pkgname-$pkgver.tar.gz) +md5sums=('721b8ec80f0247e1281aeb4aa5614c2f') + +build() { + cd "$srcdir/$pkgname-$pkgver" + sed -i 's@^#!.*python$@#!/usr/bin/python2@' gimmie/gimmie_{threads,bar}.py + + export CFLAGS="$CFLAGS `pkg-config --cflags glib-2.0`" + export LDFLAGS="$LDFLAGS `pkg-config --libs glib-2.0`" + + export CFLAGS="$CFLAGS `pkg-config --cflags gtk+-2.0`" + export LDFLAGS="$LDFLAGS `pkg-config --libs gtk+-2.0`" + + export CFLAGS="$CFLAGS `pkg-config --cflags pygtk-2.0`" + export LDFLAGS="$LDFLAGS `pkg-config --libs pygtk-2.0`" + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir="/usr/lib/$pkgname" \ + --disable-static --disable-schemas-install \ + --with-gconf-schema-file-dir=/usr/share/gconf/schemas \ + PYTHON=/usr/bin/python2 + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir/" install +} diff --git a/community/gimmie/gimmie.install b/community/gimmie/gimmie.install new file mode 100644 index 000000000..015be0a4d --- /dev/null +++ b/community/gimmie/gimmie.install @@ -0,0 +1,22 @@ +pkgname=gimmie + +post_install() { + gconfpkg --install $pkgname + xdg-icon-resource forceupdate +} + +pre_upgrade() { + pre_remove $1 +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + gconfpkg --uninstall $pkgname +} + +post_remove() { + xdg-icon-resource forceupdate +} diff --git a/community/grace/PKGBUILD b/community/grace/PKGBUILD index 382d1ae8e..cbcc79361 100644 --- a/community/grace/PKGBUILD +++ b/community/grace/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 32615 2010-11-15 22:22:27Z spupykin $ +# $Id: PKGBUILD 46737 2011-05-11 10:00:50Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: damir <damir@archlinux.org> # Contributor: Damir Perisa <damir.perisa@bluewin.ch> pkgname=grace pkgver=5.1.22 -pkgrel=4 +pkgrel=5 pkgdesc="2D plotting tool" arch=(i686 x86_64 'mips64el') url="http://plasma-gate.weizmann.ac.il/Grace/" @@ -14,7 +14,6 @@ makedepends=('netcdf' 'fftw') license=('GPL') source=(ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/$pkgname-$pkgver.tar.gz) md5sums=('672356466f18fe59ed21a8fb44f9851d') -md5sums=('672356466f18fe59ed21a8fb44f9851d') build() { cd $srcdir/$pkgname-$pkgver @@ -23,6 +22,10 @@ build() { --includedir=/usr/include --libdir=/usr/lib \ -with-helpviewer="firefox %s" make +} + +package() { + cd $srcdir/$pkgname-$pkgver make DESTDIR=$pkgdir install cd $pkgdir/usr/share/grace && mv bin lib include ../../ } diff --git a/community/gsasl/PKGBUILD b/community/gsasl/PKGBUILD index ca80bc8c5..ea52e7e6d 100644 --- a/community/gsasl/PKGBUILD +++ b/community/gsasl/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 32555 2010-11-14 16:59:49Z spupykin $ +# $Id: PKGBUILD 45799 2011-04-29 10:48:15Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Orivej Desh <smpuj@bk.ru> # Maintainer: Orivej Desh <smpuj@bk.ru> pkgname=gsasl pkgver=1.5.4 -pkgrel=1 +pkgrel=2 pkgdesc="Simple Authentication and Security Layer framework and a few common SASL mechanisms" arch=("i686" "x86_64" 'mips64el') url="http://josefsson.org/gsasl/" license=("GPL") -depends=(gnutls libidn heimdal) +depends=('gnutls' 'libidn' 'krb5') source=("ftp://alpha.gnu.org/gnu/gsasl/$pkgname-$pkgver.tar.gz") md5sums=('44cf5073a6ee2d77d526605bd6ab3904') @@ -18,6 +18,10 @@ build() { cd "$srcdir/$pkgname-$pkgver" ./configure --prefix=/usr make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" make DESTDIR="$pkgdir" install rm "$pkgdir/usr/share/info/dir" "$pkgdir/usr/lib/libgsasl.la" } diff --git a/community/gtranslator/PKGBUILD b/community/gtranslator/PKGBUILD index 39a6ff6d7..3af3c801d 100644 --- a/community/gtranslator/PKGBUILD +++ b/community/gtranslator/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 36845 2011-01-09 07:08:21Z jlichtblau $ +# $Id: PKGBUILD 46844 2011-05-12 21:09:34Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Hugo Doria <hugo@archlinux.org> # Contributor: Christer Solskogen (solskogen@carebears.mine.nu) pkgname=gtranslator -pkgver=1.9.13 +pkgver=2.90.3 pkgrel=1 pkgdesc="An enhanced gettext po file editor for the GNOME" arch=('i686' 'x86_64' 'mips64el') url="http://projects.gnome.org/gtranslator/" license=('GPL') -depends=('gdl' 'gettext' 'gtksourceview2' 'gtkspell' 'libgda' 'libunique' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'dconf') +depends=('desktop-file-utils' 'gdl' 'gettext' 'gtksourceview3' 'gtkspell' 'iso-codes' 'libgda' 'libpeas' 'libunique' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'dconf') makedepends=('intltool' 'gnome-doc-utils' 'gnome-utils' 'gucharmap' 'json-glib') optdepends=('gtkspell: spell check' 'gucharmap: for charmap plugin' @@ -18,8 +18,8 @@ optdepends=('gtkspell: spell check' options=('!libtool') install=$pkgname.install changelog=$pkgname.changelog -source=(http://ftp.acc.umu.se/pub/GNOME/sources/$pkgname/1.9/$pkgname-$pkgver.tar.bz2) -sha256sums=('c0b371b81630cf2e4efb6968c20f7580c62c34d9161c852a5d008622cd91408e') +source=(http://ftp.acc.umu.se/pub/GNOME/sources/$pkgname/2.90/$pkgname-$pkgver.tar.bz2) +sha256sums=('7b4b3e20a946b553625de73a7503cd8e5d5825a21aeed292348b7b234197c5f7') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/community/gtranslator/gtranslator.changelog b/community/gtranslator/gtranslator.changelog index 772720fbf..7432844bb 100644 --- a/community/gtranslator/gtranslator.changelog +++ b/community/gtranslator/gtranslator.changelog @@ -1,3 +1,6 @@ +2011-05-12 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org> + * gtranslator 2.90.3-1 + 2011-01-09 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org> * gtranslator-1.9.13-1 diff --git a/community/gtranslator/gtranslator.install b/community/gtranslator/gtranslator.install index ea0fb1346..390bbf2b0 100644 --- a/community/gtranslator/gtranslator.install +++ b/community/gtranslator/gtranslator.install @@ -1,17 +1,13 @@ post_install() { usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas gtk-update-icon-cache -q -t -f usr/share/icons/hicolor -} - -pre_upgrade() { - pre_remove + update-desktop-database -q } post_upgrade() { post_install } -pre_remove() { - usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +post_remove() { + post_install } diff --git a/community/ipsec-tools/PKGBUILD b/community/ipsec-tools/PKGBUILD index d2f5c74cb..dde4114bb 100644 --- a/community/ipsec-tools/PKGBUILD +++ b/community/ipsec-tools/PKGBUILD @@ -1,21 +1,21 @@ -# $Id: PKGBUILD 43019 2011-03-23 21:22:06Z spupykin $ +# $Id: PKGBUILD 45815 2011-04-29 12:08:18Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Allan Henriksen <allan.henriksen@gmail.com> pkgname=ipsec-tools pkgver=0.8.0 -pkgrel=1 +pkgrel=2 pkgdesc="KAME IPSec tools ported to Linux" arch=('i686' 'x86_64' 'mips64el') url="http://ipsec-tools.sourceforge.net/" -depends=('readline' 'openssl') +depends=('readline' 'openssl' 'krb5') license=('GPL') options=('!makeflags' '!libtool') source=(http://downloads.sourceforge.net/sourceforge/ipsec-tools/$pkgname-$pkgver.tar.bz2 racoon.rc ipsec.rc) md5sums=('b79aae3055a51f8de5c0f1b8ca6cf619' - 'a9d89177f0eecd1df4fbe21c201ee046' + '416b8e362d86987b8c55f7153cdafbeb' '90d0810267cbd847383ae3101699b192') build() { @@ -23,8 +23,12 @@ build() { sed -i 's#-Werror##' configure ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ --enable-security-context=no --enable-hybrid --enable-dpd --enable-natt \ - --enable-adminport + --enable-adminport --enable-gssapi make +} + +package() { + cd $srcdir/$pkgname-$pkgver make DESTDIR=$pkgdir install install -Dm0755 $srcdir/racoon.rc $pkgdir/etc/rc.d/racoon install -Dm0755 $srcdir/ipsec.rc $pkgdir/etc/rc.d/ipsec diff --git a/community/ipsec-tools/racoon.rc b/community/ipsec-tools/racoon.rc index 92eccb4e7..1a67dcac5 100755 --- a/community/ipsec-tools/racoon.rc +++ b/community/ipsec-tools/racoon.rc @@ -30,6 +30,6 @@ case "$1" in $0 start ;; *) - echo "usage: $0 {start|stop|restart}" + echo "usage: $0 {start|stop|restart}" esac exit 0 diff --git a/community/mygui/PKGBUILD b/community/mygui/PKGBUILD index 794ce0b29..7d0947b93 100644 --- a/community/mygui/PKGBUILD +++ b/community/mygui/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 41951 2011-03-11 07:40:58Z ibiru $ +# $Id: PKGBUILD 46788 2011-05-11 17:19:25Z svenstaro $ # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Andrew Belitsky <belitsky.a@gmail.com> pkgbase=mygui pkgname=('mygui' 'mygui-docs') pkgver=3.0.1 -pkgrel=6 +pkgrel=7 pkgdesc="A multilayer and overlappable GUI System for OGRE" arch=('i686' 'x86_64' 'mips64el') url="http://mygui.info/" diff --git a/community/nautilus-actions/PKGBUILD b/community/nautilus-actions/PKGBUILD index 6763c1e81..baa835c84 100644 --- a/community/nautilus-actions/PKGBUILD +++ b/community/nautilus-actions/PKGBUILD @@ -1,25 +1,26 @@ -# $Id: PKGBUILD 36766 2011-01-07 20:20:52Z ibiru $ +# $Id: PKGBUILD 46806 2011-05-12 16:08:55Z ibiru $ # Maintainer : Ionut Biru <ibiru@archlinux.org> # Contributor: Roman Kyrylych <roman@archlinux.org> # Contributor: Tor Krill <tor@krill.nu> pkgname=nautilus-actions -pkgver=3.0.6 +pkgver=3.1.2 pkgrel=1 pkgdesc="Configures programs to be launched when files are selected in Nautilus" arch=('i686' 'x86_64' 'mips64el') url="http://gnome.org" license=('GPL') -depends=('nautilus' 'libgtop' 'desktop-file-utils' ) -makedepends=('intltool' 'gnome-doc-utils>=0.20.0') +depends=('nautilus' 'libgtop' 'desktop-file-utils' 'gconf' 'libsm') +makedepends=('intltool' 'gnome-doc-utils') install=nautilus-actions.install options=('!libtool') -source=(http://ftp.gnome.org/pub/GNOME/sources/nautilus-actions/3.0/$pkgname-$pkgver.tar.bz2) -sha256sums=('d78d2bfb69969616475452fdcdbce1c164c34de0ac81eeb1bdf5c06b17cec105') +source=(http://ftp.gnome.org/pub/GNOME/sources/nautilus-actions/3.1/$pkgname-$pkgver.tar.bz2) +sha256sums=('868c0f87cc80ee31074dcf4df736757655e396a9eafc19cd81b3dd05e4f940ac') build() { cd ${srcdir}/${pkgname}-${pkgver} - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libexecdir=/usr/lib/nautilus-actions make } diff --git a/community/pam-krb5/PKGBUILD b/community/pam-krb5/PKGBUILD index ee0ee3c84..49647afef 100644 --- a/community/pam-krb5/PKGBUILD +++ b/community/pam-krb5/PKGBUILD @@ -1,18 +1,16 @@ -# $Id: PKGBUILD 36761 2011-01-07 19:49:35Z kchen $ +# $Id: PKGBUILD 46339 2011-05-05 11:43:20Z spupykin $ # Maintainer: Kaiting Chen <kaitocracy@gmail.com> # Contributor: Ryan Corder <ryanc@greengrey.org> pkgname=pam-krb5 pkgver=4.4 -pkgrel=1 +pkgrel=2 pkgdesc='A PAM module providing Kerberos v5 support.' arch=('i686' 'x86_64' 'mips64el') url='http://www.eyrie.org/~eagle/software/pam-krb5/' license=('custom') options=('!libtool') - -depends=('heimdal' 'pam') - +depends=('krb5' 'pam') source=("http://archives.eyrie.org/software/kerberos/$pkgname-$pkgver.tar.gz") md5sums=('a3f9a414fef102cd815a763c965b315c') @@ -20,6 +18,11 @@ build() { cd "${srcdir}/${pkgname}-${pkgver}" ./configure --prefix=/usr \ --enable-reduced-depends - make; make DESTDIR=$pkgdir install + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR=$pkgdir install install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE } diff --git a/community/perl-gssapi/PKGBUILD b/community/perl-gssapi/PKGBUILD index b8ba1f533..e89e53e59 100644 --- a/community/perl-gssapi/PKGBUILD +++ b/community/perl-gssapi/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 35652 2010-12-21 23:13:32Z tdziedzic $ +# $Id: PKGBUILD 45801 2011-04-29 10:49:42Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Charles Mauch <cmauch@gmail.com> pkgname=perl-gssapi pkgver=0.28 -pkgrel=2 +pkgrel=3 pkgdesc="Perl/CPAN Module GSSAPI" arch=("i686" "x86_64" 'mips64el') url="http://search.cpan.org/dist/GSSAPI" license=("GPL" "PerlArtistic") -depends=('heimdal') +depends=('krb5') source=("http://www.cpan.org/authors/id/A/AG/AGROLMS/GSSAPI-$pkgver.tar.gz") md5sums=('65f00a0749212af064289c8a05e59b3f') @@ -17,6 +17,10 @@ build() { cd $srcdir/GSSAPI-$pkgver PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor make +} + +package() { + cd $srcdir/GSSAPI-$pkgver make install DESTDIR=$pkgdir find $pkgdir -name '.packlist' -delete find $pkgdir -name '*.pod' -delete diff --git a/community/pgadmin3/PKGBUILD b/community/pgadmin3/PKGBUILD index 54881e25b..bb4441b0a 100644 --- a/community/pgadmin3/PKGBUILD +++ b/community/pgadmin3/PKGBUILD @@ -1,31 +1,33 @@ -# $Id: PKGBUILD 36424 2011-01-02 00:33:59Z spupykin $ +# $Id: PKGBUILD 46331 2011-05-05 10:45:23Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org> # Contributor: Benjamin Andresen <benny@klapmuetz.org> # Contributor: bekks <eduard.warkentin@gmx.de> pkgname=pgadmin3 -pkgver=1.12.2 -_realver=1.12.2 +pkgver=1.12.3 +_realver=1.12.3 pkgrel=1 pkgdesc="A comprehensive design and management interface for PostgreSQL database" arch=('i686' 'x86_64' 'mips64el') url="http://www.pgadmin.org" license=('custom') depends=('wxgtk' 'postgresql-libs>=8.4.1' 'libxslt') -makedepends=('libpqxx') +makedepends=('libpqxx' 'krb5') source=(ftp://ftp.de.postgresql.org/pub/packages/databases/PostgreSQL/pgadmin3/release/v${_realver}/src/pgadmin3-${_realver}.tar.gz pgadmin3.desktop) -md5sums=('5b0e7b0867c42a529ce2a41bc7f830c8' +md5sums=('0ff7a970a14757ee951a4e8b1a246a70' 'd07ba4df54baead30b66d19d7450bcad') build() { cd $srcdir/pgadmin3-${_realver} - unset LDFLAGS - [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr make +} + +package() { + cd $srcdir/pgadmin3-${_realver} make DESTDIR=$pkgdir/ install install -D -m 644 i18n/$pkgname.lng $pkgdir/usr/share/pgadmin3/i18n diff --git a/community/pigeonhole/PKGBUILD b/community/pigeonhole/PKGBUILD index c3d318007..4d438af53 100644 --- a/community/pigeonhole/PKGBUILD +++ b/community/pigeonhole/PKGBUILD @@ -4,12 +4,12 @@ # This must be built against the version of dovecot being used, # else mail delivery will fail. # Specify the version of dovecot to be used here: -_dcpkgver=2.0.12 +_dcpkgver=2.0.13 # Make sure to bump pkgrel if changing this. pkgname=pigeonhole pkgver=0.2.3 -pkgrel=1 +pkgrel=2 pkgdesc="Fully rewritten Sieve implementation for Dovecot v2.0" arch=('i686' 'x86_64' 'mips64el') url="http://pigeonhole.dovecot.org/" diff --git a/community/python-psycopg2/PKGBUILD b/community/python-psycopg2/PKGBUILD index f77e16594..f6cd2951b 100644 --- a/community/python-psycopg2/PKGBUILD +++ b/community/python-psycopg2/PKGBUILD @@ -1,19 +1,19 @@ -# $Id: PKGBUILD 41387 2011-03-05 16:09:10Z spupykin $ +# $Id: PKGBUILD 46836 2011-05-12 20:05:43Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve> # Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org> pkgbase=python-psycopg2 pkgname=('python-psycopg2' 'python2-psycopg2') -pkgver=2.4 -pkgrel=3 +pkgver=2.4.1 +pkgrel=1 pkgdesc="A PostgreSQL database adapter for the Python programming language." -arch=('i686' 'x86_64' 'mips64el') -url="http://initd.org/projects/psycopg2" +arch=('i686' 'x86_64') +url="http://initd.org/psycopg/" license=('LGPL3') makedepends=('python2' 'python' 'postgresql-libs>=8.4.1') -source=(http://www.psycopg.org/psycopg/tarballs/PSYCOPG-${pkgver/./-}/psycopg2-$pkgver.tar.gz) -md5sums=('548d549c4fc4238bf55d0510b2880f47') +source=(http://initd.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-$pkgver.tar.gz) +md5sums=('6ae7a33bf1c967e52be65514472c270a') build() { cd "$srcdir/psycopg2-$pkgver" diff --git a/community/splix/PKGBUILD b/community/splix/PKGBUILD index 2a13ea761..bc8fb8361 100644 --- a/community/splix/PKGBUILD +++ b/community/splix/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 43927 2011-03-31 19:16:02Z heftig $ +# $Id: PKGBUILD 45807 2011-04-29 11:10:15Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve> # Contributor: Francis Carroll (franciscarroll at gmail dot com) pkgname=splix pkgver=2.0.0 -pkgrel=8 +pkgrel=9 pkgdesc="CUPS drivers for SPL (Samsung Printer Language) printers" arch=('i686' 'x86_64' 'mips64el') url="http://splix.ap2c.org/" license=('GPL') depends=('libcups' 'gcc-libs' 'ghostscript>=9.02') -makedepends=('libcups' 'jbigkit') +makedepends=('libcups' 'jbigkit' 'krb5') install=splix.install source=(http://downloads.sourceforge.net/splix/$pkgname-$pkgver.tar.bz2) md5sums=('f3aa735c22a926818b3d8b26c9964186') diff --git a/community/tmw/PKGBUILD b/community/tmw/PKGBUILD index 6e6fcb955..fd1c65b13 100644 --- a/community/tmw/PKGBUILD +++ b/community/tmw/PKGBUILD @@ -1,23 +1,27 @@ -# $Id: PKGBUILD 9602 2010-01-27 15:11:30Z ibiru $ +# $Id: PKGBUILD 46816 2011-05-12 17:56:23Z mherych $ # Contributor: Bjorn Lindeijer <bjorn lindeijer nl> # Maintainer: Mateusz Herych <heniekk@gmail.com> pkgname=tmw -pkgver=0.0.29.1 -pkgrel=2 +pkgver=0.5.2 +pkgrel=1 pkgdesc="The Mana World (TMW) is a serious effort to create an innovative free and open source MMORPG." arch=('i686' 'x86_64' 'mips64el') url="http://themanaworld.org" license=('GPL') -depends=('curl' 'guichan' 'sdl_image' 'libgl' 'libxml2' 'physfs' 'sdl_mixer' 'sdl_net' 'sdl_ttf') -makedepends=('mesa') -source=(http://downloads.sourceforge.net/sourceforge/themanaworld/$pkgname-$pkgver.tar.gz) -md5sums=('263de26c8545a261c6b82b7ae639f733') +depends=('curl' 'guichan' 'sdl_image' 'libgl' 'libxml2' 'physfs' +'sdl_mixer' 'sdl_net' 'sdl_gfx' 'sdl_ttf') +makedepends=('cmake' 'mesa') +source=(http://downloads.sourceforge.net/sourceforge/themanaworld/$pkgname-$pkgver.tar.bz2) +md5sums=('c843ef420aced82db1e51fa14e80174a') build() { - cd $srcdir/$pkgname-$pkgver + cd $srcdir + cmake . -DCMAKE_INSTALL_PREFIX=/usr + make +} - ./configure --prefix=/usr - make || return 1 +package() { + cd $srcdir make DESTDIR=$pkgdir install } diff --git a/core/dbus-core/PKGBUILD b/core/dbus-core/PKGBUILD index dfb179f40..85a40c792 100644 --- a/core/dbus-core/PKGBUILD +++ b/core/dbus-core/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 103698 2010-12-22 15:04:52Z jgc $ +# $Id: PKGBUILD 123268 2011-05-09 14:39:58Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Link Dupont <link@subpop.net> # pkgname=dbus-core -pkgver=1.4.1 +pkgver=1.4.8 pkgrel=1 pkgdesc="Freedesktop.org message bus system" url="http://www.freedesktop.org/Software/dbus" @@ -15,12 +15,13 @@ options=(!libtool) install=dbus.install source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz dbus) -md5sums=('99cb057700c0455fb68f8d57902f77ac' +md5sums=('e30253e15f0f4e6c5ee9e6f0eba5046c' '08f93dd19cffd1b45ab05c1fd4efb560') build() { cd "${srcdir}/dbus-${pkgver}" - ECHO="echo" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + sed -i -e 's/#ifdef DBUS_BUILD_X11/#if 1/' dbus/dbus-sysdeps-unix.c + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \ --with-system-pid-file=/var/run/dbus.pid \ --enable-inotify --disable-dnotify \ diff --git a/core/file/PKGBUILD b/core/file/PKGBUILD index 1a6960643..17608e0fc 100644 --- a/core/file/PKGBUILD +++ b/core/file/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 119819 2011-04-15 12:49:27Z allan $ +# $Id: PKGBUILD 123428 2011-05-11 11:07:46Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # Contributor: Andreas Radke <andyrtr@archlinux.org> pkgname=file -pkgver=5.06 +pkgver=5.07 pkgrel=1 pkgdesc="File type identification utility" arch=('i686' 'x86_64' 'mips64el') @@ -14,7 +14,7 @@ depends=('glibc' 'zlib') options=('!libtool') source=(ftp://ftp.astron.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz file-5.05-zip64.patch) -md5sums=('deb12b0fb9d09e7681be72bad6eba4e0' +md5sums=('b8d1f9a8a644067bd0a703cebf3f4858' '385f020467debd98bd2d8df6143f93d0') build() { diff --git a/core/krb5/PKGBUILD b/core/krb5/PKGBUILD new file mode 100644 index 000000000..4e3dd2c4f --- /dev/null +++ b/core/krb5/PKGBUILD @@ -0,0 +1,64 @@ +# $Id: PKGBUILD 122855 2011-05-06 19:36:38Z stephane $ +# Maintainer: Stéphane Gaudreault <stephane@archlinux.org> + +pkgname=krb5 +pkgver=1.9.1 +pkgrel=1 +pkgdesc="The Kerberos network authentication system" +arch=('i686' 'x86_64') +url="http://web.mit.edu/kerberos/" +license=('custom') +depends=('e2fsprogs' 'libldap' 'keyutils') +makedepends=('perl') +provides=('heimdal') +replaces=('heimdal') +conflicts=('heimdal') +backup=('etc/krb5/krb5.conf' 'etc/krb5/kdc.conf') +source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.9/${pkgname}-${pkgver}-signed.tar + kadmind.rc + krb5-kdc.rc) +sha1sums=('e23a1795a237521493da9cf3443ac8b98a90c066' + '640e3046c6558313d2be81cf2252afc8622892b0' + '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393') +options=('!emptydirs') + +build() { + tar zxvf ${pkgname}-${pkgver}.tar.gz + cd "${srcdir}/${pkgname}-${pkgver}/src" + + export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all" + export CPPFLAGS+=" -I/usr/include/et" + ./configure --prefix=/usr \ + --sysconfdir=/etc/krb5 \ + --mandir=/usr/share/man \ + --localstatedir=/var/lib \ + --enable-shared \ + --with-system-et \ + --with-system-ss \ + --disable-rpath \ + --without-tcl \ + --enable-dns-for-realm \ + --with-ldap + + make +} + +check() { + # We can't do this in the build directory. + cd "${srcdir}/${pkgname}-${pkgver}" + make -C src check +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}/src" + make DESTDIR="${pkgdir}" EXAMPLEDIR="/usr/share/doc/${pkgname}/examples" install + + install -D -m 644 config-files/kdc.conf "${pkgdir}"/etc/krb5/kdc.conf + install -D -m 644 config-files/krb5.conf "${pkgdir}"/etc/krb5/krb5.conf + + install -d -m 755 "${pkgdir}"/etc/rc.d + install -m 755 ../../krb5-kdc.rc "${pkgdir}"/etc/rc.d + install -m 755 ../../kadmind.rc "${pkgdir}"/etc/rc.d + + install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE +} diff --git a/core/krb5/kadmind.rc b/core/krb5/kadmind.rc new file mode 100644 index 000000000..45835e35b --- /dev/null +++ b/core/krb5/kadmind.rc @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/kadmind` +case "$1" in + start) + stat_busy "Starting Kerberos Admin Daemon" + if [ -z "$PID" ]; then + /usr/sbin/kadmind + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon kadmind + stat_done + fi + ;; + stop) + stat_busy "Stopping Kerberos Admin Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon kadmind + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/core/krb5/krb5-kdc.rc b/core/krb5/krb5-kdc.rc new file mode 100644 index 000000000..05a03411e --- /dev/null +++ b/core/krb5/krb5-kdc.rc @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/krb5kdc` +case "$1" in + start) + stat_busy "Starting Kerberos Authentication" + if [ -z "$PID" ]; then + /usr/sbin/krb5kdc + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon krb5-kdc + stat_done + fi + ;; + stop) + stat_busy "Stopping Kerberos Authentication" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon krb5-kdc + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/core/librpcsecgss/PKGBUILD b/core/librpcsecgss/PKGBUILD index f1df520ce..7031203ce 100644 --- a/core/librpcsecgss/PKGBUILD +++ b/core/librpcsecgss/PKGBUILD @@ -1,33 +1,22 @@ -# $Id: PKGBUILD 109603 2011-02-11 00:48:10Z stephane $ +# $Id: PKGBUILD 121187 2011-04-29 07:12:44Z stephane $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Contributor: Andrew Krawchyk <krawch_a@denison.edu>, Marco Lima <cipparello gmail com> pkgname=librpcsecgss pkgver=0.19 -pkgrel=4 +pkgrel=5 pkgdesc="Library for RPCSECGSS support" arch=('i686' 'x86_64' 'mips64el') url="http://www.citi.umich.edu/projects/nfsv4/linux/" license=('GPL') -depends=('glibc' 'heimdal') +depends=('glibc' 'krb5' 'libgssglue') makedepends=('pkg-config' 'autoconf') options=('!libtool') -source=("http://www.citi.umich.edu/projects/nfsv4/linux/${pkgname}/${pkgname}-${pkgver}.tar.gz" - librpcsecgss-0.18-heimdal.patch) -md5sums=('b45ed565bdc3099023aa35830ec92997' - '0cfe088551d5776f5bc08c1741a34346') +source=("http://www.citi.umich.edu/projects/nfsv4/linux/${pkgname}/${pkgname}-${pkgver}.tar.gz") +md5sums=('b45ed565bdc3099023aa35830ec92997') build() { cd "${srcdir}/${pkgname}-${pkgver}" - - # Patch from gentoo for heimdal compatibility Bug #231395 - # http://bugs.gentoo.org/show_bug.cgi?id=231395 - patch -Np1 -i $srcdir/librpcsecgss-0.18-heimdal.patch - - rm -f config.guess config.sub ltmain.sh - autoreconf -i - - GSSAPI_CFLAGS='-I/usr/include/gssapi' \ ./configure --prefix=/usr make } diff --git a/core/libtirpc/PKGBUILD b/core/libtirpc/PKGBUILD index 1d856e8d6..b222249ff 100644 --- a/core/libtirpc/PKGBUILD +++ b/core/libtirpc/PKGBUILD @@ -1,28 +1,32 @@ -# $Id: PKGBUILD 97756 2010-11-01 19:49:14Z tpowa $ +# $Id: PKGBUILD 121179 2011-04-29 06:50:46Z stephane $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=libtirpc pkgver=0.2.1 -pkgrel=2 +pkgrel=3 pkgdesc="Transport Independent RPC library (SunRPC replacement)" -arch=(i686 x86_64 'mips64el') -depends=('glibc' 'libgssglue' 'heimdal') +arch=(i686 x86_64) +depends=('glibc' 'libgssglue' 'krb5') url="http://libtirpc.sourceforge.net/" license=('GPL2') -source=(http://downloads.sourceforge.net/sourceforge/libtirpc/$pkgname-$pkgver.tar.bz2 +source=(http://downloads.sourceforge.net/sourceforge/libtirpc/${pkgname}-${pkgver}.tar.bz2 libtirpc-0.2.1-fortify.patch) backup=('etc/netconfig') options=(!libtool) build() { - cd $srcdir/$pkgname-$pkgver + cd "${srcdir}/${pkgname}-${pkgver}" # fix http://bugs.gentoo.org/293593 # https://bugs.archlinux.org/task/20082 patch -Np1 -i ../libtirpc-0.2.1-fortify.patch ./configure --prefix=/usr --enable-gss - make || return 1 - make DESTDIR=$pkgdir install || return 1 + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install # install netconfig - install -D -m644 doc/etc_netconfig $pkgdir/etc/netconfig + install -D -m644 doc/etc_netconfig "${pkgdir}"/etc/netconfig } md5sums=('d77eb15f464bf9d6e66259eaf78b2a4e' '2e5c067f1651469dfbbdc91d3c9c60e8') diff --git a/core/nfs-utils/PKGBUILD b/core/nfs-utils/PKGBUILD index 37c362942..4ae3d3242 100644 --- a/core/nfs-utils/PKGBUILD +++ b/core/nfs-utils/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 109322 2011-02-08 08:33:56Z ibiru $ +# $Id: PKGBUILD 123110 2011-05-08 13:46:17Z stephane $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Contributor: John Proctor <jproctor@prium.net> # Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org> @@ -6,8 +6,8 @@ # Contributor: Marco Lima <cipparello gmail com> pkgname=nfs-utils -pkgver=1.2.2 -pkgrel=6 +pkgver=1.2.3 +pkgrel=2 pkgdesc="Support programs for Network File Systems" arch=('i686' 'x86_64' 'mips64el') url='http://nfs.sourceforge.net' @@ -23,49 +23,31 @@ source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgn exports idmapd.conf start-statd.patch - nfs-utils-1.1.2-kerberos-ac.patch - nfs-utils-1.1.6-no_libgssapi.patch - nfs-utils-1.1.6-heimdal_functions.patch nfs-utils-1.1.4-mtab-sym.patch nfs-utils-1.1.4-no-exec.patch) install=nfs-utils.install -md5sums=('dad92f64db3266c7757f71bb53ee8f35' +md5sums=('1131dc5f27c4f3905a6e7ee0d594fd4d' 'fc508e10cdf5e8ddd80373b1b2bc99a1' 'f73f197a16b02c3e248488ec35c4cf43' '5ae080f6117cef3140f02bc162bdc755' - 'b9b334414baec31b97f0431d9ecdcfb9' + '2bf71def3263325643a09458635520f0' 'ff585faf410a62c4333a027c50b56bae' 'eb4f4027fab6fc1201f1ca04f5954c76' 'e24f81a8c8657672e262c61235d34b4a' - 'f3be115d392d9f9bb0f056e8d4341a14' - '20c6fae1c771b9d8e91c4973f16372e3' - 'e6fd3a8acfe97970a53db1b902c34f45' '7674106eaaa4c149bccd4f05fe3604e9' '4f4827dfc93008dfadd0a530ad0872b2') build() { cd $srcdir/${pkgname}-${pkgver} - # Patches from gentoo for heimdal compatibility Bug 231396 - # http://bugs.gentoo.org/show_bug.cgi?id=231396 - patch -Np1 -i ../nfs-utils-1.1.2-kerberos-ac.patch - patch -Np1 -i ../nfs-utils-1.1.6-no_libgssapi.patch - patch -Np0 -i ../nfs-utils-1.1.6-heimdal_functions.patch patch -Np1 -i ../nfs-utils-1.1.4-mtab-sym.patch patch -Np1 -i ../nfs-utils-1.1.4-no-exec.patch # arch specific patch patch -Np0 -i $srcdir/start-statd.patch - rm -f config.guess config.sub ltmain.sh - autoreconf -i - - export GSSGLUE_CFLAGS='-I/usr/include/gssapi' - export GSSGLUE_LIBS='-lgssapi -ldl' - ./configure --prefix=/usr --enable-nfsv3 --enable-nfsv4 --enable-gss \ --with-tcp-wrappers --with-statedir=/var/lib/nfs --enable-ipv6 --sysconfdir=/etc - unset LDFLAGS make } diff --git a/core/nfs-utils/nfs-server.conf b/core/nfs-utils/nfs-server.conf index cf75fb6f9..4054d6b88 100644 --- a/core/nfs-utils/nfs-server.conf +++ b/core/nfs-utils/nfs-server.conf @@ -18,7 +18,7 @@ PROCNFSD_MOUNTOPTS="" # If you have a port-based firewall, you might want to set up # a fixed port here using the --port option. # See rpc.mountd(8) for more details. -MOUNTD_OPTS="--no-nfs-version 1 --no-nfs-version 2" +MOUNTD_OPTS="--no-nfs-version 2" # Do you want to start the svcgssd daemon? It is only required for Kerberos # exports. Valid alternatives are "yes" and "no"; the default is "no". diff --git a/core/openssh/PKGBUILD b/core/openssh/PKGBUILD index efdf4936b..b7e041831 100644 --- a/core/openssh/PKGBUILD +++ b/core/openssh/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 123287 2011-05-09 17:39:25Z bisson $ +# $Id: PKGBUILD 123290 2011-05-09 17:45:14Z bisson $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: Aaron Griffin <aaron@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=openssh pkgver=5.8p2 -pkgrel=5 +pkgrel=6 pkgdesc='Free version of the SSH connectivity tools' arch=('i686' 'x86_64' 'mips64el') license=('custom:BSD') url='http://www.openssh.org/portable.html' backup=('etc/ssh/ssh_config' 'etc/ssh/sshd_config' 'etc/pam.d/sshd' 'etc/conf.d/sshd') -depends=('tcp_wrappers' 'heimdal' 'openssl' 'libedit') +depends=('tcp_wrappers' 'krb5' 'openssl' 'libedit') source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver}.tar.gz" 'sshd.confd' 'sshd.pam' diff --git a/core/syslog-ng/PKGBUILD b/core/syslog-ng/PKGBUILD index 19ec03d1c..164496502 100644 --- a/core/syslog-ng/PKGBUILD +++ b/core/syslog-ng/PKGBUILD @@ -1,58 +1,52 @@ -# $Id: PKGBUILD 114715 2011-03-15 15:44:12Z tpowa $ +# $Id: PKGBUILD 123085 2011-05-08 03:28:44Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> # Maintainer: Aaron Griffin <aaron@archlinux.org> -# Contributor: Judd Vinet <jvinet@zeroflux.org> pkgname=syslog-ng -pkgver=3.2.2 -pkgrel=2 +pkgver=3.2.4 +pkgrel=1 pkgdesc="Next-generation syslogd with advanced networking and filtering capabilities" arch=('i686' 'x86_64' 'mips64el') license=('GPL2') groups=('base') url="http://www.balabit.com/network-security/syslog-ng/" -depends=('glib2' 'eventlog' 'tcp_wrappers' 'openssl' 'libcap') +depends=('glib2' 'eventlog' 'tcp_wrappers' 'openssl' 'libcap' 'awk') makedepends=('flex' 'pkg-config') optdepends=('logrotate: for rotating log files') provides=('logger') options=('!libtool') -backup=('etc/syslog-ng/modules.conf' 'etc/syslog-ng/scl.conf' 'etc/syslog-ng/syslog-ng.conf' 'etc/logrotate.d/syslog-ng') -source=(http://www.balabit.com/downloads/files/syslog-ng/sources/${pkgver}/source/${pkgname}_${pkgver}.tar.gz - syslog-ng.conf - syslog-ng.logrotate - syslog-ng.rc - cap_syslog.patch) -md5sums=('ed8ebe559d52a63fb61e3e2db566643f' '344dddfff946300f5576b13a7e8ea19f'\ - '735636090be4582885974542d2a75855' 'b90f8f1ba0433e5a1518ac30f882560a') -sha1sums=('3a340f8e72b460cc0bc1ec1d4c86b74678912dd6' 'b9eb8c61f7cccda543fc5c97fe1d40a8d15e713f'\ - 'ac997b25d7d8e69e66782d3771a0e12aff55ae7f' '253e59f4182fba46aea56bebc4b79a199fae32bc') - -build() { - cd "$srcdir/$pkgname-$pkgver" - # fix #22555 for kernels >=2.6.38 - patch -Np1 -i ../cap_syslog.patch - ./configure --prefix=/usr --sysconfdir=/etc/syslog-ng \ - --libexecdir=/usr/lib --localstatedir=/var/lib/syslog-ng \ - --enable-tcp-wrapper \ - --with-pidfile-dir=/var/run \ - --disable-spoof-source - make -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - make DESTDIR="$pkgdir" install - install -dm755 "$pkgdir/var/lib/syslog-ng" "$pkgdir/etc/syslog-ng/patterndb.d" - install -Dm644 "$srcdir/syslog-ng.conf" "$pkgdir/etc/syslog-ng/syslog-ng.conf" - install -Dm644 "$srcdir/syslog-ng.logrotate" "$pkgdir/etc/logrotate.d/syslog-ng" - install -Dm755 "$srcdir/syslog-ng.rc" "$pkgdir/etc/rc.d/syslog-ng" -} -md5sums=('ed8ebe559d52a63fb61e3e2db566643f' +backup=('etc/syslog-ng/modules.conf' 'etc/syslog-ng/scl.conf' \ + 'etc/syslog-ng/syslog-ng.conf' 'etc/logrotate.d/syslog-ng') +source=(http://www.balabit.com/downloads/files/syslog-ng/sources/${pkgver}/source/${pkgname}_${pkgver}.tar.gz \ + syslog-ng.conf syslog-ng.logrotate syslog-ng.rc cap_syslog.patch) +md5sums=('5995f7dad0053a478b60a63f6f754203' '344dddfff946300f5576b13a7e8ea19f' '735636090be4582885974542d2a75855' - 'b90f8f1ba0433e5a1518ac30f882560a' + '8b4441343d859c2f01c2cf799a7e6f98' '46e5dcff71f820d497898331a3f608fe') -sha1sums=('3a340f8e72b460cc0bc1ec1d4c86b74678912dd6' +sha1sums=('ff732f7223bd2bd0424d4b9028b523cf62133af1' 'b9eb8c61f7cccda543fc5c97fe1d40a8d15e713f' 'ac997b25d7d8e69e66782d3771a0e12aff55ae7f' - '253e59f4182fba46aea56bebc4b79a199fae32bc' + '4481819762fd1b6f25903016a8878e63c0058fcb' 'f093a09626a528d23f0f2aeece018cab15a735a9') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" +# fix #22555 for kernels >=2.6.38 + patch -p1 -i ../cap_syslog.patch + ./configure --prefix=/usr --sysconfdir=/etc/syslog-ng \ + --libexecdir=/usr/lib --localstatedir=/var/lib/syslog-ng \ + --enable-tcp-wrapper \ + --with-pidfile-dir=/var/run \ + --disable-spoof-source + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + install -dm755 "${pkgdir}/var/lib/syslog-ng" "${pkgdir}/etc/syslog-ng/patterndb.d" + install -Dm644 "${srcdir}/syslog-ng.conf" "${pkgdir}/etc/syslog-ng/syslog-ng.conf" + install -Dm644 "${srcdir}/syslog-ng.logrotate" "${pkgdir}/etc/logrotate.d/syslog-ng" + install -Dm755 "${srcdir}/syslog-ng.rc" "${pkgdir}/etc/rc.d/syslog-ng" +} diff --git a/core/syslog-ng/syslog-ng.rc b/core/syslog-ng/syslog-ng.rc index fbd41fc7b..bb5320b2c 100755 --- a/core/syslog-ng/syslog-ng.rc +++ b/core/syslog-ng/syslog-ng.rc @@ -3,10 +3,20 @@ . /etc/rc.conf . /etc/rc.d/functions +checkconfig() { + syslog-ng -s -f /etc/syslog-ng/syslog-ng.conf + if [ $? -gt 0 ]; then + stat_busy "Configuration error. Please fix your config file (/etc/syslog-ng/syslog-ng.conf)." + stat_fail + exit 0 + fi +} + PID=`pidof -o %PPID /usr/sbin/syslog-ng` case "$1" in start) stat_busy "Starting Syslog-NG" + checkconfig [ -z "$PID" ] && /usr/sbin/syslog-ng if [ $? -gt 0 ]; then stat_fail @@ -17,7 +27,7 @@ case "$1" in ;; stop) stat_busy "Stopping Syslog-NG" - [ ! -z "$PID" ] && kill $PID &> /dev/null + [ ! -z "$PID" ] && kill $PID &> /dev/null if [ $? -gt 0 ]; then stat_fail else @@ -28,12 +38,26 @@ case "$1" in stat_done fi ;; + reload) + stat_busy "Reloading Syslog-NG configuration and re-opening log files" + if [ -z "$PID" ]; then + stat_fail + else + checkconfig + kill -HUP $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + fi + ;; restart) $0 stop sleep 1 $0 start ;; *) - echo "usage: $0 {start|stop|restart}" + echo "usage: $0 {start|stop|restart|reload}" esac exit 0 diff --git a/core/usbutils/PKGBUILD b/core/usbutils/PKGBUILD index 31c83a9e9..bab1e0b37 100644 --- a/core/usbutils/PKGBUILD +++ b/core/usbutils/PKGBUILD @@ -1,9 +1,10 @@ -# $Id: PKGBUILD 118970 2011-04-09 20:52:11Z tpowa $ +# $Id: PKGBUILD 123172 2011-05-09 02:20:17Z allan $ # Maintainer: Judd Vinet <jvinet@zeroflux.org> # Contributor: Curtis Campbell <curtisjamescampbell@hotmail.com> pkgname=usbutils pkgver=002 -pkgrel=2 +pkgrel=3 +_usb_ids_date=2011.04.14 pkgdesc="USB Device Utilities" arch=(i686 x86_64 'mips64el') license=('GPL') @@ -14,16 +15,18 @@ optdepends=('python2: for lsusb.py usage' 'coreutils: for lsusb.py usage') url="http://linux-usb.sourceforge.net/" source=(http://www.kernel.org/pub/linux/utils/usb/$pkgname/$pkgname-$pkgver.tar.gz - fix-python2.patch) + fix-python2.patch + usb.ids-${_usb_ids_date}) # from http://linux-usb.sourceforge.net/usb.ids md5sums=('05610d15c3c8c8ada3d691c320ca784a' - '45766196895b4cc50b53cd56e1bbf3d1') + '45766196895b4cc50b53cd56e1bbf3d1' + 'd64f120c208ca742d3a1d05d84e3f531') build() { cd $srcdir/$pkgname-$pkgver rm usb.ids - wget http://www.linux-usb.org/usb.ids + cp $srcdir/usb.ids-${_usb_ids_date} usb.ids # patch lsusb.py to use correct usb.ids file and python2 interpreter - patch -Np1 -i ../fix-python2.patch + patch -Np1 -i $srcdir/fix-python2.patch ./configure --prefix=/usr --datadir=/usr/share/hwdata --disable-zlib make } @@ -32,6 +35,6 @@ package() { cd $srcdir/$pkgname-$pkgver make DESTDIR=$pkgdir install # fix pkgconfig file - mkdir -p $pkgdir/usr/lib + install -dm755 $pkgdir/usr/lib mv $pkgdir/usr/share/pkgconfig $pkgdir/usr/lib/ } diff --git a/core/usbutils/usb.ids-2011.04.14 b/core/usbutils/usb.ids-2011.04.14 new file mode 100644 index 000000000..02e03ba36 --- /dev/null +++ b/core/usbutils/usb.ids-2011.04.14 @@ -0,0 +1,16374 @@ +# +# List of USB ID's +# +# Maintained by Stephen J. Gowdy <linux.usb.ids@gmail.com> +# If you have any new entries, please submit them via +# http://www.linux-usb.org/usb-ids.html +# or send entries as patches (diff -u old new) in the +# body of your email (a bot will attempt to deal with it). +# The latest version can be obtained from +# http://www.linux-usb.org/usb.ids +# +# Version: 2011.04.14 +# Date: 2011-04-14 20:34:04 +# + +# Vendors, devices and interfaces. Please keep sorted. + +# Syntax: +# vendor vendor_name +# device device_name <-- single tab +# interface interface_name <-- two tabs + +0001 Fry's Electronics + 142b Arbiter Systems, Inc. +0002 Ingram +0003 Club Mac +0004 Nebraska Furniture Mart +0053 Planex + 5301 GW-US54ZGL 802.11bg +0079 DragonRise Inc. + 0006 Generic USB Joystick + 0011 Gamepad +0105 Trust International B.V. + 145f NW-3100 802.11b/g 54Mbps Wireless Network Adapter [zd1211] +0145 Unknown + 0112 Card Reader +0204 Chipsbank Microelectronics Co., Ltd + 6025 CBM2080 Flash drive controller + 6026 CBM1180 Flash drive controller +0218 Hangzhou Worlde + 0301 MIDI Port +02ad HUMAX Co., Ltd. + 138c PVR Mass Storage +0300 MM300 eBook Reader +0324 OCZ Technology Inc + bc06 OCZ ATV USB 2.0 Flash Drive + bc08 OCZ Rally2/ATV USB 2.0 Flash Drive +0325 OCZ Technology Inc + ac02 ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive +0386 LTS + 0001 PSX for USB Converter +03da Bernd Walter Computer Technology + 0002 HD44780 LCD interface +03e8 EndPoints, Inc. + 0004 SE401 Webcam + 0008 101 Ethernet [klsi] + 0015 ATAPI Enclosure + 2123 SiPix StyleCam Deluxe + 8004 Aox 99001 +03e9 Thesys Microelectronics +03ea Data Broadcasting Corp. +03eb Atmel Corp. + 0902 4-Port Hub + 2002 Mass Storage Device + 2015 at90usbkey sample firmware (HID keyboard) + 2018 at90usbkey sample firmware (CDC ACM) + 2019 stk525 sample firmware (microphone) + 201c at90usbkey sample firmware (HID mouse) + 201d at90usbkey sample firmware (HID generic) + 2022 at90usbkey sample firmware (composite device) + 2040 LUFA Test PID + 2041 LUFA Mouse Demo Application + 2042 LUFA Keyboard Demo Application + 2043 LUFA Joystick Demo Application + 2044 LUFA CDC Demo Application + 2045 LUFA Mass Storage Demo Application + 2046 LUFA Audio Output Demo Application + 2047 LUFA Audio Input Demo Application + 2048 LUFA MIDI Demo Application + 2049 Stripe Snoop Magnetic Stripe Reader + 204a LUFA CDC Class Bootloader + 204b LUFA USB to Serial Adapter Project + 204c LUFA RNDIS Demo Application + 204d LUFA Combined Mouse and Keyboard Demo Application + 204e LUFA Dual CDC Demo Application + 204f LUFA Generic HID Demo Application + 2060 Benito Programmer Project + 2061 LUFA Combined Mass Storage and Keyboard Demo Application + 2062 LUFA Combined CDC and Mouse Demo Application + 2063 LUFA Datalogger Device + 2064 Interfaceless Control-Only LUFA Devices + 2065 LUFA Test and Measurement Demo Application + 2066 LUFA Multiple Report HID Demo + 2068 LUFA Virtual Serial/Mass Storage Demo + 2103 JTAG ICE mkII + 2104 AVR ISP mkII + 2105 AVRONE! + 2106 STK600 development board + 2107 AVR Dragon + 210d XPLAIN evaluation kit (CDC ACM) + 2122 XMEGA-A1 Explained evaluation kit + 2310 EVK11xx evaluation board + 2ffb at90usb AVR DFU bootloader + 2ffd at89c5130/c5131 DFU bootloader + 2fff at89c5132/c51snd1c DFU bootloader + 3301 at43301 4-Port Hub + 3312 4-Port Hub + 4102 AirVast W-Buddie WN210 + 5601 at76c510 Prism-II 802.11b Access Point + 5603 Cisco 7920 WiFi IP Phone + 6124 at91sam SAMBA bootloader + 7603 D-Link DWL-120 802.11b Wireless Adapter [Atmel at76c503a] + 7604 at76c503a 802.11b Adapter + 7605 at76c503a 802.11b Adapter + 7606 at76c505 802.11b Adapter + 7611 at76c510 rfmd2948 802.11b Access Point + 7613 WL-1130 USB + 7614 AT76c505a Wireless Adapter + 7615 AT76C505AMX Wireless Adapter + 7617 AT76C505AS Wireless Adapter + ff07 Tux Droid fish dongle +03ec Iwatsu America, Inc. +03ed Mitel Corp. +03ee Mitsumi + 0000 CD-R/RW Drive + 2501 eHome Infrared Receiver + 2502 eHome Infrared Receiver + 5609 Japanese Keyboard + 641f WIF-0402C Bluetooth Adapter + 6438 Bluetooth Device + 6440 WML-C52APR Bluetooth Adapter + 6901 SmartDisk FDD + 6902 Floppy Disk Drive + 7500 CD-R/RW + ffff Dongle with BlueCore in DFU mode +03f0 Hewlett-Packard + 0004 DeskJet 895c + 0011 OfficeJet G55 + 0012 DeskJet 1125C Printer Port + 0024 KU-0316 Keyboard + 002a LaserJet P1102 + 0101 ScanJet 4100c + 0102 PhotoSmart S20 + 0104 DeskJet 880c/970c + 0105 ScanJet 4200c + 0107 CD-Writer Plus + 010c Multimedia Keyboard Hub + 0111 G55xi Printer/Scanner/Copier + 0117 LaserJet 3200 + 011c hn210w 802.11b Adapter + 011d Integrated Bluetooth Module + 0121 HP49g+ Calculator + 0122 HID Internet Keyboard + 0201 ScanJet 6200c + 0202 PhotoSmart S20 + 0204 DeskJet 815c + 0205 ScanJet 3300c + 0207 CD-Writer Plus 8200e + 020c Multimedia Keyboard + 0211 OfficeJet G85 + 0212 DeskJet 1220C + 0217 LaserJet 2200 + 0218 APOLLO P2500/2600 + 0304 DeskJet 810c/812c + 0305 ScanJet 4300c + 0307 CD-Writer+ CD-4e + 0311 OfficeJet G85xi + 0312 Color Inkjet CP1700 + 0314 designjet 30/130 series + 0317 LaserJet 1200 + 0324 SK-2885 keyboard + 0401 ScanJet 5200c + 0404 DeskJet 830c/832c + 0405 ScanJet 3400cse + 0411 OfficeJet G95 + 0412 Printing Support + 0417 LaserJet 1200 series + 0423 HS-COMBO + 0504 DeskJet 885c + 0505 ScanJet 2100c + 0507 DVD+RW + 050c 5219 Wireless Keyboard + 0511 OfficeJet K60 + 0512 DeckJet 450 + 0517 LaserJet 1000 + 051d integrated module with Bluetooth wireless technology. + 0601 ScanJet 6300c + 0604 DeskJet 840c + 0605 ScanJet 2200c + 0611 OfficeJet K60xi + 0612 business inkjet 3000 + 0624 Bluetooth Dongle + 0701 ScanJet 5300c/5370c + 0704 DeskJet 825c + 0705 ScanJet 4400c + 0711 OfficeJet K80 + 0712 DeskJet 1180c + 0714 Printing Support + 0801 ScanJet 7400c + 0804 DeskJet 816c + 0805 HP4470C + 0811 OfficeJet K80xi + 0817 LaserJet 3300 + 0901 ScanJet 2300c + 0904 DeskJet 845c + 0912 Printing Support + 0917 LaserJet 3330 + 0924 Modular Smartcard Keyboard + 0a01 ScanJet 2400c + 0a17 color LaserJet 3700 + 0b01 ScanJet 82x0C + 0b0c Wireless Keyboard and Optical Mouse receiver + 0b17 LaserJet 2300d + 0c17 LaserJet 1010 + 0c24 Bluetooth Dongle + 0d12 OfficeJet 9100 series + 0d17 LaserJet 1012 + 0e17 LaserJet 1015 + 0f0c Wireless Keyboard and Optical Mouse receiver + 0f11 OfficeJet V40 + 0f12 Printing Support + 0f17 LaserJet 1150 + 1001 Photo Scanner 1000 + 1002 PhotoSmart 140 series + 1004 DeskJet 970c/970cse + 1005 ScanJet 5400c + 1011 OfficeJet V40xi + 1016 Jornada 548 / iPAQ HW6515 Pocket PC + 1017 LaserJet 1300 + 1024 Smart Card Keyboard + 1027 Virtual keyboard and mouse + 1102 PhotoSmart 240 series + 1104 DeskJet 959c + 1105 ScanJet 5470c/5490c + 1111 OfficeJet v60 + 1116 Jornada 568 Pocket PC + 1117 LaserJet 1300n + 1151 PSC-750xi Printer/Scanner/Copier + 1202 PhotoSmart 320 series + 1204 DeskJet 930c + 1205 ScanJet 4500C/5550C + 1211 OfficeJet v60xi + 1217 LaserJet 2300L + 1302 PhotoSmart 370 series + 1305 ScanJet 4570c + 1311 OfficeJet V30 + 1312 DeskJet 460 + 1317 LaserJet 1005 + 1405 ScanJet 3670 + 1411 PSC 750 + 1424 f2105 Monitor Hub + 1502 PhotoSmart 420 series + 1504 DeskJet 920c + 150c Mood Lighting (Microchip Technology Inc.) + 1511 PSC 750xi + 1512 Printing Support + 1517 color LaserJet 3500 + 1524 Smart Card Keyboard - KR + 1602 PhotoSmart 330 series + 1604 DeskJet 940c + 1605 ScanJet 5530C PhotoSmart + 1611 psc 780 + 1617 LaserJet 3015 + 161d Wireless Rechargeable Optical Mouse (HID) + 1624 Smart Card Keyboard - JP + 1702 PhotoSmart 380 series + 1704 DeskJet 948C + 1705 ScanJet 5590 + 1711 psc 780xi + 1712 Printing Support + 1717 LaserJet 3020 + 171d Wireless (Bluetooth + WLAN) Interface [Integrated Module] + 1801 Inkjet P-2000U + 1802 PhotoSmart 470 series + 1804 DeskJet 916C + 1805 ScanJet 7650 + 1811 PSC 720 + 1812 OfficeJet Pro K550 + 1817 LaserJet 3030 + 181d integrated module with Bluetooth 2.0 wireless technology. + 1902 PhotoSmart A430 series + 1904 DeskJet 3820 + 1911 OfficeJet V45 + 1917 LaserJet 3380 + 1a02 PhotoSmart A510 series + 1a11 OfficeJet 5100 series + 1a17 color LaserJet 4650 + 1b02 PhotoSmart A610 series + 1b04 DeskJet 3810 + 1b05 ScanJet 4850C/4890C + 1c02 PhotoSmart A710 series + 1c17 Color LaserJet 2550l + 1d02 PhotoSmart A310 series + 1d17 LaserJet 1320 + 1e02 PhotoSmart A320 Printer series + 1e11 PSC-950 + 1e17 LaserJet 1160 series + 1f02 PhotoSmart A440 Printer series + 1f11 PSC 920 + 1f12 OfficeJet Pro K5300 + 1f17 color LaserJet 5550 + 1f1d un2400 Gobi Wireless Modem + 2001 Floppy + 2002 Hub + 2004 DeskJet 640c + 2005 ScanJet 3570c + 2012 OfficeJet Pro K5400 + 201d un2400 Gobi Wireless Modem (QDL mode) + 2102 PhotoSmart 7345 + 2104 DeskJet 630c + 2112 OfficeJet Pro L7500 + 211d Sierra MC5725 [ev2210] + 2202 PhotoSmart 7600 series + 2205 ScanJet 3500c + 2212 OfficeJet Pro L7600 + 2217 color LaserJet 9500 MFP + 2302 PhotoSmart 7600 series + 2304 DeskJet 656c + 2305 ScanJet 3970c + 2311 OfficeJet d series + 2312 OfficeJet Pro L7700 + 2317 LaserJet 4350 + 2402 PhotoSmart 7700 series + 2404 Deskjet F2280 series + 2405 ScanJet 4070 PhotoSmart + 2417 LaserJet 4250 + 241d Gobi 2000 Wireless Modem (QDL mode) + 2424 LP1965 19" Monitor Hub + 2502 PhotoSmart 7700 series + 2504 DeskJet F4200 series + 2505 ScanJet 3770 + 2512 OfficeJet Pro L7300 + 2517 LaserJet 2410 + 251d Gobi 2000 Wireless Modem + 2524 LP3065 30" Monitor Hub + 2602 PhotoSmart A520 series + 2605 ScanJet 3800c + 2611 OfficeJet 7100 series + 2617 Color LaserJet 2820 series + 2624 Pole Display (HP522 2 x 20 Line Display) + 2702 PhotoSmart A620 series + 2704 DeskJet 915 + 2717 Color LaserJet 2830 + 2811 PSC-2100 + 2817 Color LaserJet 2840 + 2902 PhotoSmart A820 series + 2911 PSC 2200 + 2917 LaserJet 2420 + 2a11 PSC 2150 series + 2a17 LaserJet 2430 + 2b11 PSC 2170 series + 2b17 LaserJet 1020 + 2c12 Officejet J4680 + 2c17 LaserJet 1022 + 2c24 Logitech M-UAL-96 Mouse + 2d11 OfficeJet 6110 + 2d17 Printing Support + 2e11 PSC 1000 + 2e17 LaserJet 2600n + 2e24 LP2275w Monitor Hub + 2f11 PSC 1200 + 2f17 EWS 2605dn + 2f24 LP2475w Monitor Hub + 3002 PhotoSmart P1000 + 3004 DeskJet 980c + 3005 ScanJet 4670v + 3011 PSC 1100 series + 3017 Printing Support + 3102 PhotoSmart P1100 Printer w/ Card Reader + 3104 DeskJet 960c + 3111 OfficeJet 4100 series + 3117 EWS 2605dtn + 311d Atheros AR9285 Malbec Bluetooth Adapter + 3202 PhotoSmart 1215 + 3207 4 GB flash drive + 3211 OfficeJet 4105 series + 3217 LaserJet 3050 + 3302 PhotoSmart 1218 + 3304 DeskJet 990c + 3312 OfficeJet J6410 + 3317 LaserJet 3052 + 3402 PhotoSmart 1115 + 3404 DeskJet 6122 + 3417 LaserJet 3055 + 3502 PhotoSmart 230 + 3504 DeskJet 6127c + 3511 PSC 2300 + 3517 LaserJet 3390 + 3602 PhotoSmart 1315 + 3611 PSC 2410 PhotoSmart + 3617 Color LaserJet 2605 + 3711 PSC 2500 + 3717 EWS UPD + 3724 Webcam + 3802 PhotoSmart 100 + 3817 LaserJet P2015 series + 3902 PhotoSmart 130 + 3a02 PhotoSmart 7150 + 3a11 OfficeJet 5500 series + 3a17 Printing Support + 3b02 PhotoSmart 7150~ + 3b11 PSC 1300 series + 3b17 LaserJet M1005 MFP + 3c02 PhotoSmart 7350 + 3c11 PSC 1358 + 3c17 EWS UPD + 3d02 PhotoSmart 7350~ + 3d11 OfficeJet 4215 + 3d17 LaserJet P1005 + 3e02 PhotoSmart 7550 + 3e17 LaserJet P1006 + 3f02 PhotoSmart 7550~ + 3f11 PSC-1315/PSC-1317 + 4002 PhotoSmart 635/715/720/735/935 (storage) + 4004 cp1160 + 4102 PhotoSmart 618 + 4105 ScanJet 4370 + 4111 OfficeJet 7200 series + 4117 LaserJet 1018 + 4202 PhotoSmart 812 + 4205 ScanJet G3010 + 4211 OfficeJet 7300 series + 4217 EWS CM1015 + 4302 PhotoSmart 850 (ptp) + 4305 ScanJet G3110 + 4311 OfficeJet 7400 series + 4317 Color LaserJet CM1017 + 4402 PhotoSmart 935 (ptp) + 4417 EWS UPD + 4502 PhotoSmart 945 (PTP mode) + 4505 ScanJet G4010 + 4511 PhotoSmart 2600 + 4517 EWS UPD + 4605 ScanJet G4050 + 4611 PhotoSmart 2700 + 4717 Color LaserJet CP1215 + 4811 PSC 1600 + 4911 PSC 2350 + 4b11 OfficeJet 6200 + 4c11 PSC 1500 series + 4c17 EWS UPD + 4d11 PSC 1400 + 4d17 EWS UPD + 4e11 PhotoSmart 2570 series + 4f11 OfficeJet 5600 (USBHUB) + 5004 DeskJet 995c + 5011 PhotoSmart 3100 series + 5017 EWS UPD + 5111 PhotoSmart 3200 series + 5211 PhotoSmart 3300 series + 5311 OfficeJet 6300 + 5411 OfficeJet 4300 + 5511 DeskJet F300 series + 5611 PhotoSmart C3180 + 5617 LaserJet M1120 MFP + 5711 PhotoSmart C4100 series + 5717 LaserJet M1120n MFP + 5811 PhotoSmart C5100 series + 5817 LaserJet M1319f MFP + 5911 PhotoSmart C6180 + 5a11 PhotoSmart C7100 series + 5b11 OfficeJet J2100 series + 5c11 PhotoSmart C4200 Printer series + 5d11 PhotoSmart C5200 series + 5e11 PhotoSmart D7400 series + 6004 DeskJet 5550 + 6102 Hewlett Packard Digital Camera + 6104 DeskJet 5650c + 6117 color LaserJet 3550 + 6202 PhotoSmart 215 + 6204 DeskJet 5150c + 6217 Color LaserJet 4700 + 6302 PhotoSmart 318/612 + 6317 Color LaserJet 4730mfp + 6402 PhotoSmart 715 (ptp) + 6411 PhotoSmart C8100 series + 6417 LaserJet 5200 + 6502 PhotoSmart 120 (ptp) + 6511 PhotoSmart C7200 series + 6602 PhotoSmart 320 + 6611 PhotoSmart C4380 series + 6617 LaserJet 5200L + 6702 PhotoSmart 720 (ptp) + 6717 Color LaserJet 3000 + 6802 PhotoSmart 620 (ptp) + 6811 PhotoSmart D5300 series + 6817 Color LaserJet 3800 + 6911 PhotoSmart D7200 series + 6917 Color LaserJet 3600 + 6a02 PhotoSmart 735 (ptp) + 6a11 PhotoSmart C6200 series + 6a17 LaserJet 4240 + 6b02 PhotoSmart R707 (PTP mode) + 6b11 Photosmart C4500 series + 6c17 Color LaserJet 4610 + 6f17 Color LaserJet CP6015 series + 7004 DeskJet 3320c + 7102 PhotoSmart 635 (PTP mode) + 7104 DeskJet 3420c + 7117 CM8060 Color MFP with Edgeline Technology + 7202 PhotoSmart 43x (ptp) + 7204 DeskJet 36xx + 7217 LaserJet M5035 MFP + 7302 PhotoSmart M307 (PTP mode) + 7304 DeskJet 35xx + 7311 Photosmart Premium C309 + 7317 LaserJet P3005 + 7404 Printing Support + 7417 LaserJet M4345 MFP + 7504 Printing Support + 7517 LaserJet M3035 MFP + 7604 DeskJet 3940 + 7611 DeskJet F2492 All-in-One + 7617 LaserJet P3004 + 7702 PhotoSmart R817 (PTP mode) + 7704 DeskJet D4100 + 7717 CM8050 Color MFP with Edgeline Technology + 7804 DeskJet D1360 + 7817 Color LaserJet CP3505 + 7917 LaserJet M5025 MFP + 7a02 PhotoSmart M415 (PTP mode) + 7a04 DeskJet D2460 + 7a17 LaserJet M3027 MFP + 7b02 PhotoSmart M23 (PTP mode) + 7b17 Color LaserJet CP4005 + 7c17 Color LaserJet CM6040 series + 7d04 DeskJet F2100 Printer series + 7d17 Color LaserJet CM4730 MFP + 7e04 DeskJet F4100 Printer series + 8017 LaserJet P4515 + 8104 Printing Support + 8117 LaserJet P4015 + 811c Ethernet HN210E + 8204 Printing Support + 8207 FHA-3510 2.4GHz Wireless Optical Mobile Mouse + 8217 LaserJet P4014 + 8317 LaserJet M9050 MFP + 8404 DeskJet 6800 series + 8417 LaserJet M9040 MFP + 8504 DeskJet 6600 series + 8604 DeskJet 5440 + 8704 DeskJet 5940 + 8804 DeskJet 6980 series + 8904 DeskJet 6940 series + 9002 PhotoSmart M437 + 9102 PhotoSmart M537 + 9302 PhotoSmart R930 series + 9402 PhotoSmart R837 + 9502 PhotoSmart R840 series + 9602 PhotoSmart M730 series + 9702 PhotoSmart R740 series + 9802 PhotoSmart Mz60 series + 9902 PhotoSmart M630 series + 9a02 PhotoSmart E330 series + 9b02 PhotoSmart M540 series + 9c02 PhotoSmart M440 series + a004 DeskJet 5850c + b002 PhotoSmart 7200 series + b102 PhotoSmart 7200 series + b116 Webcam + b202 PhotoSmart 7600 series + b302 PhotoSmart 7600 series + b402 PhotoSmart 7700 series + b502 PhotoSmart 7700 series + b602 PhotoSmart 7900 series + b702 PhotoSmart 7900 series + b802 PhotoSmart 7400 series + b902 PhotoSmart 7800 series + ba02 PhotoSmart 8100 series + bb02 PhotoSmart 8400 series + bc02 PhotoSmart 8700 series + bd02 PhotoSmart Pro B9100 series + bef4 NEC Picty760 + c002 PhotoSmart 7800 series + c102 PhotoSmart 8000 series + c202 PhotoSmart 8200 series + c302 DeskJet D2300 + c402 PhotoSmart D5100 series + c502 PhotoSmart D6100 series + c602 PhotoSmart D7100 series + c702 PhotoSmart D7300 series + c802 PhotoSmart D5060 Printer + d104 Bluetooth Dongle + efbe NEC Picty900 + f0be NEC Picty920 + f1be NEC Picty800 +03f1 Genoa Technology +03f2 Oak Technology, Inc. +03f3 Adaptec, Inc. + 0020 AWN-8020 WLAN + 0080 AVC-1100 Audio Capture + 0083 AVC-2200 Device + 0087 AVC-2210 Loader + 0088 AVC-2210 Device + 008b AVC-2310 Loader + 008c AVC-2310 Device + 0094 eHome Infrared Receiver + 009b AVC-1410 GameBridge TV NTSC + 2000 USBXchange + 2001 USBXchange Adapter + 2002 USB2-Xchange + 2003 USB2-Xchange Adapter + adcc Composite Device Support +03f4 Diebold, Inc. +03f5 Siemens Electromechanical +03f8 Epson Imaging Technology Center +03f9 KeyTronic Corp. + 0100 Keyboard + 0101 Keyboard + 0102 Keyboard Mouse +03fb OPTi, Inc. +03fc Elitegroup Computer Systems +03fd Xilinx, Inc. +03fe Farallon Comunications +0400 National Semiconductor Corp. + 05dc Rigol Technologies DS1000USB Oscilloscope + 0807 Bluetooth Dongle + 080a Bluetooth Device + 09c4 Rigol Technologies DG1022 Arbitrary Waveform Generator + 1000 Mustek BearPaw 1200 Scanner + 1001 Mustek BearPaw 2400 Scanner + 1237 Hub + a000 Smart Display Reference Device + c359 Logitech Harmony (Boot loader mode) + c35b Printing Support + c55d Rigol Technologies DS5000USB Oscilloscope +0401 National Registry, Inc. +0402 ALi Corp. + 5462 M5462 IDE Controller + 5602 M5602 Video Camera Controller + 5603 M5603 Video Camera Controller + 5606 M5606 Video Camera Controller [UVC] + 5621 M5621 High-Speed IDE Controller + 5623 M5623 Scanner Controller + 5627 Welland ME-740PS USB2 3.5" Power Saving Enclosure + 5632 M5632 Host-to-Host Link + 5635 M5635 Flash Card Reader + 5636 USB 2.0 Storage Device + 5637 M5637 IDE Controller + 5661 M5661 MP3 player + 5667 M5667 MP3 player +0403 Future Technology Devices International, Ltd + 0000 H4SMK 7 Port Hub + 0232 Serial Converter + 1060 JTAG adapter + 6001 FT232 USB-Serial (UART) IC + 6007 Serial Converter + 6008 Serial Converter + 6009 Serial Converter + 6010 FT2232C Dual USB-UART/FIFO IC + 6011 FT4232H + 8040 4 Port Hub + 8070 7 Port Hub + 8370 7 Port Hub + 8371 PS/2 Keyboard And Mouse + 8372 FT8U100AX Serial Port + bcd8 Stellaris Development Board + bcd9 Stellaris Evaluation Board + c630 lcd2usb interface + c7d0 RR-CirKits LocoBuffer-USB + c8b8 Alpermann+Velte MTD TCU + c8b9 Alpermann+Velte MTD TCU 1HE + c8ba Alpermann+Velte Rubidium H1 + c8bb Alpermann+Velte Rubidium H3 + c8bc Alpermann+Velte Rubidium S1 + c8bd Alpermann+Velte Rubidium T1 + c8be Alpermann+Velte Rubidium D1 + cc48 product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi + cc49 product FTDI TACTRIX_OPENPORT_13S 0xcc49 OpenPort 1.3 Subaru + cc4a product FTDI TACTRIX_OPENPORT_13U 0xcc4a OpenPort 1.3 Universal + d010 SCS PTC-IIusb + d011 SCS Position-Tracker/TNC + d012 SCS DRAGON 1 + d013 SCS DRAGON 1 + d6f8 UNI Black BOX + d9a9 Actisense USG-1 NMEA Serial Gateway + d9aa Actisense NGT-1 NMEA2000 PC Interface + e0d0 Total Phase Aardvark I2C/SPI Host Adapter + e521 EVER Sinline XL Series UPS + e700 Elster Unicom III Optical Probe + e888 Expert ISDN Control USB + e889 USB-RS232 OptoBridge + e88a Expert mouseCLOCK USB II + e88b Precision Clock MSF USB + e88c Expert mouseCLOCK USB II HBG + ea90 Eclo 1-Wire Adapter + ed71 HAMEG HO870 Serial Port + ed72 HAMEG HO720 Serial Port + ed73 HAMEG HO730 Serial Port + ed74 HAMEG HO820 Serial Port + ef10 FT1245BL + f070 Serial Converter 422/485 [Vardaan VEUSB422R3] + f1a0 Asix PRESTO Programmer + f208 Papenmeier Braille-Display + f3c0 4N-GALAXY Serial Converter + f680 Suunto Sports Instrument + f758 GW Instek GDS-8x0 Oscilloscope + f850 USB-UIRT (Universal Infrared Receiver+Transmitter) + f918 Ant8 Logic Probe + fa00 Matrix Orbital USB Serial + fa01 Matrix Orbital MX2 or MX3 + fa02 Matrix Orbital MX4 or MX5 + fa03 Matrix Orbital VK/LK202 Family + fa04 Matrix Orbital VK/LK204 Family + fc08 Crystalfontz CFA-632 USB LCD + fc09 Crystalfontz CFA-634 USB LCD + fc0b Crystalfontz CFA-633 USB LCD + fc0c Crystalfontz CFA-631 USB LCD + fc0d Crystalfontz CFA-635 USB LCD + fc82 SEMC DSS-20/DSS-25 SyncStation + fd48 ShipModul MiniPlex-4xUSB NMEA Multiplexer + fd49 ShipModul MiniPlex-4xUSB-AIS NMEA Multiplexer + ff08 ToolHouse LoopBack Adapter + ff18 Logbook Bus + ff19 Logbook Bus + ff1a Logbook Bus + ff1b Logbook Bus + ff1c Logbook Bus + ff1d Logbook Bus + ff1e Logbook Bus + ff1f Logbook Bus +0404 NCR Corp. + 0202 78XX Scanner + 0203 78XX Scanner - Embedded System + 0310 K590 Printer, Self-Service + 0311 7167 Printer, Receipt/Slip + 0312 7197 Printer Receipt + 0320 5932-USB Keyboard + 0321 5953-USB Dynakey + 0322 5932-USB Enhanced Keyboard + 0323 5932-USB Enhanced Keyboard, Flash-Recovery/Download + 0324 5953-USB Enhanced Dynakey + 0325 5953-USB Enhanced Dynakey Flash-Recovery/Download + 0328 K016: USB-MSR ISO 3-track MSR: POS Standard (See HID pages) + 0329 K018: USB-MSR JIS 2-Track MSR: POS Standard + 032a K016: USB-MSR ISO 3-Track MSR: HID Keyboard Mode + 032b K016/K018: USB-MSR Flash-Recovery/Download +0405 Synopsys, Inc. +0406 Fujitsu-ICL Computers +0407 Fujitsu Personal Systems, Inc. +0408 Quanta Computer, Inc. + 0103 FV TouchCam N1 (Audio) + 030c HP Webcam + 03b2 HP Webcam + 1030 FV TouchCam N1 (Video) + 3000 Optical dual-touch panel + 3001 Optical Touch Screen +0409 NEC Corp. + 0011 PC98 Series Layout Keyboard Mouse + 0012 ATerm IT75DSU ISDN TA + 0014 Japanese Keyboard + 0019 109 Japanese Keyboard with Bus-Powered Hub + 001a PC98 Series Layout Keyboard with Bus-Powered Hub + 0025 Mini Keyboard with Bus-Powered Hub + 0027 MultiSync Monitor + 002c Clik!-USB Drive + 0034 109 Japanese Keyboard with One-touch start buttons + 003f Wireless Keyboard with One-touch start buttons + 0040 Floppy + 004e SuperScript 1400 Series + 004f Wireless Keyboard with One-touch start buttons + 0058 HighSpeed Hub + 0059 HighSpeed Hub + 005a HighSpeed Hub + 006a Conceptronic USB Harddisk Box + 0081 SuperScript 1400 Series + 0082 SuperScript 1400 Series + 0094 Japanese Keyboard with One-touch start buttons + 0095 Japanese Keyboard + 00a9 AtermIT21L 128K Support Standard + 00aa AtermITX72 128K Support Standard + 00ab AtermITX62 128K Support Standard + 00ac AtermIT42 128K Support Standard + 00ae INSMATEV70G-MAX Standard + 00af AtermITX70 128K Support Standard + 00b0 AtermITX80 128K Support Standard + 00b2 AtermITX80D 128K Support Standard + 00c0 Wireless Remocon + 00f7 Smart Display PK-SD10 + 011d e228 Mobile Phone + 0203 HID Audio Controls + 0248 Aterm PA-WL54GU + 0249 Aterm WL300NU-G + 02b4 Aterm WL300NU-AG + 55aa Hub + 55ab Hub [iMac/iTouch kbd] + 8010 Intellibase Hub + 8011 Intellibase Hub + efbe P!cty 900 [HP DJ] + f0be P!cty 920 [HP DJ 812c] +040a Kodak Co. + 0001 DVC-323 + 0002 DVC-325 + 0100 DC-220 + 0110 DC-260 + 0111 DC-265 + 0112 DC-290 + 0120 DC-240 + 0121 DC-240 (PTP firmware) + 0130 DC-280 + 0131 DC-5000 + 0132 DC-3400 + 0140 DC-4800 + 0160 DC4800 + 0170 DX3900 + 0200 Digital Camera + 0300 EZ-200 + 0400 MC3 + 0402 Digital Camera + 0403 Z7590 + 0500 DX3500 + 0510 DX3600 + 0525 DX3215 + 0530 DX3700 + 0535 EasyShare CX4230 Camera + 0540 LS420 + 0550 DX4900 + 0555 DX4330 + 0560 CX4200 + 0565 CX4210 + 0566 CX4300 + 0567 LS753 + 0568 LS443 + 0569 LS663 + 0570 DX6340 + 0571 CX6330 + 0572 DX6440 + 0573 CX6230 + 0574 CX6200 + 0575 DX6490 + 0576 DX4530 + 0577 DX7630 + 0578 CX7300/CX7310 + 0579 CX7220 + 057a CX7330 + 057b CX7430 + 057c CX7530 + 057d DX7440 + 057e C300 + 057f DX7590 + 0580 Z730 + 0581 Digital Camera + 0582 Digital Camera + 0583 Digital Camera + 0584 CX6445 + 0585 Digital Camera + 0586 CX7525 + 0587 Digital Camera + 0588 Digital Camera + 0589 EasyShare C360 + 058a C310 + 058b Digital Camera + 058c C330 + 058d C340 + 058e V530 + 058f V550 + 0590 Digital Camera + 0591 Digital Camera + 0592 Digital Camera + 0593 Digital Camera + 0594 Digital Camera + 0595 Digital Camera + 0596 Digital Camera + 0597 Digital Camera + 0598 Digital Camera + 0599 Digital Camera + 059a Digital Camera + 059b Digital Camera + 059c Digital Camera + 059d Digital Camera + 059e Digital Camera + 059f Digital Camera + 05a0 Digital Camera + 05a1 Digital Camera + 05a2 Digital Camera + 05a3 Digital Camera + 05a4 Digital Camera + 05a5 Digital Camera + 05a6 Digital Camera + 05a7 Digital Camera + 05a8 Digital Camera + 05a9 Digital Camera + 05aa Digital Camera + 05ab Digital Camera + 05ac Digital Camera + 05ad Digital Camera + 05ae Digital Camera + 05af Digital Camera + 05b0 Digital Camera + 05b1 Digital Camera + 05b2 Digital Camera + 05b3 EasyShare Z710 Camera + 05b4 Digital Camera + 05b5 Digital Camera + 05b6 Digital Camera + 05b7 Digital Camera + 05b8 Digital Camera + 05b9 Digital Camera + 05ba Digital Camera + 05bb Digital Camera + 05bc Digital Camera + 05bd Digital Camera + 05be Digital Camera + 05bf Digital Camera + 05c0 Digital Camera + 05c1 Digital Camera + 05c2 Digital Camera + 05c3 Digital Camera + 05c4 Digital Camera + 05c5 Digital Camera + 05c8 EASYSHARE Z1485 IS Digital Camera + 05d3 EasyShare M320 Camera + 05d4 EasyShare C180 Digital Camera + 1001 EasyShare SV811 Digital Picture Frame + 4000 InkJet Color Printer + 4109 EasyShare Printer Dock Series 3 + 410d EasyShare G600 Printer Dock + 5010 Wireless Adapter + 5012 DBT-220 Bluetooth Adapter + 6001 i30 + 6002 i40 + 6003 i50 + 6004 i60 + 6005 i80 +040b Weltrend Semiconductor + 6510 Weltrend Bar Code Reader + 6520 XBOX Xploder + 6533 Speed-Link Competition Pro +040c VTech Computers, Ltd +040d VIA Technologies, Inc. + 3184 VNT VT6656 USB-802.11 Wireless LAN Adapter + 6205 USB 2.0 Card Reader +040e MCCI +040f Echo Speech Corp. +0411 BUFFALO INC. (formerly MelCo., Inc.) + 0001 LUA-TX Ethernet [pegasus] + 0005 LUA-TX Ethernet + 0006 WLI-USB-L11 Wireless LAN Adapter + 0009 LUA2-TX Ethernet + 000b WLI-USB-L11G-WR Wireless LAN Adapter + 000d WLI-USB-L11G Wireless LAN Adapter + 0012 LUA-KTX Ethernet + 0013 USB2-IDE Adapter + 0016 WLI-USB-S11 802.11b Adapter + 0018 USB2-IDE Adapter + 001c USB-IDE Bridge: DUB-PxxG + 0027 WLI-USB-KS11G 802.11b Adapter + 003d LUA-U2-KTX Ethernet + 0044 WLI-USB-KB11 Wireless LAN Adapter + 004b WLI-USB-G54 802.11g Adapter [Broadcom 4320 USB] + 004d WLI-USB-B11 Wireless LAN Adapter + 0050 WLI2-USB2-G54 Wireless LAN Adapter + 005e WLI-U2-KG54-YB WLAN + 0065 Python2 WDM Encoder + 0066 WLI-U2-KG54 WLAN + 0067 WLI-U2-KG54-AI WLAN + 0089 Buffalo RUF-C/U2 Flash Drive + 008b Nintendo Wi-Fi + 0091 WLI-U2-KAMG54 Wireless LAN Adapter + 0092 WLI-U2-KAMG54 Bootloader + 0097 WLI-U2-KG54-BB + 00a9 WLI-U2-AMG54HP Wireless LAN Adapter + 00aa WLI-U2-AMG54HP Bootloader + 00b3 PC-OP-RS1 RemoteStation + 00bc WLI-U2-KG125S 802.11g Adapter [Broadcom 4320 USB] + 00ca 802.11n Network Adapter + 00cb WLI-U2-G300N 802.11n Adapter + 00d8 WLI-U2-SG54HP + 00d9 WLI-U2-G54HP + 00da WLI-U2-KG54L 802.11bg [ZyDAS ZD1211B] + 00e8 Buffalo WLI-UC-G300N Wireless LAN Adapter + 012e Buffalo WLI-UC-AG300N Wireless LAN Adapter + 0148 Buffalo WLI-UC-G300HP Wireless LAN Adapter + 0150 Buffalo WLP-UC-AG300 Wireless LAN Adapter + 0157 Buffalo External Hard Drive HD-PEU2 + 0158 Buffalo WLI-UC-GNHP Wireless LAN Adapter + 015d Buffalo WLI-UC-GN Wireless LAN Adapter [Ralink RT2870] + 016f Buffalo WLI-UC-G301N Wireless LAN Adapter + 017f Sony UWA-BR100 802.11abgn Wireless Adapter [Atheros AR7010+AR9280] + 019e Buffalo WLI-UC-GNP Wireless LAN Adapter + 01a1 MiniStation Metro + 01a2 Buffalo WLI-UC-GNM Wireless LAN Adapter +0412 Award Software International +0413 Leadtek Research, Inc. + 1310 WinFast TV - NTSC + FM + 1311 WinFast TV - NTSC + MTS + FM + 1312 WinFast TV - PAL BG + FM + 1313 WinFast TV - PAL BG+TXT + FM + 1314 WinFast TV Audio - PHP PAL I + 1315 WinFast TV Audio - PHP PAL I+TXT + 1316 WinFast TV Audio - PHP PAL DK + 1317 WinFast TV Audio - PHP PAL DK+TXT + 1318 WinFast TV - PAL I/DK + FM + 1319 WinFast TV - PAL N + FM + 131a WinFast TV Audio - PHP SECAM LL + 131b WinFast TV Audio - PHP SECAM LL+TXT + 131c WinFast TV Audio - PHP SECAM DK + 131d WinFast TV - SECAM DK + TXT + FM + 131e WinFast TV - NTSC Japan + FM + 1320 WinFast TV - NTSC + 1321 WinFast TV - NTSC + MTS + 1322 WinFast TV - PAL BG + 1323 WinFast TV - PAL BG+TXT + 1324 WinFast TV Audio - PHP PAL I + 1325 WinFast TV Audio - PHP PAL I+TXT + 1326 WinFast TV Audio - PHP PAL DK + 1327 WinFast TV Audio - PHP PAL DK+TXT + 1328 WinFast TV - PAL I/DK + 1329 WinFast TV - PAL N + 132a WinFast TV Audio - PHP SECAM LL + 132b WinFast TV Audio - PHP SECAM LL+TXT + 132c WinFast TV Audio - PHP SECAM DK + 132d WinFast TV - SECAM DK + TXT + 132e WinFast TV - NTSC Japan + 6023 EMP Audio Device + 6024 WinFast PalmTop/Novo TV Video + 6025 WinFast DTV Dongle (cold state) + 6026 WinFast DTV Dongle (warm state) + 6029 WinFast DTV Dongle Gold + 6125 WinFast DTV Dongle + 6126 WinFast DTV Dongle BDA Driver + 6f00 WinFast DTV Dongle (STK7700P based) +0414 Giga-Byte Technology Co., Ltd +0416 Winbond Electronics Corp. + 0035 W89C35 802.11bg WLAN Adapter + 0101 Hub + 0961 AVL Flash Card Reader + 3810 Smart Card Controller + 3811 Generic Controller - Single interface + 3812 Smart Card Controller_2Interface + 3813 Panel Display + 5518 4-Port Hub + 551a PC Sync Keypad + 551b PC Async Keypad + 551c Sync Tenkey + 551d Async Tenkey + 551e Keyboard + 551f Keyboard w/ Sys and Media + 5521 Keyboard + 6481 16-bit Scanner + 7721 Memory Stick Reader/Writer + 7722 Memory Stick Reader/Writer + 7723 SD Card Reader +0417 Symbios Logic +0418 AST Research +0419 Samsung Info. Systems America, Inc. + 0001 IrDA Remote Controller / Creative Cordless Mouse + 0600 Desktop Wireless 6000 + 3001 Xerox P1202 Laser Printer + 3003 Olivetti PG L12L + 3201 Docuprint P8ex + 3404 SCX-5x12 series + 3406 MFP 830 series + 3407 ML-912 + 3601 InkJet Color Printer + 3602 InkJet Color Printer + 4602 Remote NDIS Network Device + 8001 Hub + 8002 SyncMaster HID Monitor Control + aa03 SDAS-3 MP3 Player +041a Phoenix Technologies, Ltd +041b d'TV +041d S3, Inc. +041e Creative Technology, Ltd + 1002 Nomad II + 1003 Blaster GamePad Cobra + 1050 GamePad Cobra + 1053 Mouse Gamer HD7600L + 200c MuVo V100 + 2020 Zen X-Fi 2 + 2029 ZiiO + 2801 Prodikeys PC-MIDI multifunction keyboard + 3000 SoundBlaster Extigy + 3002 SB External Composite Device + 3010 SoundBlaster MP3+ + 3014 SB External Composite Device + 3015 Sound Blaster Digital Music LX + 3020 SoundBlaster Audigy 2 NX + 3030 SB External Composite Device + 3040 SoundBlaster Live! 24-bit External SB0490 + 3060 Sound Blaster Audigy 2 ZS External + 3061 SoundBlaster Audigy 2 ZS Video Editor + 3090 Sound Blaster Digital Music SX + 3f00 E-Mu Xboard 25 MIDI Controller + 3f02 E-Mu 0202 + 3f04 E-Mu 0404 + 3f07 E-Mu Xmidi 1x1 + 4003 VideoBlaster Webcam Go Plus [W9967CF] + 4004 Nomad II MG + 4005 Webcam Blaster Go ES + 4007 Go Mini + 400a PC-Cam 300 + 400b PC-Cam 600 + 400c Webcam 5 [pwc] + 400d Webcam PD1001 + 400f PC-CAM 550 (Composite) + 4011 Webcam PRO eX + 4012 PC-CAM350 + 4013 PC-Cam 750 + 4015 CardCam Value + 4016 CardCam + 4017 Webcam Mobile [PD1090] + 4018 Webcam Vista [PD1100] + 4019 Audio Device + 401a Webcam Vista [PD1100] + 401c Webcam NX [PD1110] + 401d Webcam NX Ultra + 401e Webcam NX Pro + 401f Webcam Notebook [PD1171] + 4020 Webcam NX + 4021 Webcam NX Ultra + 4022 Webcam NX Pro + 4028 Vista Plus cam [VF0090] + 4029 Webcam Live! + 402f DC-CAM 3000Z + 4034 Webcam Instant + 4035 Webcam Instant + 4036 Webcam Live!/Live! Pro + 4037 Webcam Live! + 4038 ORITE CCD Webcam [PC370R] + 4039 Webcam Live! Effects + 403a Webcam NX Pro 2 + 403b Creative Webcam Vista [VF0010] + 403c Webcam Live! Ultra + 403d Webcam Notebook Ultra + 403e Webcam Vista Plus + 4041 Webcam Live! Motion + 4045 Live! Cam Voice + 4049 Live! Cam Voice + 4051 Live! Cam Notebook Pro [VF0250] + 4052 Live! Cam Vista IM + 4053 Live! Cam Video IM + 4054 Live! Cam Video IM + 4055 Live! Cam Video IM Pro + 4056 Live! Cam Video IM Pro + 4057 Live! Cam Optia + 4058 Live! Cam Optia AF + 4061 Live! Cam Notebook Pro [VF0400] + 4063 Live! Cam Video IM Pro + 4068 Live! Cam Notebook [VF0470] + 406c Live! Cam Sync [VF0520] + 4083 Live! Cam Socialize [VF0640] + 4100 Nomad Jukebox 2 + 4101 Nomad Jukebox 3 + 4102 NOMAD MuVo^2 + 4106 Nomad MuVo + 4107 NOMAD MuVo + 4108 Nomad Jukebox Zen + 4109 Nomad Jukebox Zen NX + 410b Nomad Jukebox Zen USB 2.0 + 410c Nomad MuVo NX + 410f NOMAD MuVo^2 (Flash) + 4110 Nomad Jukebox Zen Xtra + 4111 Dell Digital Jukebox + 4116 MuVo^2 + 4117 Nomad MuVo TX + 411b Zen Touch + 411c Nomad MuVo USB 2.0 + 411d Zen + 411e Zen Micro + 4120 Nomad MuVo TX FM + 4123 Zen Portable Media Center + 4124 MuVo^2 FM (uHDD) + 4126 Dell DJ (2nd gen) + 4127 Dell DJ + 4128 NOMAD Jukebox Zen Xtra (mtp) + 412b MuVo N200 with FM radio + 412f Dell Digital Jukebox 2.Gen + 4130 Zen Micro (mtp) + 4131 Zen Touch (mtp) + 4133 Mass Storage Device + 4134 Zen Neeon + 4136 Zen Sleek + 4137 Zen Sleek (mtp) + 4139 Zen Nano Plus + 413c Zen MicroPhoto + 4150 Zen V (MTP) + 4151 Zen Vision:M (mtp) + 4152 Zen V Plus + 4153 Zen Vision W + 4155 Zen Stone plus + 4157 Zen (MTP) + 500f Broadband Blaster 8012U-V + 5015 TECOM Bluetooth Device + ffff Webcam Live! Ultra +041f LCS Telegraphics +0420 Chips and Technologies + 1307 Celly SIM Card Reader +0421 Nokia Mobile Phones + 0001 E61i (PC Suite mode) + 0018 6288 GSM Smartphone + 0019 6288 GSM Smartphone (imaging mode) + 001a 6288 GSM Smartphone (file transfer mode) + 0024 5610 XpressMusic (Storage mode) + 0025 5610 XpressMusic (PC Suite mode) + 0028 5610 XpressMusic (Imaging mode) + 002d 6120 Phone (Mass storage mode) + 002e 6120 Phone (Media-Player mode) + 002f 6120 Phone (PC-Suite mode) + 0042 E51 (PC Suite mode) + 0064 3109c GSM Phone + 006b 5310 Xpress Music (PC Suite mode) + 006c 5310 Xpress music (Storage mode) + 006d N95 (Storage mode) + 006e N95 (Multimedia mode) + 006f N95 (Printing mode) + 0070 N95 (PC Suite mode) + 0096 N810 Internet Tablet + 00aa E71 (Mass storage mode) + 00ab E71 (PC Suite mode) + 00e4 E71 (Media transfer mode) + 0103 ADL Flashing Engine AVALON Parent + 0104 ADL Re-Flashing Engine Parent + 0105 Nokia Firmware Upgrade Mode + 0106 ROM Parent + 0154 5800 XpressMusic (PC Suite mode) + 0155 5800 XpressMusic (Multimedia mode) + 0156 5800 XpressMusic (Storage mode) + 0157 5800 XpressMusic (Imaging mode) + 0199 6700 Classic (msc) + 019a 6700 Classic (PC Suite) + 019b 6700 Classic (mtp) + 01b0 6303 classic Phone (PC Suite mode) + 01b1 6303 classic Phone (Mass storage mode) + 01b2 6303 classic Phone (Printing and media mode) + 01c7 N900 (Storage Mode) + 01c8 N900 (PC-Suite Mode) + 0228 5530 XpressMusic + 026a N97 (mass storage) + 026b N97 (Multimedia) + 026c N97 (PC Suite) + 026d N97 (Pictures) + 0295 660i/6600i Slide Phone (Mass Storage) + 0297 660i/6600i Slide Phone (Still Image) + 02e1 5230 (Storage mode) + 02e2 5230 (Multimedia mode) + 02e3 5230 (PC-Suite mode) + 02e4 5230 (Imaging mode) + 03a4 C5 (Storage mode) + 0400 7600 Phone Parent + 0401 6650 GSM Phone + 0402 6255 Phone Parent + 0404 5510 + 0405 9500 GSM Communicator + 0407 Music Player HDR-1(tm) + 040b N-Gage GSM Phone + 040d 6620 Phone Parent + 040e 6651 Phone Parent + 040f 6230 GSM Phone + 0410 6630 Imaging Smartphone + 0411 7610 Phone Parent + 0413 6260 Phone Parent + 0414 7370 + 0415 9300 GSM Smartphone + 0416 6170 Phone Parent + 0417 7270 Phone Parent + 0418 E70 (PC Suite mode) + 0419 E60 (PC Suite mode) + 041a 9500 GSM Communicator (RNDIS) + 041b 9300 GSM Smartphone (RNDIS) + 041c 7710 Phone Parent + 041d 6670 Phone Parent + 041e 6680 + 041f 6235 Phone Parent + 0421 3230 Phone Parent + 0422 6681 Phone Parent + 0423 6682 Phone Parent + 0428 6230i Modem + 0429 6230i MultiMedia Card + 0431 770 Internet Tablet + 0432 N90 Phone Parent + 0435 E70 (IP Passthrough/RNDIS mode) + 0436 E60 (IP Passthrough/RNDIS mode) + 0437 6265 Phone Parent + 043a N70 USB Phone Parent + 043b 3155 Phone Parent + 043c 6155 Phone Parent + 043d 6270 Phone Parent + 0443 N70 Phone Parent + 0444 N91 + 044c NM850iG Phone Parent + 044d E61 (PC Suite mode) + 044e E61 (Data Exchange mode) + 044f E61 (IP Passthrough/RNDIS mode) + 0453 9300 Phone Parent + 0456 6111 Phone Parent + 0457 6111 Phone (Printing mode) + 045a 6280 Phone Parent + 045d 6282 Phone Parent + 046e 6110 Navigator + 0471 6110 Navigator + 0485 MTP Device + 04b9 5300 + 04c3 N800 Internet Tablet + 04ce E90 Communicator (PC Suite mode) + 04cf E90 Communicator (Storage mode) + 04f0 Nokia N95 (PC Suite mode) + 04f9 6300 (PC Suite mode) + 0508 E65 (PC Suite mode) + 0509 E65 (Storage mode) + 0600 Digital Pen SU-1B + 0610 CS-15 (Internet Stick 3G modem) + 0800 Connectivity Cable DKU-5 + 0801 Data Cable DKU-6 + 0802 CA-42 Phone Parent +0422 ADI Systems, Inc. +0423 Computer Access Technology Corp. + 000a NetMate Ethernet + 000c NetMate2 Ethernet + 000d USB Chief Analyzer + 0100 Generic Universal Protocol Analyzer + 0101 UPA USBTracer + 0200 Generic 10K Universal Protocol Analyzer + 020a PETracer ML + 0300 Generic Universal Protocol Analyzer + 0301 2500H Tracer Trainer + 030a PETracer x1 + 1237 Andromeda Hub +0424 Standard Microsystems Corp. + 0001 Integrated Hub + 0acd Sitecom Internal Multi Memory reader/writer MD-005 + 0fdc Floppy + 10cd Sitecom Internal Multi Memory reader/writer MD-005 + 2020 USB Hub + 20cd Sitecom Internal Multi Memory reader/writer MD-005 + 20fc 6-in-1 Card Reader + 2228 9-in-2 Card Reader + 223a 8-in-1 Card Reader + 2503 USB 2.0 Hub + 2504 USB 2.0 Hub + 2512 USB 2.0 Hub + 2514 USB 2.0 Hub + 2524 USB MultiSwitch Hub + 2602 USB 2.0 Hub + 2640 USB 2.0 Hub + 4060 Ultra Fast Media Reader + 4064 Ultra Fast Media Reader +0425 Motorola Semiconductors HK, Ltd + 0101 G-Tech Wireless Mouse & Keyboard + f102 G-Tech U+P Wireless Mouse +0426 Integrated Device Technology, Inc. + 0426 WDM Driver +0427 Motorola Electronics Taiwan, Ltd +0428 Advanced Gravis Computer Tech, Ltd + 4001 GamePad Pro +0429 Cirrus Logic +042a Ericsson Austrian, AG +042b Intel Corp. + 9316 8x931Hx Customer Hub +042c Innovative Semiconductors, Inc. +042d Micronics +042e Acer, Inc. + 0380 MP3 Player +042f Molex, Inc. +0430 Sun Microsystems, Inc. + 0002 109 Keyboard + 0005 Type 6 Keyboard + 000a 109 Japanese Keyboard + 000b 109 Japanese Keyboard + 0082 109 Japanese Keyboard + 0083 109 Japanese Keyboard + 00a2 Type 7 Keyboard + 0100 3-button Mouse + 100e 24.1" LCD Monitor v4 / FID-638 Mouse + 36ba Bus Powered Hub + cdab Raritan KVM dongle +0431 Itac Systems, Inc. + 0100 Mouse-Trak 3-button Track Ball +0432 Unisys Corp. +0433 Alps Electric, Inc. + 1101 IBM Game Controller + abab Keyboard +0434 Samsung Info. Systems America, Inc. +0435 Hyundai Electronics America +0436 Taugagreining HF + 0005 CameraMate (DPCM_USB) +0437 Framatome Connectors USA +0438 Advanced Micro Devices, Inc. +0439 Voice Technologies Group +043d Lexmark International, Inc. + 0001 Laser Printer + 0002 Optra E310 Printer + 0003 Laser Printer + 0004 Laser Printer + 0005 Laser Printer + 0006 Laser Printer + 0007 Laser Printer + 0008 Inkjet Color Printer + 0009 Optra S2450 Printer + 000a Laser Printer + 000b Inkjet Color Printer + 000c Optra E312 Printer + 000d Laser Printer + 000e Laser Printer + 000f Laser Printer + 0010 Laser Printer + 0011 Laser Printer + 0012 Inkjet Color Printer + 0013 Inkjet Color Printer + 0014 InkJet Color Printer + 0015 InkJet Color Printer + 0016 Z12 Color Jetprinter + 0017 Z32 printer + 0018 Z52 Printer + 0019 Forms Printer + 001a Z65 Printer + 001b InkJet Photo Printer + 001c Kodak Personal Picture Maker 200 Printer + 001d InkJet Color Printer + 001e InkJet Photo Printer + 001f Kodak Personal Picture Maker 200 Card Reader + 0020 Z51 Printer + 0021 Z33 Printer + 0022 InkJet Color Printer + 0023 Laser Printer + 0024 Laser Printer + 0025 InkJet Color Printer + 0026 InkJet Color Printer + 0027 InkJet Color Printer + 0028 InkJet Color Printer + 0029 Scan Print Copy + 002a Scan Print Copy + 002b Scan Print Copy + 002c Scan Print Copy + 002d X70/X73 Scan/Print/Copy + 002e Scan Print Copy + 002f Scan Print Copy + 0030 Scan Print Copy + 0031 Scan Print Copy + 0032 Scan Print Copy + 0033 Scan Print Copy + 0034 Scan Print Copy + 0035 Scan Print Copy + 0036 Scan Print Copy + 0037 Scan Print Copy + 0038 Scan Print Copy + 0039 Scan Print Copy + 003a Scan Print Copy + 003b Scan Print Copy + 003c Scan Print Copy + 003d X83 Scan/Print/Copy + 003e Scan Print Copy + 003f Scan Print Copy + 0040 Scan Print Copy + 0041 Scan Print Copy + 0042 Scan Print Copy + 0043 Scan Print Copy + 0044 Scan Print Copy + 0045 Scan Print Copy + 0046 Scan Print Copy + 0047 Scan Print Copy + 0048 Scan Print Copy + 0049 Scan Print Copy + 004a Scan Print Copy + 004b Scan Print Copy + 004c Scan Print Copy + 004d Laser Printer + 004e Laser Printer + 004f InkJet Color Printer + 0050 InkJet Color Printer + 0051 Laser Printer + 0052 Laser Printer + 0053 InkJet Color Printer + 0054 InkJet Color Printer + 0057 Z35 Printer + 0058 Laser Printer + 005a X63 + 005c InkJet Color Printer + 0060 X74/X75 Scanner + 0061 X74 Hub + 0065 X5130 + 0069 X74/X75 Printer + 006d X125 + 006e C510 + 0072 X6170 Printer + 0073 InkJet Color Printer + 0078 InkJet Color Printer + 0079 InkJet Color Printer + 007a Generic Hub + 007b InkJet Color Printer + 007c Lexmark X1110/X1130/X1140/X1150/X1170/X1180/X1185 + 007d Photo 3150 + 008a 4200 series + 008b InkJet Color Printer + 008c to CF/SM/SD/MS Card Reader + 008e InkJet Color Printer + 008f X422 + 0093 X5250 + 0095 E220 Printer + 0096 2200 series + 0097 P6250 + 0098 7100 series + 009e P910 series Human Interface Device + 009f InkJet Color Printer + 00a9 IBM Infoprint 1410 MFP + 00ab InkJet Color Printer + 00b2 3300 series + 00b8 7300 series + 00b9 8300 series + 00ba InkJet Color Printer + 00bb 2300 series + 00bd Printing Support + 00be Printing Support + 00bf Printing Support + 00c0 6300 series + 00c1 4300 series + 00c7 Printing Support + 00c8 Printing Support + 00c9 Printing Support + 00cb Printing Support + 00cc E120(n) + 00d0 9300 series + 00d3 X340 Scanner + 00d4 X342n Scanner + 00d5 Printing Support + 00d6 X340 Scanner + 00e8 X642e + 00e9 2400 series + 00f6 3400 series + 00f7 InkJet Color Printer + 00ff InkJet Color Printer + 010b 2500 series + 010d 3500-4500 series + 010f 6500 series + 0142 X3650 (Printer, Scanner, Copier) + 4303 Xerox WorkCentre Pro 412 +043e LG Electronics USA, Inc. + 3001 AN-WF100 802.11abgn Wireless Adapter [Broadcom BCM4323] + 42bd Flatron 795FT Plus Monitor + 4a4d Flatron 915FT Plus Monitor + 7001 MF-PD100 Soul Digital MP3 Player + 7013 MP3 Player + 8484 LPC-U30 Webcam II + 8585 LPC-UC35 Webcam + 8888 Electronics VCS Camera II(LPC-U20) + 9800 Remote Control Receiver_iMON + 9803 eHome Infrared Receiver + 9804 DMB Receiver Control + 9c01 LGE Sync +043f RadiSys Corp. +0440 Eizo Nanao Corp. +0441 Winbond Systems Lab. + 1456 Hub +0442 Ericsson, Inc. + abba Bluetooth Device +0443 Gateway, Inc. + 000e Multimedia Keyboard + 002e Millennium Keyboard +0445 Lucent Technologies, Inc. +0446 NMB Technologies Corp. + 6781 Keyboard with PS/2 Mouse Port + 6782 Keyboard +0447 Momentum Microsystems +044a Shamrock Tech. Co., Ltd +044b WSI +044c CCL/ITRI +044d Siemens Nixdorf AG +044e Alps Electric Co., Ltd + 1104 Japanese Keyboard + 2002 MD-5500 Printer + 2014 Bluetooth Device + 3001 UGTZ4 Bluetooth + 3002 Bluetooth Device + 3003 Bluetooth Device + 3004 Bluetooth Adapter + 3005 Integrated Bluetooth Device + 3006 Bluetooth Adapter + 3007 Bluetooth Controller (ALPS/UGX) + 300c Bluetooth Controller (ALPS/UGPZ6) + 300d Bluetooth Controller (ALPS/UGPZ6) + 3010 Bluetooth Adapter + 3017 BCM2046 Bluetooth Device + ffff Compaq Bluetooth Multiport Module +044f ThrustMaster, Inc. + 0400 HOTAS Cougar + a003 Rage 3D Game Pad + a01b PK-GP301 Driving Wheel + a0a0 Top Gun Joystick + a0a1 Top Gun Joystick (rev2) + a0a3 Fusion Digital GamePad + a201 PK-GP201 PlayStick + b10a T.16000M Joystick + b203 360 Modena Pro Wheel + b300 Firestorm Dual Power + b304 Firestorm Dual Power + b307 vibrating Upad + b30b Wireless VibrationPad + b323 Dual Trigger 3-in-1 (PC Mode) + b324 Dual Trigger 3-in-1 (PS3 Mode) + b603 force feedback Wheel + b605 force feedback Racing Wheel + b651 Ferrari GT Rumble Force Wheel + b653 RGT Force Feedback Clutch Racing Wheel + b654 Ferrari GT Force Feedback Wheel + b700 Tacticalboard +0450 DFI, Inc. +0451 Texas Instruments, Inc. + 1234 Bluetooth Device + 1428 Hub + 1446 TUSB2040/2070 Hub + 16a6 BM-USBD1 BlueRobin RF heart rate sensor receiver + 2036 TUSB2036 Hub + 2046 TUSB2046 Hub + 2077 TUSB2077 Hub + 3410 TUSB3410 Microcontroller + 3f00 OMAP1610 + 3f02 SMC WSKP100 Wi-Fi Phone + 5409 Frontier Labs NEX IA+ Digital Audio Player + 6000 AU5 ADSL Modem (pre-reenum) + 6001 AU5 ADSL Modem + 6060 RNDIS/BeWAN ADSL2+ + 6070 RNDIS/BeWAN ADSL2+ + 625f Trekstor USB-Stick 12 CS-D 12 GB + dbc0 Device Bay Controller + e001 GraphLink + e003 TI-84 Plus Calculator + e004 TI-89 Titanium Calculator + e008 TI-84 Plus Silver Calculator + f430 MSP-FET430UIF JTAG Tool + f432 eZ430 Development Tool + ffff Bluetooth Device +0452 Mitsubishi Electronics America, Inc. + 0021 HID Monitor Controls + 0050 Diamond Pro 900u CRT Monitor + 0051 Integrated Hub +0453 CMD Technology + 6781 NMB Keyboard + 6783 Chicony Composite Keyboard +0454 Vobis Microcomputer AG +0455 Telematics International, Inc. +0456 Analog Devices, Inc. + f000 FT2232 JTAG ICE [gnICE] + f001 FT2232H Hi-Speed JTAG ICE [gnICE+] +0457 Silicon Integrated Systems Corp. + 0150 Super Talent 1GB Flash Drive + 0151 Super Flash 1GB / GXT 64MB Flash Drive + 0162 SiS162 usb Wireless LAN Adapter + 0163 802.11 Wireless LAN Adapter + 5401 Wireless Adapter RO80211GS-USB +0458 KYE Systems Corp. (Mouse Systems) + 0001 Mouse + 0002 Genius NetMouse Pro + 0003 Genius NetScroll+ + 0006 Easy Mouse+ USB(USB\Vid_0458&Pid;_0006) Mouse + 000b NetMouse Wheel(P+U) + 000c TACOMA Fingerprint V1.06.01 + 000e VideoCAM Web + 0013 TACOMA Fingerprint Mouse V1.06.01 + 001a Genius WebScroll+ + 0036 Pocket Mouse LE + 0039 NetScroll+ Superior + 003a NetScroll+ Mini Traveler / Genius NetScroll 120 + 004c Slimstar Pro Keyboard + 0056 Ergo 300 Mouse + 0057 Enhanced Gaming Device + 0059 Enhanced Laser Device + 005a Enhanced Device + 005b Enhanced Device + 005c Enhanced Laser Gaming Device + 005d Enhanced Device + 0061 Bluetooth Dongle + 0072 Navigator 335 + 0083 Bluetooth Dongle + 0087 Ergo 525V Laser Mouse + 0100 EasyPen Tablet + 0101 CueCat + 011b NetScroll T220 + 1001 Joystick + 1002 Game Pad + 1003 Genius VideoCam + 1004 Flight2000 F-23 Joystick + 100a Aashima Technology Trust Sight Fighter Vibration Feedback Joystick + 2001 ColorPage-Vivid Pro Scanner + 2004 ColorPage-HR6 V1 Scanner + 2005 ColorPage-HR6/Vivid3 + 2007 ColorPage-HR6 V2 Scanner + 2008 ColorPage-HR6 V2 Scanner + 2009 ColorPage-HR6A Scanner + 2011 ColorPage-Vivid3x Scanner + 2012 Plustek Scanner + 2013 ColorPage-HR7 Scanner + 2014 ColorPage-Vivid4 + 2015 ColorPage-HR7LE Scanner + 2016 ColorPage-HR6X Scanner + 2017 ColorPage-Vivid3xe + 2018 ColorPage-HR7X + 2019 ColorPage-HR6X Slim + 201a ColorPage-Vivid4xe + 201b ColorPage-Vivid4x + 201c ColorPage-HR8 + 201d ColorPage-Vivid 1200 X + 201e ColorPage-Slim 1200 + 201f ColorPage-Vivid 1200 XE + 2020 ColorPage-Slim 1200 USB2 + 2021 ColorPage-SF600 + 3017 SPEED WHEEL 3 Vibration + 3018 Wireless 2.4Ghz Game Pad + 3019 10-Button USB Joystick with Vibration + 301a MaxFire G-12U Vibration + 301d Genius MaxFire MiniPad + 400f Genius TVGo DVB-T02Q MCE + 4012 TVGo DVB-T03 + 5003 G-pen 560 Tablet + 5004 G-pen Tablet + 6001 GF3000F Ethernet Adapter + 7004 VideoCAM Express V2 + 7006 Dsc 1.3 Smart Camera Device + 7007 VideoCAM Web + 7009 G-Shot G312 Still Camera Device + 700c VideoCAM Web V3 + 700d G-Shot G511 Composite Device + 700f VideoCAM Web + 7012 WebCAM USB2.0 + 7014 VideoCAM Live V3 + 701c G-Shot G512 Still Camera + 7020 Sim 321C + 7025 Eye 311Q Camera + 7029 Genius Look 320s (SN9C201 + HV7131R) + 702f Genius Slim 322 + 7035 i-Look 325T Camera + 7045 Genius Look 1320 V2 + 704c Genius i-Look 1321 + 704d Slim 1322AF + 7055 Slim 2020AF camera + 705a Asus USB2.0 Webcam + 705c Genius iSlim 1300AF +0459 Adobe Systems, Inc. +045a SONICblue, Inc. + 07da Supra Express 56K modem + 0b4a SupraMax 2890 56K Modem [Lucent Atlas] + 0b68 SupraMax 56K Modem + 5001 Rio 600 MP3 Player + 5002 Rio 800 MP3 Player + 5003 Nike Psa/Play MP3 Player + 5005 Rio S10 MP3 Player + 5006 Rio S50 MP3 Player + 5007 Rio S35 MP3 Player + 5008 Rio 900 MP3 Player + 5009 Rio S30 MP3 Player + 500d Fuse MP3 Player + 500e Chiba MP3 Player + 500f Cali MP3 Player + 5010 Rio S11 MP3 Player + 501c Virgin MPF-1000 + 501d Rio Fuse + 501e Rio Chiba + 501f Rio Cali + 503f Cali256 MP3 Player + 5202 Rio Riot MP3 Player + 5210 Rio Karma Music Player + 5220 Rio Nitrus MP3 Player + 5221 Rio Eigen +045b Hitachi, Ltd +045d Nortel Networks, Ltd +045e Microsoft Corp. + 0007 SideWinder Game Pad + 0008 SideWinder Precision Pro + 0009 IntelliMouse + 000b Natural Keyboard Elite + 000e SideWinder® Freestyle Pro + 0014 Digital Sound System 80 + 001a SideWinder Precision Racing Wheel + 001b SideWinder Force Feedback 2 Joystick + 001c Internet Keyboard Pro + 001d Natural Keyboard Pro + 001e IntelliMouse Explorer + 0023 Trackball Optical + 0024 Trackball Explorer + 0025 IntelliEye Mouse + 0026 SideWinder GamePad Pro + 0027 SideWinder PnP GamePad + 0028 SideWinder Dual Strike + 0029 IntelliMouse Optical + 002b Internet Keyboard Pro + 002d Internet Keyboard + 002f Integrated Hub + 0033 Sidewinder Strategic Commander + 0034 SideWinder Force Feedback Wheel + 0038 SideWinder Precision 2 + 0039 IntelliMouse Optical + 003b SideWinder Game Voice + 003c SideWinder Joystick + 0040 Wheel Mouse Optical + 0047 IntelliMouse Explorer 3.0 + 0048 Office Keyboard 1.0A + 0053 Optical Mouse + 0059 Wireless IntelliMouse Explorer + 005c Office Keyboard (106/109) + 005f Wireless MultiMedia Keyboard + 0061 Wireless MultiMedia Keyboard (106/109) + 0063 Wireless Natural MultiMedia Keyboard + 0065 Wireless Natural MultiMedia Keyboard (106/109) + 006a Wireless Optical Mouse (IntelliPoint) + 006d eHome Remote Control Keyboard keys + 006e MN510 802.11b Adapter + 006f Smart Display Reference Device + 0070 Wireless MultiMedia Keyboard + 0071 Wireless MultiMedia Keyboard (106/109) + 0072 Wireless Natural MultiMedia Keyboard + 0073 Wireless Natural MultiMedia Keyboard (106/109) + 0079 IXI Ogo CT-17 handheld device + 007a 10/100 USB NIC + 007d Notebook Optical Mouse + 007e Wireless Transceiver for Bluetooth + 0080 Digital Media Pro Keyboard + 0083 Basic Optical Mouse + 0084 Basic Optical Mouse + 008a Wireless Keyboard and Mouse + 008b Dual Receiver Wireless Mouse (IntelliPoint) + 008c Wireless Intellimouse Explorer 2.0 + 0095 IntelliMouse Explorer 4.0 (IntelliPoint) + 009c Wireless Transceiver for Bluetooth 2.0 + 009d Wireless Optical Desktop 3.0 + 00a0 eHome Infrared Receiver + 00b0 Digital Media Pro Keyboard + 00b9 Wireless Optical Mouse 3.0 + 00bb Fingerprint Reader + 00bc Fingerprint Reader + 00bd Fingerprint Reader + 00c2 MN-710 802.11g Wireless Adapter [Intersil ISL3886] + 00c9 MTP Device + 00ca Fingerprint Reader + 00cb Basic Optical Mouse v2.0 + 00ce Generic PPC Flash device + 00d1 Optical Mouse with Tilt Wheel + 00da eHome Infrared Receiver + 00db Natural Ergonomic Keyboard 4000 V1.0 + 00dd Comfort Curve Keyboard 2000 V1.0 + 00e1 Wireless Laser Mouse 6000 Reciever + 00f4 LifeCam VX-6000 (SN9C20x + OV9650) + 00f5 LifeCam VX-3000 + 00f6 Comfort Optical Mouse 1000 + 00f7 LifeCam VX-1000 + 00f8 LifeCam NX-6000 + 00f9 Wireless Desktop Receiver 3.1 + 0202 Xbox Controller + 0280 XBox Device + 0283 Xbox Communicator + 0284 Xbox DVD Playback Kit + 0285 Xbox Controller S + 0288 Xbox Controller S Hub + 0289 Xbox Controller S + 028b Xbox360 DVD Emulator + 028d Xbox360 Memory Unit 64MB + 028e Xbox360 Controller + 028f Xbox360 Wireless Controller + 0290 Xbox360 Performance Pipe (PIX) + 0291 Xbox 360 Wireless Receiver for Windows + 0292 Xbox360 Wireless Networking Adapter + 029c Xbox360 HD-DVD Drive + 029d Xbox360 HD-DVD Drive + 029e Xbox360 HD-DVD Memory Unit + 02a0 Xbox360 Big Button IR + 02a8 Xbox360 Wireless N Networking Adapter [Atheros AR7010+AR9280] + 02ad Xbox NUI Audio + 02ae Xbox NUI Camera + 02b0 Xbox NUI Motor + 0400 Windows Powered Pocket PC 2002 + 0401 Windows Powered Pocket PC 2002 + 0402 Windows Powered Pocket PC 2002 + 0403 Windows Powered Pocket PC 2002 + 0404 Windows Powered Pocket PC 2002 + 0405 Windows Powered Pocket PC 2002 + 0406 Windows Powered Pocket PC 2002 + 0407 Windows Powered Pocket PC 2002 + 0408 Windows Powered Pocket PC 2002 + 0409 Windows Powered Pocket PC 2002 + 040a Windows Powered Pocket PC 2002 + 040b Windows Powered Pocket PC 2002 + 040c Windows Powered Pocket PC 2002 + 040d Windows Powered Pocket PC 2002 + 040e Windows Powered Pocket PC 2002 + 040f Windows Powered Pocket PC 2002 + 0410 Windows Powered Pocket PC 2002 + 0411 Windows Powered Pocket PC 2002 + 0412 Windows Powered Pocket PC 2002 + 0413 Windows Powered Pocket PC 2002 + 0414 Windows Powered Pocket PC 2002 + 0415 Windows Powered Pocket PC 2002 + 0416 Windows Powered Pocket PC 2002 + 0417 Windows Powered Pocket PC 2002 + 0432 Windows Powered Pocket PC 2003 + 0433 Windows Powered Pocket PC 2003 + 0434 Windows Powered Pocket PC 2003 + 0435 Windows Powered Pocket PC 2003 + 0436 Windows Powered Pocket PC 2003 + 0437 Windows Powered Pocket PC 2003 + 0438 Windows Powered Pocket PC 2003 + 0439 Windows Powered Pocket PC 2003 + 043a Windows Powered Pocket PC 2003 + 043b Windows Powered Pocket PC 2003 + 043c Windows Powered Pocket PC 2003 + 043d Becker Traffic Assist Highspeed 7934 + 043e Windows Powered Pocket PC 2003 + 043f Windows Powered Pocket PC 2003 + 0440 Windows Powered Pocket PC 2003 + 0441 Windows Powered Pocket PC 2003 + 0442 Windows Powered Pocket PC 2003 + 0443 Windows Powered Pocket PC 2003 + 0444 Windows Powered Pocket PC 2003 + 0445 Windows Powered Pocket PC 2003 + 0446 Windows Powered Pocket PC 2003 + 0447 Windows Powered Pocket PC 2003 + 0448 Windows Powered Pocket PC 2003 + 0449 Windows Powered Pocket PC 2003 + 044a Windows Powered Pocket PC 2003 + 044b Windows Powered Pocket PC 2003 + 044c Windows Powered Pocket PC 2003 + 044d Windows Powered Pocket PC 2003 + 044e Windows Powered Pocket PC 2003 + 044f Windows Powered Pocket PC 2003 + 0450 Windows Powered Pocket PC 2003 + 0451 Windows Powered Pocket PC 2003 + 0452 Windows Powered Pocket PC 2003 + 0453 Windows Powered Pocket PC 2003 + 0454 Windows Powered Pocket PC 2003 + 0455 Windows Powered Pocket PC 2003 + 0456 Windows Powered Pocket PC 2003 + 0457 Windows Powered Pocket PC 2003 + 0458 Windows Powered Pocket PC 2003 + 0459 Windows Powered Pocket PC 2003 + 045a Windows Powered Pocket PC 2003 + 045b Windows Powered Pocket PC 2003 + 045c Windows Powered Pocket PC 2003 + 045d Windows Powered Pocket PC 2003 + 045e Windows Powered Pocket PC 2003 + 045f Windows Powered Pocket PC 2003 + 0460 Windows Powered Pocket PC 2003 + 0461 Windows Powered Pocket PC 2003 + 0462 Windows Powered Pocket PC 2003 + 0463 Windows Powered Pocket PC 2003 + 0464 Windows Powered Pocket PC 2003 + 0465 Windows Powered Pocket PC 2003 + 0466 Windows Powered Pocket PC 2003 + 0467 Windows Powered Pocket PC 2003 + 0468 Windows Powered Pocket PC 2003 + 0469 Windows Powered Pocket PC 2003 + 046a Windows Powered Pocket PC 2003 + 046b Windows Powered Pocket PC 2003 + 046c Windows Powered Pocket PC 2003 + 046d Windows Powered Pocket PC 2003 + 046e Windows Powered Pocket PC 2003 + 046f Windows Powered Pocket PC 2003 + 0470 Windows Powered Pocket PC 2003 + 0471 Windows Powered Pocket PC 2003 + 0472 Windows Powered Pocket PC 2003 + 0473 Windows Powered Pocket PC 2003 + 0474 Windows Powered Pocket PC 2003 + 0475 Windows Powered Pocket PC 2003 + 0476 Windows Powered Pocket PC 2003 + 0477 Windows Powered Pocket PC 2003 + 0478 Windows Powered Pocket PC 2003 + 0479 Windows Powered Pocket PC 2003 + 047a Windows Powered Pocket PC 2003 + 047b Windows Powered Pocket PC 2003 + 04c8 Windows Powered Smartphone 2002 + 04c9 Windows Powered Smartphone 2002 + 04ca Windows Powered Smartphone 2002 + 04cb Windows Powered Smartphone 2002 + 04cc Windows Powered Smartphone 2002 + 04cd Windows Powered Smartphone 2002 + 04ce Windows Powered Smartphone 2002 + 04d7 Windows Powered Smartphone 2003 + 04d8 Windows Powered Smartphone 2003 + 04d9 Windows Powered Smartphone 2003 + 04da Windows Powered Smartphone 2003 + 04db Windows Powered Smartphone 2003 + 04dc Windows Powered Smartphone 2003 + 04dd Windows Powered Smartphone 2003 + 04de Windows Powered Smartphone 2003 + 04df Windows Powered Smartphone 2003 + 04e0 Windows Powered Smartphone 2003 + 04e1 Windows Powered Smartphone 2003 + 04e2 Windows Powered Smartphone 2003 + 04e3 Windows Powered Smartphone 2003 + 04e4 Windows Powered Smartphone 2003 + 04e5 Windows Powered Smartphone 2003 + 04e6 Windows Powered Smartphone 2003 + 04e7 Windows Powered Smartphone 2003 + 04e8 Windows Powered Smartphone 2003 + 04e9 Windows Powered Smartphone 2003 + 04ea Windows Powered Smartphone 2003 + 04ec Windows Phone (Zune) + 063e Zune HD Media Player + 0640 KIN Phone + 0641 KIN Phone + 0642 KIN Phone + 0707 Wireless Laser Mouse 8000 + 0708 Transceiver v 3.0 for Bluetooth + 070a Charon Bluetooth Dongle (DFU) + 0710 Zune Media Player + 0713 Wireless Presenter Mouse 8000 + 0719 Xbox 360 Wireless Adapter + 0721 LifeCam NX-3000 (UVC-compliant) + 0723 LifeCam VX-7000 (UVC-compliant) + 0734 Wireless Optical Desktop 700 + 0737 Compact Optical Mouse 500 + 0745 Nano Transceiver v1.0 for Bluetooth + 0750 Wired Keyboard 600 + 075d LifeCam Cinema + 076d LifeCam HD-5000 + 930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board + fff8 Keyboard + ffff Windows CE Mass Storage +0460 Ace Cad Enterprise Co., Ltd + 0004 Tablet (5x3.75) + 0006 LCD Tablet (12x9) + 0008 Tablet (3x2.25) +0461 Primax Electronics, Ltd + 0300 G2-300 Scanner + 0301 G2E-300 Scanner + 0302 G2-300 #2 Scanner + 0303 G2E-300 #2 Scanner + 0340 Colorado 9600 Scanner + 0341 Colorado 600u Scanner + 0345 Visioneer 6200 Scanner + 0346 Memorex Maxx 6136u Scanner + 0347 Primascan Colorado 2600u/Visioneer 4400 Scanner + 0360 Colorado 19200 Scanner + 0361 Colorado 1200u Scanner + 0363 VistaScan Astra 3600(ENG) + 0364 LG Electronics Scanworks 600U Scanner + 0365 VistaScan Astra 3600(ENG) + 0366 6400 + 0367 VistaScan Astra 3600(ENG) + 0371 Visioneer Onetouch 8920 Scanner + 0374 UMAX Astra 2500 + 0375 VistaScan Astra 3600(ENG) + 0377 Medion MD 5345 Scanner + 0378 VistaScan Astra 3600(ENG) + 037b Medion MD 6190 Scanner + 037c VistaScan Astra 3600(ENG) + 0380 G2-600 Scanner + 0381 ReadyScan 636i Scanner + 0382 G2-600 #2 Scanner + 0383 G2E-600 Scanner + 038a UMAX Astra 3000/3600 + 038b Xerox 2400 Onetouch + 038c UMAX Astra 4100 + 0392 Medion/Lifetec/Tevion/Cytron MD 6190 + 03a8 9420M + 0813 IBM UltraPort Camera + 0815 Micro Innovations IC200 Webcam + 0819 Fujifilm IX-30 Camera [webcam mode] + 081a Fujifilm IX-30 Camera [storage mode] + 081c Elitegroup ECS-C11 Camera + 081d Elitegroup ECS-C11 Storage + 0a00 Micro Innovations Web Cam 320 + 4d01 Comfort Keyboard + 4d02 Mouse-in-a-Box + 4d03 Kensington Mouse-in-a-box + 4d04 Mouse + 4d06 Balless Mouse (HID) + 4d15 Dell Optical Mouse + 4d17 Optical Mouse + 4d2a PoPo Elixir Mouse (HID) + 4d2b Wireless Laser Mini Mouse (HID) + 4d2c PoPo Mini Pointer Mouse (HID) + 4d2e Optical Mobile Mouse (HID) + 4d51 0Y357C PMX-MMOCZUL (B) [Dell Laser Mouse] + 4d75 Rocketfish RF-FLBTAD Bluetooth Adapter +0463 MGE UPS Systems + 0001 UPS + ffff UPS +0464 AMP/Tycoelectronics Corp. +0467 AT&T Paradyne +0468 Wieson Technologies Co., Ltd +046a Cherry GmbH + 0001 My3000 Keyboard + 0003 My3000 Hub + 0004 CyBoard Keyboard + 0005 XX33 SmartCard Reader Keyboard + 0008 Wireless Keyboard and Mouse + 0010 SmartBoard XX44 + 0011 G83 (RS 6000) Keyboard + 0021 CyMotion Expert Combo + 0023 CyMotion Master Linux Keyboard + 0027 CyMotion Master Solar Keyboard + 002a Wireless Mouse & Keyboard + 002d SmartTerminal XX44 + 003e SmartTerminal ST-2xxx + 0080 eHealth Terminal ST 1503 + 0081 eHealth Keyboard G87 1504 + 0106 R-300 Wireless Mouse Receiver +046b American Megatrends, Inc. + 0001 Keyboard + 0101 PS/2 Keyboard, Mouse & Joystick Ports + 0301 USB 1.0 Hub + 0500 Serial & Parallel Ports +046c Toshiba Corp., Digital Media Equipment +046d Logitech, Inc. + 0082 Acer Aspire 5672 Webcam + 0200 WingMan Extreme Joystick + 0203 M2452 Keyboard + 0301 M4848 Mouse + 0401 HP PageScan + 0402 NEC PageScan + 040f Logitech/Storm PageScan + 0430 Mic (Cordless) + 0801 QuickCam Home + 0802 Webcam C200 + 0804 Webcam C250 + 0805 Webcam C300 + 0807 Webcam B500 + 0808 Webcam C600 + 0809 Webcam Pro 9000 + 080a Portable Webcam C905 + 080f Webcam C120 + 0810 QuickCam Pro + 0819 Webcam C210 + 081b Webcam C310 + 0820 QuickCam VC + 0825 Webcam C270 + 0830 QuickClip + 0840 QuickCam Express + 0850 QuickCam Web + 0870 QuickCam Express + 0890 QuickCam Traveler + 0892 OrbiCam + 0894 CrystalCam + 0895 QuickCam for Dell Notebooks + 0896 OrbiCam + 0897 QuickCam for Dell Notebooks + 0899 QuickCam for Dell Notebooks + 089d QuickCam E2500 series + 08a0 QuickCam IM + 08a1 QuickCam IM with sound + 08a2 Labtec Webcam Pro + 08a3 QuickCam QuickCam Chat + 08a6 QuickCam IM + 08a7 QuickCam Image + 08a9 Notebook Deluxe + 08aa Labtec Notebooks + 08ac QuickCam Cool + 08ad QuickCam Communicate STX + 08ae QuickCam for Notebooks + 08af QuickCam Easy/Cool + 08b0 QuickCam 3000 Pro [pwc] + 08b1 QuickCam Notebook Pro + 08b2 QuickCam Pro 4000 + 08b3 QuickCam Zoom + 08b4 QuickCam Zoom + 08b5 QuickCam Sphere + 08b9 QuickCam IM + 08bd Microphone (Pro 4000) + 08c0 QuickCam Pro 3000 + 08c1 QuickCam Fusion + 08c2 QuickCam PTZ + 08c3 Camera (Notebooks Pro) + 08c5 QuickCam Pro 5000 + 08c6 QuickCam for DELL Notebooks + 08c7 QuickCam OEM Cisco VT Camera II + 08c9 QuickCam Ultra Vision + 08ca Mic (Fusion) + 08cb Mic (Notebooks Pro) + 08cc Mic (PTZ) + 08ce QuickCam Pro 5000 + 08cf QuickCam UpdateMe + 08d0 QuickCam Express + 08d7 QuickCam Communicate STX + 08d8 QuickCam for Notebook Deluxe + 08d9 QuickCam IM/Connect + 08da QuickCam Messanger + 08dd QuickCam for Notebooks + 08e0 QuickCam Express + 08e1 Labtec Webcam + 08f0 QuickCam Messenger + 08f1 QuickCam Express + 08f2 Microphone (Messenger) + 08f3 QuickCam Express + 08f4 Labtec Webcam + 08f5 QuickCam Messenger Communicate + 08f6 QuickCam Messenger Plus + 0900 ClickSmart 310 + 0901 ClickSmart 510 + 0903 ClickSmart 820 + 0905 ClickSmart 820 + 0910 QuickCam Cordless + 0920 QuickCam Express + 0921 Labtec Webcam + 0922 QuickCam Live + 0928 QuickCam Express + 0929 Labtec Webcam Pro + 092a QuickCam for Notebooks + 092b Labtec Webcam Plus + 092c QuickCam Chat + 092d QuickCam Express / Go + 092e QuickCam Chat + 092f QuickCam Express Plus + 0950 Pocket Camera + 0960 ClickSmart 420 + 0970 Pocket750 + 0990 QuickCam Pro 9000 + 0991 QuickCam Pro for Notebooks + 0992 QuickCam Communicate Deluxe + 0994 QuickCam Orbit/Sphere AF + 09a1 QuickCam Communicate MP/S5500 + 09a2 QuickCam Communicate Deluxe/S7500 + 09a4 QuickCam E 3500 + 09a5 Quickcam 3000 For Business + 09a6 QuickCam Vision Pro + 09b0 Acer OrbiCam + 09b2 Fujitsu Webcam + 09c0 QuickCam for Dell Notebooks Mic + 09c1 QuickCam Deluxe for Notebooks + 0a01 USB Headset + 0a02 Premium Stereo USB Headset 350 + 0a03 Logitech USB Microphone + 0a04 V20 portable speakers (USB powered) + 0a07 Z-10 Speakers + 0a0b ClearChat Pro USB + 0a0c Clear Chat Comfort USB Headset + 0a13 Z-5 Speakers + 0a17 G330 Headset + 0b02 BT Mini-Receiver (HID proxy mode) + 8801 Video Camera + b305 BT Mini-Receiver + bfe4 Premium Optical Wheel Mouse + c000 N43 [Pilot Mouse] + c001 N48/M-BB48 [FirstMouse Plus] + c002 M-BA47 [MouseMan Plus] + c003 MouseMan + c004 WingMan Gaming Mouse + c005 WingMan Gaming Wheel Mouse + c00b MouseMan Wheel + c00c Optical Wheel Mouse + c00d MouseMan Wheel+ + c00e M-BJ58/M-BJ69 Optical Wheel Mouse + c00f MouseMan Traveler/Mobile + c011 Optical MouseMan + c012 Mouseman Dual Optical + c014 Corded Workstation Mouse + c015 Corded Workstation Mouse + c016 Optical Wheel Mouse + c018 Optical Wheel Mouse + c019 Optical Tilt Wheel Mouse + c01a M-BQ85 Optical Wheel Mouse + c01b MX310 Optical Mouse + c01c Optical Mouse + c01d MX510 Optical Mouse + c01e MX518 Optical Mouse + c024 MX300 Optical Mouse + c025 MX500 Optical Mouse + c030 iFeel Mouse + c031 iFeel Mouse+ + c032 MouseMan iFeel + c033 iFeel MouseMan+ + c034 MouseMan Optical + c035 Mouse + c036 Mouse + c037 Mouse + c038 Mouse + c03d M-BT96a Pilot Optical Mouse + c03e Premium Optical Wheel Mouse (M-BT58) + c03f M-BT85 [UltraX Optical Mouse] + c040 Corded Tilt-Wheel Mouse + c041 G5 Laser Mouse + c042 G3 Laser Mouse + c043 MX320/MX400 Laser Mouse + c044 LX3 Optical Mouse + c045 Optical Mouse + c046 RX1000 Laser Mouse + c047 Laser Mouse + c048 G9 Laser Mouse + c049 G5 Laser Mouse + c050 RX 250 Optical Mouse + c051 G3 (MX518) Optical Mouse + c053 Laser Mouse + c058 M115 Mouse + c05a Optical Mouse M90 + c05d Optical Mouse + c061 RX1500 Laser Mouse + c062 LS1 Laser Mouse, corded + c068 G500 Laser Mouse + c101 UltraX Media Remote + c110 Harmony 885 Remote + c11f Harmony 900 Remote + c122 Harmony 700 Remote + c201 WingMan Extreme Joystick with Throttle + c202 WingMan Formula + c207 WingMan Extreme Digital 3D + c208 WingMan Gamepad Extreme + c209 WingMan Gamepad + c20a WingMan RumblePad + c20b WingMan Action Pad + c20c WingMan Precision + c20d WingMan Attack 2 + c20e WingMan Formula GP + c211 iTouch Cordless Reciever + c212 WingMan Extreme Digital 3D + c213 J-UH16 (Freedom 2.4 Cordless Joystick) + c214 ATK3 (Attack III Joystick) + c215 Extreme 3D Pro + c216 Dual Action Gamepad + c218 Logitech RumblePad 2 USB + c219 Cordless RumblePad 2 + c21a Precision Gamepad + c21c G13 Advanced Gameboard + c21d F310 Gamepad [XInput Mode] + c21f F710 Wireless Gamepad [XInput Mode] + c221 G11/G15 Keyboard / Keyboard + c222 G15 Keyboard / LCD + c223 G11/G15 Keyboard / USB Hub + c225 G11/G15 Keyboard / G keys + c226 G15 Refresh Keyboard + c227 G15 Refresh Keyboard + c22d G510 Gaming Keyboard + c22e G510 Gaming Keyboard onboard audio + c281 WingMan Force + c283 WingMan Force 3D + c285 WingMan Strike Force 3D + c286 Force 3D Pro + c287 Flight System G940 + c291 WingMan Formula Force + c293 WingMan Formula Force GP + c294 Driving Force + c295 Momo Force Steering Wheel + c298 Driving Force Pro + c299 G25 Racing Wheel + c2a0 Wingman Force Feedback Mouse + c2a1 WingMan Force Feedback Mouse + c301 iTouch Keyboard + c302 iTouch Pro Keyboard + c303 iTouch Keyboard + c305 Internet Keyboard + c307 Internet Keyboard + c308 Internet Navigator Keyboard + c309 Internet Keyboard + c30a iTouch Composite + c30b NetPlay Keyboard + c30c Internet Keys (X) + c30d Internet Keys + c30e UltraX Keyboard (Y-BL49) + c30f Logicool HID-Compliant Keyboard (106 key) + c311 Y-UF49 [Internet Pro Keyboard] + c312 DeLuxe 250 Keyboard + c313 Internet 350 Keyboard + c315 Classic New Touch Keyboard + c316 HID-Compliant Keyboard + c317 Wave Corded Keyboard + c318 Illuminated Keyboard + c31a Comfort Wave 450 + c31b Compact Keyboard K300 + c31c Keyboard K120 for Business + c401 TrackMan Marble Wheel + c402 Marble Mouse (2-button) + c403 Turbo TrackMan Marble FX + c404 TrackMan Wheel + c408 Marble Mouse (4-button) + c501 Cordless Mouse Receiver + c502 Cordless Mouse & iTouch Keys + c503 Cordless Mouse+Keyboard Receiver + c504 Cordless Mouse+Keyboard Receiver + c505 Cordless Mouse+Keyboard Receiver + c506 MX700 Cordless Mouse Receiver + c508 Cordless Trackball + c509 Cordless Keyboard & Mouse + c50a Cordless Mouse + c50b Cordless Desktop Optical + c50c Cordless Desktop S510 + c50d Cordless Mouse + c50e Cordless Mouse Receiver + c510 Cordless Mouse + c512 LX-700 Cordless Desktop Receiver + c513 MX3000 Cordless Desktop Receiver + c514 Cordless Mouse + c515 Cordless 2.4 GHz Presenter Presentation remote control + c517 LX710 Cordless Desktop Laser + c518 MX610 Laser Cordless Mouse + c51a MX Revolution/G7 Cordless Mouse + c51b V220 Cordless Optical Mouse for Notebooks + c521 Cordless Mouse Receiver + c525 MX Revolution Cordless Mouse + c526 Nano Receiver + c529 diNovo Keyboard for notebooks + c52b Unifying Receiver + c52f Wireless Mouse M305 + c623 3Dconnexion Space Traveller 3D Mouse + c625 3Dconnexion Space Pilot 3D Mouse + c626 3Dconnexion Space Navigator 3D Mouse + c627 3Dconnexion Space Explorer 3D Mouse + c702 Cordless Presenter + c703 Elite Keyboard Y-RP20 + Mouse MX900 (Bluetooth) + c704 diNovo Wireless Desktop + c705 MX900 Bluetooth Wireless Hub (C-UJ16A) + c707 Bluetooth wireless hub + c708 Bluetooth wireless hub + c709 BT Mini-Receiver (HCI mode) + c70a MX5000 Cordless Desktop + c70b BT Mini-Receiver (HID proxy mode) + c70c BT Mini-Receiver (HID proxy mode) + c70d Bluetooth wireless hub + c70e MX1000 Bluetooth Laser Mouse + c70f Bluetooth wireless hub + c712 Bluetooth wireless hub + c714 diNovo Edge Keyboard + c715 Bluetooth wireless hub + c71a Bluetooth wireless hub + c71d Bluetooth wireless hub + c71f diNovo Mini Wireless Keyboard + c720 Bluetooth wireless hub + ca03 MOMO Racing + ca04 Formula Vibration Feedback Wheel + cab1 Cordless Keyboard for Wii HID Receiver + d001 QuickCam Pro +046e Behavior Tech. Computer Corp. + 0100 Keyboard + 3001 Mass Storage Device + 3002 Mass Storage Device + 3003 Mass Storage Device + 3005 Mass Storage Device + 3008 Mass Storage Device + 5250 KeyMaestro Multimedia Keyboard + 5273 KeyMaestro Multimedia Keyboard + 52e6 Cordless Mouse + 5308 KeyMaestro Keyboard + 5408 KeyMaestro Multimedia Keyboard/Hub + 5500 Portable Keyboard 86+9 keys (Model 6100C US) + 5720 Smart Card Reader + 6782 BTC 7932 mouse+keyboard +046f Crystal Semiconductor +0471 Philips (or NXP) + 0101 DSS350 Digital Speaker System + 0104 DSS330 Digital Speaker System [uda1321] + 0105 UDA1321 + 014f GoGear SA9200 + 0160 MP3 Player + 0161 MP3 Player + 0163 GoGear SA1100 + 0164 GoGear SA1110/02 + 0165 GoGear SA1330 + 0201 Hub + 0222 Creative Nomad Jukebox + 0302 PCA645VC Webcam [pwc] + 0303 PCA646VC Webcam [pwc] + 0304 Askey VC010 Webcam [pwc] + 0307 PCVC675K Webcam [pwc] + 0308 PCVC680K Webcam [pwc] + 030b PC VGA Camera (Vesta Fun) + 030c PCVC690K Webcam [pwc] + 0310 PCVC730K Webcam [pwc] + 0311 PCVC740K ToUcam Pro [pwc] + 0312 PCVC750K Webcam [pwc] + 0314 DMVC 1000K + 0316 DMVC 2000K Video Capture + 0321 FunCam + 0322 DMVC1300K PC Camera + 0325 SPC 200NC PC Camera + 0326 SPC 300NC PC Camera + 0327 Webcam SPC 6000 NC (Webcam w/ mic) + 0328 SPC 700NC PC Camera + 0329 SPC 900NC PC Camera / ORITE CCD Webcam(PC370R) + 032d SPC 210NC PC Camera + 032e SPC 315NC PC Camera + 0330 SPC 710NC PC Camera + 0331 SPC 1300NC PC Camera + 0332 SPC 1000NC PC Camera + 0333 SPC 620NC PC Camera + 0334 SPC 520/525NC PC Camera + 0401 Semiconductors CICT Keyboard + 0402 PS/2 Mouse on Semiconductors CICT Keyboard + 0406 15 inch Detachable Monitor + 0407 10 inch Mobile Monitor + 0471 Digital Speaker System + 0601 OVU1020 IR Dongle (Kbd+Mouse) + 0602 ATI Remote Wonder II Input Device + 0603 ATI Remote Wonder II Controller + 0608 eHome Infrared Receiver + 060a TSU9600 Remote Control + 060c Consumer Infrared Transceiver (HP) + 060d Consumer Infrared Transceiver (SRM5100) + 060e RF Dongle + 060f Consumer Infrared Transceiver + 0613 Infrared Transceiver + 0617 IEEE802.15.4 RF Dongle + 0619 TSU9400 Remote Control + 0666 Hantek DDS-3005 Arbitrary Waveform Generator + 0700 Semiconductors CICT Hub + 0701 150P1 TFT Display + 0809 AVNET Bluetooth Device + 0811 JR24 CDRW + 0814 DCCX38/P data cable + 0815 eHome Infrared Receiver + 0844 SA2111/02 1GB Flash Audio Player + 084a GoGear SA3125 + 084e GoGear SA60xx (mtp) + 0888 Hantek DDS-3005 Arbitrary Waveform Generator + 1103 Digital Speaker System + 1120 Creative Rhomba MP3 player + 1125 Nike psa[128max Player + 1137 HDD065 MP3 player + 1201 Arima Bluetooth Device + 1230 Wireless Adapter 11g + 1232 SNU6500 Wireless Adapter + 1233 Wireless Adapter Bootloader Download + 1236 SNU5600 802.11bg + 1237 TalkTalk SNU5630NS/05 802.11bg + 1552 ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit + 1801 Diva MP3 player + 200a Wireless Network Adapter + 200f 802.11n Wireless Adapter + 2021 SDE3273FC/97 2.5" SATA HDD Enclosure [INIC-1608L] + 2022 GoGear SA52XX + 2034 Webcam SPC530NC + 2036 Webcam SPC1030NC + 203f TSU9200 Remote Control + 2046 TSU9800 Remote Control + 204e GoGear RaGa (SA1942/02) + 205e TSU9300 Remote Control + 2070 GoGear Mix + 2076 GoGear Aria + 2079 GoGear Opus + 2088 MCE IR Receiver with ALS- Spinel plus for ASUS + 262c SPC230NC Webcam + 485d Senselock SenseIV v2.x + df55 LPCXpresso LPC-Link +0472 Chicony Electronics Co., Ltd + 0065 PFU-65 Keyboard [Chicony] + b086 Asus USB2.0 Webcam + b091 Webcam +0473 Sanyo Information Business Co., Ltd +0474 Sanyo Electric Co., Ltd + 0110 Digital Voice Recorder R200 + 0217 Xacti J2 + 022f C5 Digital Media Camera (mass storage mode) + 0230 C5 Digital Media Camera (PictBridge mode) + 0231 C5 Digital Media Camera (PC control mode) + 0401 Optical Drive + 0701 SCP-4900 Cellphone + 071f Usb Com Port Enumerator + 0722 W33SA Camera +0475 Relisys/Teco Information System + 0100 NEC Petiscan + 0103 Eclipse 1200U/Episode + 0210 Scorpio Ultra 3 +0476 AESP +0477 Seagate Technology, Inc. +0478 Connectix Corp. + 0001 QuickCam + 0002 QuickClip + 0003 QuickCam Pro +0479 Advanced Peripheral Laboratories +047a Semtech Corp. + 0004 ScreenCoder UR7HCTS2-USB +047b Silitek Corp. + 0001 Keyboard + 0002 Keyboard and Mouse + 00f9 SK-1789u Keyboard + 0101 BlueTooth Keyboard and Mouse + 020b SK-3105 SmartCard Reader + 050e Internet Compact Keyboard + 1000 Trust Office Scan USB 19200 + 1002 HP ScanJet 4300c Parallel Port +047c Dell Computer Corp. +047d Kensington + 1001 Mouse*in*a*Box + 1002 Expert Mouse Pro + 1003 Orbit TrackBall + 1004 MouseWorks + 1005 TurboBall + 1006 TurboRing + 1009 Orbit TrackBall for Mac + 1012 PocketMouse + 1013 Mouse*in*a*Box Optical Pro + 1014 Expert Mouse Pro Wireless + 1015 Expert Mouse + 1016 ADB/USB Orbit + 1018 Studio Mouse + 101d Mouse*in*a*Box Optical Pro + 101e Studio Mouse Wireless + 101f PocketMouse Pro + 1020 Expert Mouse Trackball + 1021 Expert Mouse Wireless + 1022 Orbit Optical + 1023 Pocket Mouse Pro Wireless + 1024 PocketMouse + 1025 Mouse*in*a*Box Optical Elite Wireless + 1026 Pocket Mouse Pro + 1027 StudioMouse + 1028 StudioMouse Wireless + 1029 Mouse*in*a*Box Optical Elite + 102a Mouse*in*a*Box Optical + 102b PocketMouse + 102c Iridio + 102d Pilot Optical + 102e Pilot Optical Pro + 102f Pilot Optical Pro Wireless + 1043 Ci65m Wireless Notebook Optical Mouse + 104a PilotMouse Mini Retractable + 105d PocketMouse Bluetooth + 105e Bluetooth EDR Dongle + 1061 PocketMouse Grip + 1062 PocketMouse Max + 1063 PocketMouse Max Wireless + 1064 PocketMouse 2.0 Wireless + 1065 PocketMouse 2.0 + 1066 PocketMouse Max Glow + 1067 ValueMouse + 1068 ValueOpt White + 1069 ValueOpt Black + 106a PilotMouse Laser Wireless Mini + 106b PilotMouse Laser - 3 Button + 106c PilotMouse Laser - Gaming + 106d PilotMouse Laser - Wired + 106e PilotMouse Micro Laser + 1070 ValueOpt Travel + 1071 ValueOpt RF TX + 1072 PocketMouse Colour + 1073 PilotMouse Laser - 6 Button + 1074 PilotMouse Laser Wireless Mini + 1075 SlimBlade Presenter Media Mouse + 1076 SlimBlade Media Mouse + 1077 SlimBlade Presenter Mouse + 1152 Bluetooth EDR Dongle + 2002 Optical Elite Wireless + 2010 Wireless Presentation Remote + 2012 Wireless Presenter with Laser Pointer + 2021 PilotBoard Wireless + 2030 PilotBoard Wireless + 2034 SlimBlade Media Notebook Set + 2041 SlimBlade Trackball + 4003 Gravis Xterminator Digital Gamepad + 4005 Gravis Eliminator GamePad Pro + 4006 Gravis Eliminator AfterShock + 4007 Gravis Xterminator Force + 4008 Gravis Destroyer TiltPad + 5001 Cabo I Camera + 5002 VideoCam CABO II + 5003 VideoCam +047e Agere Systems, Inc. (Lucent) + 0300 ORiNOCO Card + 1001 USS720 Parallel Port + 2892 Systems Soft Modem + bad1 Lucent 56k Modem + f101 Atlas Modem +047f Plantronics, Inc. + 0101 Bulk Driver + 0301 Bulk Driver + 0ca1 USB DSP v4 Audio Interface + 4254 BUA-100 Bluetooth Adapter +0480 Toshiba America Info. Systems, Inc. + 0001 InTouch Module + 0004 InTouch Module + 0011 InTouch Module + 0014 InTouch Module +0481 Zenith Data Systems +0482 Kyocera Corp. + 000e FS-1020D Printer + 0100 Finecam S3x + 0101 Finecam S4 + 0103 Finecam S5 + 0105 Finecam L3 + 0106 Finecam + 0107 Digital Camera Device + 0108 Digital Camera Device + 0203 AH-K3001V + 0204 iBurst Terminal +0483 SGS Thomson Microelectronics + 0137 BeWAN ADSL USB ST (blue or green) + 0138 Unicorn II (ST70138B + MTC-20174TQ chipset) + 1307 Cytronix 6in1 Card Reader + 163d Cool Icam Digi-MP3 + 2015 TouchChip® Fingerprint Reader + 2016 Fingerprint Reader + 2017 Biometric Smart Card Reader + 2018 BioSimKey + 2302 Portable Flash Device (PFD) + 4810 ISDN adapter + 481d BT Digital Access adapter + 5000 ST Micro Bluetooth Device + 5001 ST Micro Bluetooth Device + 5721 Hantek DDS-3X25 Arbitrary Waveform Generator + 7270 ST Micro Serial Bridge + 7554 56k SoftModem + ff10 Swann ST56 Modem +0484 Specialix +0485 Nokia Monitors +0486 ASUS Computers, Inc. + 0185 EeePC T91MT HID Touch Panel +0487 Stewart Connector +0488 Cirque Corp. +0489 Foxconn / Hon Hai + 0502 SmartMedia Card Reader Firmware Loader + 0503 SmartMedia Card Reader + d00c Rollei Compactline (Storage Mode) + d00e Rollei Compactline (Video Mode) + e000 T-Com TC 300 + e003 Pirelli DP-L10 + e00f Foxconn T77H114 BCM2070 [Single-Chip Bluetooth 2.1 + EDR Adapter] + e016 Ubee PXU1900 WiMAX Adapter [Beceem BCSM250] + e02c Atheros AR5BBU12 Bluetooth Device +048a S-MOS Systems, Inc. +048c Alps Electric Ireland, Ltd +048d Integrated Technology Express, Inc. + 9009 Zolid HD DVD Maker + 9135 Zolid Mini DVB-T Stick +048f Eicon Tech. +0490 United Microelectronics Corp. +0491 Capetronic + 0003 Taxan Monitor Control +0492 Samsung SemiConductor, Inc. + 0140 MP3 player + 0141 MP3 Player +0493 MAG Technology Co., Ltd +0495 ESS Technology, Inc. +0496 Micron Electronics +0497 Smile International + c001 Camera Device +0498 Capetronic (Kaohsiung) Corp. +0499 Yamaha Corp. + 1000 UX256 MIDI I/F + 1001 MU1000 + 1002 MU2000 + 1003 MU500 + 1004 UW500 + 1005 MOTIF6 + 1006 MOTIF7 + 1007 MOTIF8 + 1008 UX96 MIDI I/F + 1009 UX16 MIDI I/F + 100a EOS BX + 100c UC-MX + 100d UC-KX + 100e S08 + 100f CLP-150 + 1010 CLP-170 + 1011 P-250 + 1012 TYROS + 1013 PF-500 + 1014 S90 + 1015 MOTIF-R + 1016 MDP-5 + 1017 CVP-204 + 1018 CVP-206 + 1019 CVP-208 + 101a CVP-210 + 101b PSR-1100 + 101c PSR-2100 + 101d CLP-175 + 101e PSR-K1 + 101f EZ-J24 + 1020 EZ-250i + 1021 MOTIF ES 6 + 1022 MOTIF ES 7 + 1023 MOTIF ES 8 + 1024 CVP-301 + 1025 CVP-303 + 1026 CVP-305 + 1027 CVP-307 + 1028 CVP-309 + 1029 CVP-309GP + 102a PSR-1500 + 102b PSR-3000 + 102e ELS-01/01C + 1030 PSR-295/293 + 1031 DGX-205/203 + 1032 DGX-305 + 1033 DGX-505 + 1037 PSR-E403 + 103c MOTIF-RACK ES + 1054 S90XS Keyboard/Music Synthesizer + 2000 DGP-7 + 2001 DGP-5 + 3001 YST-MS55D USB Speaker + 3003 YST-M45D USB Speaker + 4000 NetVolante RTA54i Broadband&ISDN Router + 4001 NetVolante RTW65b Broadband Wireless Router + 4002 NetVolante RTW65i Broadband&ISDN Wireless Router + 4004 NetVolante RTA55i Broadband VoIP Router + 5000 CS1D + 5001 DSP1D + 5002 DME32 + 5003 DM2000 + 5004 02R96 + 5005 ACU16-C + 5006 NHB32-C + 5007 DM1000 + 5008 01V96 + 5009 SPX2000 + 500a PM5D + 500b DME64N + 500c DME24N + 6001 CRW2200UX Lightspeed 2 External CD-RW Drive + 7000 DTX + 7010 UB99 +049a Gandalf Technologies, Ltd +049b Curtis Computer Products +049c Acer Advanced Labs, Inc. + 0002 Keyboard (???) +049d VLSI Technology +049f Compaq Computer Corp. + 0002 InkJet Color Printer + 0003 iPAQ PocketPC + 000e Internet Keyboard + 0012 InkJet Color Printer + 0018 PA-1/PA-2 MP3 Player + 0019 InkJet Color Printer + 001a S4 100 Scanner + 001e IJ650 Inkjet Printer + 001f WL215 Adapter + 0021 S200 Scanner + 0027 Bluetooth Multiport Module by Compaq + 002a 1400P Inkjet Printer + 002b A3000 + 002c Lexmark X125 + 0032 802.11b Adapter [ipaq h5400] + 0033 802.11b Adapter [orinoco] + 0036 Bluetooth Multiport Module + 0051 KU-0133 Easy Access Interner Keyboard + 0076 Wireless LAN MultiPort W200 + 0080 GPRS Multiport + 0086 Bluetooth Device + 504a Personal Jukebox PJB100 + 505a Linux-USB "CDC Subset" Device, or Itsy (experimental) + 8511 iPAQ Networking 10/100 Ethernet [pegasus2] +04a0 Digital Equipment Corp. +04a1 SystemSoft Corp. + fff0 Telex Composite Device +04a2 FirePower Systems +04a3 Trident Microsystems, Inc. +04a4 Hitachi, Ltd + 0004 DVD-CAM DZ-MV100A Camcorder + 001e DVDCAM USB HS Interface +04a5 Acer Peripherals Inc. (now BenQ Corp.) + 0001 Keyboard + 0002 API Ergo K/B + 0003 API Generic K/B Mouse + 12a6 AcerScan C310U + 1a20 Prisa 310U + 1a2a Prisa 620U + 2022 Prisa 320U/340U + 2040 Prisa 620UT + 205e ScanPrisa 640BU + 2060 Prisa 620U+/640U + 207e Prisa 640BU + 209e ScanPrisa 640BT + 20ae S2W 3000U + 20b0 S2W 3300U/4300U + 20be Prisa 640BT + 20c0 Prisa 1240UT + 20de S2W 4300U+ + 20f8 Benq 5000 + 20fc Benq 5000 + 20fe SW2 5300U + 2137 Benq 5150/5250 + 2202 Benq 7400UT + 2311 Benq 5560 + 3003 Benq Webcam + 3008 Benq 1500 + 300a Benq 3410 + 300c Benq 1016 + 3019 Benq DC C40 + 4000 P30 Composite Device + 4013 BenQ-Siemens EF82/SL91 + 4044 BenQ-Siemens SF71 + 4045 BenQ-Siemens E81 + 4048 BenQ M7 + 6001 Mass Storage Device + 6002 Mass Storage Device + 6003 ATA/ATAPI Adapter + 6004 Mass Storage Device + 6005 Mass Storage Device + 6006 Mass Storage Device + 6007 Mass Storage Device + 6008 Mass Storage Device + 6009 Mass Storage Device + 600a Mass Storage Device + 600b Mass Storage Device + 600c Mass Storage Device + 600d Mass Storage Device + 600e Mass Storage Device + 600f Mass Storage Device + 6010 Mass Storage Device + 6011 Mass Storage Device + 6012 Mass Storage Device + 6013 Mass Storage Device + 6014 Mass Storage Device + 6015 Mass Storage Device + 6125 MP3 Player + 6180 MP3 Player + 6200 MP3 Player + 7500 Hi-Speed Mass Storage Device + 9000 AWL300 Wireless Adapter + 9001 AWL400 Wireless Adapter + 9213 Kbd Hub +04a6 Nokia Display Products + 00b9 Audio + 0180 Hub Type P + 0181 HID Monitor Controls +04a7 Visioneer + 0100 StrobePro + 0101 Strobe Pro Scanner (1.01) + 0102 StrobePro Scanner + 0211 OneTouch 7600 Scanner + 0221 OneTouch 5300 Scanner + 0223 OneTouch 8200 + 0224 OneTouch 4800 USB/Microtek Scanport 3000 + 0225 VistaScan Astra 3600(ENG) + 0226 OneTouch 5300 USB + 0229 OneTouch 7100 + 022a OneTouch 6600 + 022c OneTouch 9000/9020 + 0231 6100 Scanner + 0311 6200 EPP/USB Scanner + 0321 OneTouch 8100 EPP/USB Scanner + 0331 OneTouch 8600 EPP/USB Scanner + 0341 6400 + 0361 VistaScan Astra 3600(ENG) + 0362 OneTouch 9320 + 0371 OneTouch 8700/8920 + 0380 OneTouch 7700 + 0382 Photo Port 7700 + 0390 9650 + 03a0 Xerox 4800 One Touch + 0410 OneTouch Pro 8800/8820 + 0421 9450 USB + 0423 9750 Scanner + 0424 Strobe XP 450 + 0425 Strobe XP 100 + 0426 Strobe XP 200 + 0427 Strobe XP 100 + 0444 OneTouch 7300 + 0445 CardReader 100 + 0446 Xerox DocuMate 510 + 0447 XEROX DocuMate 520 + 0448 XEROX DocuMate 250 + 0449 Xerox DocuMate 252 + 044a Xerox 6400 + 044c Xerox DocuMate 262 + 0474 Strobe XP 300 + 0475 Xerox DocuMate 272 + 0478 Strobe XP 220 + 0479 Strobe XP 470 + 047a 9450 + 047b 9650 + 047d 9420 + 0480 9520 + 048f Strobe XP 470 + 0491 Strobe XP 450 + 0493 9750 + 0494 Strobe XP 120 + 0497 Patriot 430 + 0498 Patriot 680 + 0499 Patriot 780 + 049b Strobe XP 100 + 04a0 7400 + 04ac Xerox Travel Scanner 100 +04a8 Multivideo Labs, Inc. + 0101 Hub + 0303 Peripheral Switch + 0404 Peripheral Switch +04a9 Canon, Inc. + 1005 BJ Printer Hub + 1035 PD Printer Storage + 1050 BJC-8200 + 1051 BJC-3000 Color Printer + 1052 BJC-6100 + 1053 BJC-6200 + 1054 BJC-6500 + 1055 BJC-85 + 1056 BJC-2110 Color Printer + 1057 LR1 + 105a BJC-55 + 105b S600 Printer + 105c S400 + 105d S450 Printer + 105e S800 + 1062 S500 Printer + 1063 S4500 + 1064 S300 Printer + 1065 S100 + 1066 S630 + 1067 S900 + 1068 S9000 + 1069 S820 + 106a S200 Printer + 106b S520 Printer + 106d S750 Printer + 106e S820D + 1070 S530D + 1072 I850 Printer + 1073 I550 Printer + 1074 S330 Printer + 1076 i70 + 1077 i950 + 107a S830D + 107b i320 + 107c i470D + 107d i9100 + 107e i450 + 107f i860 + 1082 i350 + 1084 i250 + 1085 i255 + 1086 i560 + 1088 i965 + 108a i455 + 108b i900D + 108c i475D + 108d PIXMA iP2000 + 108f i80 + 1090 i9900 Photo Printer + 1091 PIXMA iP1500 + 1093 PIXMA iP4000 + 1094 PIXMA iP3000x Printer + 1095 PIXMA iP6000D + 1097 PIXMA iP5000 + 1098 PIXMA iP1000 + 1099 PIXMA iP8500 + 109c PIXMA iP4000R + 109d iP90 + 10a0 PIXMA iP1600 Printer + 10a2 iP4200 + 10a4 iP5200R + 10a5 iP5200 + 10a7 iP6210D + 10a8 iP6220D + 10a9 iP6600D + 10b6 PIXMA iP4300 Printer + 10c2 PIXMA iP1800 Printer + 10c4 Pixma iP4500 Printer + 1404 W6400PG + 1405 W8400PG + 150f BIJ2350 PCL + 1510 BIJ1350 PCL + 1512 BIJ1350D PCL + 1601 DR-2080C Scanner + 1607 DR-6080 Scanner + 1700 PIXMA MP110 Scanner + 1701 PIXMA MP130 Scanner + 1702 MP410 Composite + 1703 MP430 Composite + 1704 MP330 Composite + 1706 PIXMA MP750 Scanner + 1707 PIXMA MP780 Scanner + 1708 PIXMA MP760 Scanner + 1709 PIXMA MP150 Scanner + 170a PIXMA MP170 Scanner + 170b PIXMA MP450 Scanner + 170c PIXMA MP500 Scanner + 170d PIXMA MP800 Scanner + 170e MP800R + 1710 MP950 + 1712 MP530 + 1713 PIXMA MP830 Scanner + 1714 MP160 + 1715 MP180 Storage + 1716 MP460 Composite + 1717 MP510 + 1718 MP600 Storage + 171a MP810 Storage + 171b MP960 + 1721 MP210 ser + 1723 MP470 ser + 1725 MP610 ser + 1726 MP970 ser + 1727 MX300 ser + 1728 MX310 ser + 1729 MX700 ser + 172b MP140 ser + 173e MP560 + 173f Pixma MP640 Multifunction device + 1748 Pixma MG5150 + 1900 CanoScan LiDE 90 + 1901 CanoScan 8800F + 1904 CanoScan LiDE 100 + 1905 CanoScan LiDE 200 + 1906 CanoScan 5600F + 1907 CanoScan LiDE 700F + 1909 CanoScan LiDE 110 + 190a CanoScan LiDE 210 + 2200 CanoScan LiDE 25 + 2201 CanoScan FB320U + 2202 CanoScan FB620U + 2204 CanoScan FB630U + 2205 CanoScan FB1210U + 2206 CanoScan N650U/N656U + 2207 CanoScan 1220U + 2208 CanoScan D660U + 220a CanoScan D2400UF + 220b CanoScan D646U + 220c CanoScan D1250U2 + 220d CanoScan N670U/N676U/LiDE 20 + 220e CanoScan N1240U/LiDE 30 + 220f CanoScan 8000F + 2210 CanoScan 9900F + 2212 CanoScan 5000F + 2213 CanoScan LiDE 50/LiDE 35/LiDE 40 + 2214 CanoScan LiDE 80 + 2215 CanoScan 3000/3000F/3000ex + 2216 CanoScan 3200F + 2217 CanoScan 5200F + 2219 CanoScan 9950F + 221b CanoScan 4200F + 221c CanoScan LiDE 60 + 221e CanoScan 8400F + 221f CanoScan LiDE 500F + 2220 CanoScan LIDE 25 + 2224 CanoScan LiDE 600F + 2225 CanoScan LiDE 70 + 2228 CanoScan 4400F + 2602 MultiPASS C555 + 2603 MultiPASS C755 + 260a CAPT Printer + 260e LBP-2000 + 2610 MPC600F + 2611 SmartBase MPC400 + 2612 MultiPASS C855 + 2617 CAPT Printer + 261a iR1600 + 261b iR1610 + 261c iC2300 + 261f MPC200 Printer + 2621 iR2000 + 2622 iR2010 + 2623 FAX-B180C + 2629 FAXPHONE L75 + 262b LaserShot LBP-1120 Printer + 262d iR C3200 + 262f MultiPASS MP730 + 2630 MultiPASS MP700 + 2631 LASER CLASS 700 + 2632 FAX-L2000 + 2635 MPC190 + 2637 iR C6800 + 2638 iR C3100 + 263c Smartbase MP360 + 263d MP370 + 263e MP390 FAX + 263f MP375 + 2646 MF5530 Scanner Device V1.9.1 + 2647 MF5550 Composite + 264d PIXMA MP710 + 264e MF5630 + 264f MF5650 (FAX) + 2650 iR 6800C EUR + 2651 iR 3100C EUR + 2655 FP-L170/MF350/L380/L398 + 2659 MF8100 + 265b CAPT Printer + 265c iR C3220 + 265d MF5730 + 265e MF5750 + 265f MF5770 + 2660 MF3110 + 2663 iR3570/iR4570 + 2664 iR2270/iR2870 + 2665 iR C2620 + 2666 iR C5800 + 2667 iR85PLUS + 2669 iR105PLUS + 266a CAPT Device + 266b iR8070 + 266c iR9070 + 266d iR 5800C EUR + 266e CAPT Device + 266f iR2230 + 2670 iR3530 + 2671 iR5570/iR6570 + 2672 iR C3170 + 2673 iR 3170C EUR + 2674 L120 + 2675 iR2830 + 2676 CAPT Device + 2677 iR C2570 + 2678 iR 2570C EUR + 2679 CAPT Device + 267a iR2016 + 267b iR2020 + 267d MF7100 series + 2684 MF3200 series + 2686 MF6500 series + 2687 iR4530 + 2688 LBP3460 + 268c iR C6870 + 268d iR 6870C EUR + 268e iR C5870 + 268f iR 5870C EUR + 2691 iR7105 + 26a3 MF4100 series + 26b0 MF4600 series + 26b4 MF4010 series + 26b5 MF4200 series + 3041 PowerShot S10 + 3042 CanoScan FS4000US Film Scanner + 3043 PowerShot S20 + 3044 EOS D30 + 3045 PowerShot S100 + 3046 IXY Digital + 3047 Digital IXUS + 3048 PowerShot G1 + 3049 PowerShot Pro90 IS + 304a CP-10 + 304b IXY Digital 300 + 304c PowerShot S300 + 304d Digital IXUS 300 + 304e PowerShot A20 + 304f PowerShot A10 + 3050 PowerShot unknown 1 + 3051 PowerShot S110 + 3052 Digital IXUS V + 3055 PowerShot G2 + 3056 PowerShot S40 + 3057 PowerShot S30 + 3058 PowerShot A40 + 3059 PowerShot A30 + 305b ZR45MC Digital Camcorder + 305c PowerShot unknown 2 + 3060 EOS D60 + 3061 PowerShot A100 + 3062 PowerShot A200 + 3063 CP-100 + 3065 PowerShot S200 + 3066 Digital IXUS 330 + 3067 MV550i Digital Video Camera + 3069 PowerShot G3 + 306a Digital unknown 3 + 306b MVX2i Digital Video Camera + 306c PowerShot S45 + 306d PowerShot S45 PtP Mode + 306e PowerShot G3 (normal mode) + 306f PowerShot G3 (ptp) + 3070 PowerShot S230 + 3071 PowerShot S230 (ptp) + 3072 PowerShot SD100 / Digital IXUS II (ptp) + 3073 PowerShot A70 (ptp) + 3074 PowerShot A60 (ptp) + 3075 IXUS 400 Camera + 3076 PowerShot A300 + 3077 PowerShot S50 + 3078 ZR70MC Digital Camcorder + 307a MV650i (normal mode) + 307b MV630i Digital Video Camera + 307c MV630i (normal mode) + 307d CP-300 + 307f Optura 20 + 3080 MVX150i (normal mode) / Optura 20 (normal mode) + 3081 Optura 10 + 3082 MVX100i / Optura 10 + 3083 EOS 10D + 3084 EOS 300D / EOS Digital Rebel + 3085 PowerShot G5 + 3087 Elura 50 (PTP mode) + 3088 Elura 50 (normal mode) + 308d MVX3i + 308e FV M1 (normal mode) / MVX 3i (normal mode) / Optura Xi (normal mode) + 3093 Optura 300 + 3096 IXY DV M2 (normal mode) / MVX 10i (normal mode) + 3099 EOS 300D (ptp) + 309a PowerShot A80 + 309b Digital IXUS (ptp) + 309c PowerShot S1 IS + 309d Camera + 309f Camera + 30a0 Camera + 30a1 Camera + 30a2 Camera + 30a8 Elura 60E/Optura 40 (ptp) + 30a9 MVX25i (normal mode) / Optura 40 (normal mode) + 30b1 PowerShot S70 (normal mode) / PowerShot S70 (PTP mode) + 30b2 PowerShot S60 (normal mode) / PowerShot S60 (PTP mode) + 30b3 PowerShot G6 (normal mode) / PowerShot G6 (PTP mode) + 30b4 PowerShot S500 + 30b5 PowerShot A75 + 30b6 Digital IXUS II2 / Digital IXUS II2 (PTP mode) / PowerShot SD110 (PTP mode) / PowerShot SD110 Digital ELPH + 30b7 PowerShot A400 / PowerShot A400 (PTP mode) + 30b8 PowerShot A310 / PowerShot A310 (PTP mode) + 30b9 Powershot A85 + 30ba PowerShot S410 Digital Elph + 30bb PowerShot A95 + 30bd CP-220 + 30be CP-330 + 30bf Digital IXUS 40 + 30c0 Digital IXUS 30 (PTP mode) / PowerShot SD200 (PTP mode) + 30c1 Digital IXUS 50 (normal mode) / IXY Digital 55 (normal mode) / PowerShot A520 (PTP mode) / PowerShot SD400 (normal mode) + 30c2 PowerShot A510 (normal mode) / PowerShot A510 (PTP mode) + 30c4 Digital IXUS i5 (normal mode) / IXY Digital L2 (normal mode) / PowerShot SD20 (normal mode) + 30ea EOS 1D Mark II (PTP mode) + 30eb EOS 20D + 30ec EOS 20D (ptp) + 30ee EOS 350D + 30ef EOS 350D (ptp) + 30f0 PowerShot S2 IS (PTP mode) + 30f2 Digital IXUS 700 (normal mode) / Digital IXUS 700 (PTP mode) / IXY Digital 600 (normal mode) / PowerShot SD500 (normal mode) / PowerShot SD500 (PTP mode) + 30f6 SELPHY CP400 + 30f8 Powershot A430 + 30f9 PowerShot A410 (PTP mode) + 30fc PowerShot A620 (PTP mode) + 30fd PowerShot A610 (normal mode)/PowerShot A610 (PTP mode) + 30fe Digital IXUS 65 (PTP mode)/PowerShot SD630 (PTP mode) + 30ff Digital IXUS 55 (PTP mode)/PowerShot SD450 (PTP mode) + 310b SELPHY CP600 + 310e Digital IXUS 50 (PTP mode) + 3110 EOS Digital Rebel XTi + 3116 Digital IXUS 750 (PTP mode) + 3117 PowerShot A700 + 312d Elura 100 + 3138 PowerShot A710 IS + 3147 EOS 1Ds Mark III + 3155 PowerShot A450 + 315a PowerShot G9 + 315d PowerShot A720 + 3160 Digital IXUS 860 IS + 3175 IXY Digital 25 IS + 3176 PowerShot A590 + 317a Powershot A470 + 3184 Digital IXUS 80 IS (PTP mode) + 319a EOS 7D + 31bc PowerShot D10 + 31c0 PowerShot SX200 IS + 31e5 Digital IXUS 200 IS + 31ee SELPHY ES40 + 31f3 PowerShot Digital ELPH SD1400 IS + 31ff Digital IXUS 55 +04aa DaeWoo Telecom, Ltd +04ab Chromatic Research +04ac Micro Audiometrics Corp. +04ad Dooin Electronics + 2501 Bluetooth Device +04af Winnov L.P. +04b0 Nikon Corp. + 0102 Coolpix 990 + 0103 Coolpix 880 + 0104 Coolpix 995 + 0106 Coolpix 775 + 0107 Coolpix 5000 + 0108 Coolpix 2500 + 0109 Coolpix 2500 (ptp) + 010a Coolpix 4500 + 010b Coolpix 4500 (ptp) + 010d Coolpix 5700 (ptp) + 010e Coolpix 4300 (storage) + 010f Coolpix 4300 (ptp) + 0110 Coolpix 3500 (Sierra Mode) + 0111 Coolpix 3500 (ptp) + 0112 Coolpix 885 (ptp) + 0113 Coolpix 5000 (ptp) + 0114 Coolpix 3100 (storage) + 0115 Coolpix 3100 (ptp) + 0117 Coolpix 2100 (ptp) + 0119 Coolpix 5400 (ptp) + 011d Coolpix 3700 (ptp) + 0121 Coolpix 3200 (ptp) + 0122 Coolpix 2200 (ptp) + 0124 Coolpix 8400 (mass storage mode) + 0125 Coolpix 8400 (ptp) + 0126 Coolpix 8800 + 0129 Coolpix 4800 (ptp) + 012c Coolpix 4100 (storage) + 012d Coolpix 4100 (ptp) + 012e Coolpix 5600 (ptp) + 0130 Coolpix 4600 (ptp) + 0135 Coolpix 5900 (ptp) + 0136 Coolpix 7900 (storage) + 0137 Coolpix 7900 (ptp) + 013a Coolpix 100 (storage) + 013b Coolpix 100 (ptp) + 0141 Coolpix P2 (storage) + 0142 Coolpix P2 (ptp) + 0163 Coolpix P5100 (ptp) + 0169 Coolpix P50 (ptp) + 0202 Coolpix SQ (ptp) + 0203 Coolpix 4200 (mass storage mode) + 0204 Coolpix 4200 (ptp) + 0205 Coolpix 5200 (storage) + 0206 Coolpix 5200 (ptp) + 0301 Coolpix 2000 (storage) + 0302 Coolpix 2000 (ptp) + 0317 Coolpix L20 (ptp) + 0402 DSC D100 (ptp) + 0403 D2H (mass storage mode) + 0404 D2H SLR (ptp) + 0405 D70 (mass storage mode) + 0406 DSC D70 (ptp) + 0408 D2X SLR (ptp) + 0409 D50 digital camera + 040a D50 (ptp) + 040c D2Hs + 040e DSC D70s (ptp) + 040f D200 (mass storage mode) + 0410 D200 (ptp) + 0413 D40 (mass storage mode) + 0422 D700 (ptp) + 0425 D300S + 0f03 PD-10 Wireless Printer Adapter + 4000 Coolscan LS 40 ED + 4001 LS 50 ED/Coolscan V ED + 4002 Super Coolscan LS-5000 ED +04b1 Pan International +04b3 IBM Corp. + 3003 Rapid Access III Keyboard + 3004 Media Access Pro Keyboard + 300a Rapid Access IIIe Keyboard + 3016 UltraNav Keyboard Hub + 3018 UltraNav Keyboard + 301b SK-8815 Keyboard + 301c Enhanced Performance Keyboard + 3020 Enhanced Performance Keyboard + 3100 NetVista Mouse + 3103 ScrollPoint Pro Mouse + 3104 ScrollPoint Wireless Mouse + 3105 ScrollPoint Optical (HID) + 3107 ThinkPad 800dpi Optical Travel Mouse + 3108 800dpi Optical Mouse w/ Scroll Point + 3109 Optical ScrollPoint Pro Mouse + 310b Red Wheel Mouse + 310c Wheel Mouse + 4427 Portable CD ROM + 4482 Serial Converter + 4485 Serial Converter + 4525 Double sided CRT + 4550 NVRAM (128 KB) + 4554 Cash Drawer + 4580 Hub w/ NVRAM + 4581 4800-2xx Hub w/ Cash Drawer + 4604 Keyboard w/ Card Reader + 4671 4820 LCD w/ MSR/KB +04b4 Cypress Semiconductor Corp. + 0000 Dacal DC-101 CD Library + 0001 Mouse + 0002 CY7C63x0x Thermometer + 0033 Mouse + 0100 Cino FuzzyScan F760-B + 0101 Keyboard/Hub + 0102 Keyboard with APM + 0130 MyIRC Remote Receiver + 0306 Telephone Receiver + 0407 Optical Skype Mouse + 0bad MetaGeek Wi-Spy + 1002 CY7C63001 R100 FM Radio + 1006 Human Interface Device + 2050 hub + 2830 Opera1 DVB-S (cold state) + 4381 SCAPS USC-1 Scanner Controller + 4611 Storage Adapter FX2 (CY) + 4616 Flash Disk (TPP) + 5201 Combi Keyboard-Hub (Hub) + 5202 Combi Keyboard-Hub (Keyboard) + 5500 HID->COM RS232 Adapter + 6370 ViewMate Desktop Mouse CC2201 + 6560 CY7C65640 USB-2.0 "TetraHub" + 6830 CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI + 6831 Storage Adapter ISD-300LP (CY) + 7417 Wireless PC Lock/Ultra Mouse + 8329 USB To keyboard/Mouse Converter + 8613 CY7C68013 EZ-USB FX2 USB 2.0 Development Kit + 8614 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) + 861f Anysee E30 USB 2.0 DVB-T Receiver + bca1 Barcode Reader + cc04 Centor USB RACIA-ALVAR USB PORT + cc06 Centor-P RACIA-ALVAR USB PORT + d5d5 CY7C63x0x Zoltrix Z-Boxer GamePad + de61 Barcode Reader + de64 Barcode Reader + f000 CY30700 Licorice evaluation board + f111 CY8CKIT-002 PSoC MiniProg3 Rev A Program and debug kit + f115 PSoC FirstTouch Programmer +04b5 ROHM LSI Systems USA, LLC +04b6 Hint Corp. +04b7 Compal Electronics, Inc. +04b8 Seiko Epson Corp. + 0001 Stylus Color 740 / Photo 750 + 0002 ISD Smart Cable for Mac + 0003 ISD Smart Cable + 0004 Printer + 0005 Printer + 0006 Printer + 0007 Printer + 0101 Perfection 636 + 0102 GT-2200 + 0103 Perfection 610 + 0104 Perfection 1200 + 0105 StylusScan 2000 + 0106 Stylus Scan 2500 + 0107 Expression 1600U + 0109 Expression 1640 XL + 010a Perfection 1640SU + 010b Perfection 1240 + 010c Perfection 640 + 010e Perfection 1680 + 010f Perfection 1250 + 0110 Perfection 1650 + 0112 Perfection 2450 + 0114 Perfection 660 + 0116 Perfection 3170 (GT-9400) + 0118 Perfection 4180 (GF-F600) + 0119 Perfection 4490 Photo + 011a 1000 ICS + 011b Perfection 2400 Photo + 011c Perfection 3200 + 011d Perfection 1260 Photo + 011e Perfection 1660 Photo + 011f Perfection 1670 + 0120 Perfection 1270 scanner + 0121 Perfection 2480 Photo + 0122 Perfection 3590 scanner + 0126 GT-15000 (ES-7000) + 0128 Perfection 4870 (GT-X700) + 0129 Expression 10000XL (ES-10000G) + 012a Perfection 4990 Photo scanner + 012b GT-2500 (ES-H300) + 012c Perfection V700 Photo (GT-X900) + 012d Perfection V10/V100 (GT-S600/F650) + 012f Perfection V350 (GT-F700) + 0130 Perfection V500 (GT-X770) + 0131 Perfection V300 + 0202 Receipt Printer M129C + 0401 CP 800 Digital Camera + 0402 PhotoPC 850z + 0403 PhotoPC 3000z + 0509 JVC PIX-MC10 + 0601 Stylus Photo 875DC Card Reader + 0602 Stylus Photo 895 Card Reader + 0801 Stylus CX5200/CX5400/CX6600 + 0802 Stylus CX3200 + 0803 Printer (Composite Device) + 0804 Storage Device + 0805 Stylus CX6400 + 0806 Stylus Photo RX600/610 + 0807 Stylus Photo RX500/510 + 0808 Stylus CX5200 + 0809 Storage Device + 080a Storage Device + 080c ME100 + 080d Stylus CX4500/4600 + 080e CX-3500/3600/3650 MFP + 080f Stylus Photo RX425 scanner + 0810 Stylus Photo RX700 (PM-A900) + 0811 Stylus Photo RX620 all-in-one + 0812 MFP Composite Device + 0813 Stylus CX6500/6600 + 0814 (PM-A700) + 0815 AcuLaser CX11 (LP-A500) + 0816 Printer (Composite Device) + 0817 (LP-M5500) + 0818 Stylus CX3700/CX3800/DX3800 + 0819 Stylus CX4700/CX4800/DX4800 (PX-A750) + 081a Stylus Photo RX520/RX530 (PM-A750) + 081b MFP Composite Device + 081c Stylus Photo RX640/RX650 (PM-A890) + 081d (PM-A950) + 081e MFP Composite Device + 081f Stylus CX7700/7800 + 0820 CX4200 MP scanner + 0821 MFP Composite Device + 0822 Storage Device + 0823 MFP Composite Device + 0824 Storage Device + 0825 MFP Composite Device + 0826 Storage Device + 0827 Stylus Photo RX560/580/590 (PM-A820) + 0828 (PM-A970) + 0829 (PM-T990) + 082a (PM-A920) + 082b Stylus DX5050 + 082c Storage Device + 082d Storage Device + 082e 0x082e DX-60x0 MFP scanner + 082f Stylus DX4050 + 0830 Stylus CX2800/CX2900/ME200 + 0831 MFP Composite Device + 0832 MFP Composite Device + 0833 (LP-M5600) + 0834 MFP Composite Device + 0835 AcuLaser CX21 + 0836 MFP Composite Device + 0837 MFP Composite Device + 0838 CX7300/CX7400/DX7400 + 0839 CX8300/CX8400/DX8400 + 083a CX9300F/CX9400Fax/DX9400F + 083b MFP Composite Device + 083c MFP Composite Device + 083d MFP Composite Device + 083e MFP Composite Device + 083f Stylus DX4450 + 0849 Stylus SX205 + 084d Stylus SX115 + 0856 Stylus SX515W +04b9 Rainbow Technologies, Inc. + 0300 SafeNet USB SuperPro/UltraPro + 1000 iKey 1000 Token + 1001 iKey 1200 Token + 1002 iKey Token + 1003 iKey Token + 1004 iKey Token + 1005 iKey Token + 1006 iKey Token + 1200 iKey 2000 Token + 1201 iKey Token + 1202 iKey 2032 Token + 1203 iKey Token + 1204 iKey Token + 1205 iKey Token + 1206 iKey 4000 Token + 1300 iKey 3000 Token + 1301 iKey 3000 + 1302 iKey Token + 1303 iKey Token + 1304 iKey Token + 1305 iKey Token + 1306 iKey Token +04ba Toucan Systems, Ltd +04bb I-O Data Device, Inc. + 0101 USB2-IDE/ATAPI Bridge Adapter + 0201 USB2-IDE/ATAPI Bridge Adapter + 0204 DVD Multi-plus unit iU-CD2 + 0206 DVD Multi-plus unit DVR-UEH8 + 0301 Storage Device + 0314 USB-SSMRW SD-card + 0319 USB2-IDE/ATAPI Bridge Adapter + 031a USB2-IDE/ATAPI Bridge Adapter + 031b USB2-IDE/ATAPI Bridge Adapter + 031e USB-SDRW SD-card + 0502 Nogatech Live! (BT) + 0528 GV-USB Video Capture + 0901 USB ETT + 0904 ET/TX Ethernet [pegasus] + 0913 ET/TX-S Ethernet [pegasus2] + 0919 USB WN-B11 + 0922 IOData AirPort WN-B11/USBS 802.11b + 0930 ETG-US2 + 0937 WN-WAG/USL Wireless LAN Adapter + 0938 WN-G54/USL Wireless LAN Adapter + 093b WN-GDN/USB + 093f WNGDNUS2 802.11n + 0944 WHG-AGDN/US Wireless LAN Adapter + 0945 WN-GDN/US3 Wireless LAN Adapter + 0947 WN-G150U Wireless LAN Adapter + 0948 WN-G300U Wireless LAN Adapter + 0a03 Serial USB-RSAQ1 + 0a07 USB2-iCN Adapter + 0a08 USB2-iCN Adapter + 0c01 FM-10 Pro Disk +04bd Toshiba Electronics Taiwan Corp. +04be Telia Research AB +04bf TDK Corp. + 0100 MediaReader CF + 0115 USB-PDC Adapter UPA9664 + 0116 USB-cdmaOne Adapter UCA1464 + 0117 USB-PHS Adapter UHA6400 + 0118 USB-PHS Adapter UPA6400 + 0135 MediaReader Dual + 0202 73S1121F Smart Card Reader- + 0309 Bluetooth USB dongle + 030a IBM Bluetooth Ultraport Module + 030b Bluetooth Device + 030c Ultraport Bluetooth Device + 0310 Integrated Bluetooth + 0311 Integrated Bluetooth Device + 0317 Bluetooth UltraPort Module from IBM + 0318 IBM Integrated Bluetooth + 0319 Bluetooth Adapter + 0320 Bluetooth Adapter + 0321 Bluetooth Device + 0a28 INDI AV-IN Device +04c1 U.S. Robotics (3Com) + 0020 56K Voice Pro + 0022 56K Voice Pro + 007e ISDN TA + 0082 OfficeConnect Analog Modem + 008f Pro ISDN TA + 0097 OfficeConnect Analog + 009d HomeConnect Webcam [vicam] + 00a9 ISDN Pro TA-U + 00b9 HomeConnect IDSL Modem + 3021 56k Voice FaxModem Pro +04c2 Methode Electronics Far East PTE, Ltd +04c3 Maxi Switch, Inc. + 1102 Mouse + 2102 Mouse +04c4 Lockheed Martin Energy Research +04c5 Fujitsu, Ltd + 1029 fi-4010c Scanner + 1033 fi-4110CU + 1041 fi-4120c Scanner + 1042 fi-4220c Scanner + 105b AH-F401U Air H device + 1096 fi-5110EOX + 1097 fi-5110C + 10ae fi-4120C2 + 10af fi-4220C2 + 10e0 fi-5120c Scanner + 10e1 fi-5220C + 10e7 fi-5900C + 10fe S500 +04c6 Toshiba America Electronic Components +04c7 Micro Macro Technologies +04c8 Konica Corp. + 0720 Digital Color Camera + 0721 e-miniD Camera + 0722 e-mini + 0723 KD-200Z Camera + 0726 KD-310Z Camera + 0728 Revio C2 Mass Storage Device + 0729 Revio C2 Digital Camera + 072c Revio KD20M + 072d Revio KD410Z +04ca Lite-On Technology Corp. + 1766 HID Monitor Controls + 9304 Hub +04cb Fuji Photo Film Co., Ltd + 0100 FinePix 30i/40i/50i, A101/201, 1300/2200, 1400/2400/2600/2800/4500/4700/4800/4900/6800/6900 Zoom + 0103 FinePix NX-500/NX-700 printer + 0104 FinePix A101, 2600/2800/4800/6800 Zoom (PC CAM) + 0108 FinePix F601 Zoom (DSC) + 0109 FinePix F601 Zoom (PC CAM) + 010a FinePix S602 (Pro) Zoom (DSC) + 010b FinePix S602 (Pro) Zoom (PC CAM) + 010d FinePix Digital Camera 020531 + 010e FinePix F402 Zoom (DSC) + 010f FinePix F402 Zoom (PC CAM) + 0110 FinePix M603 Zoom (DSC) + 0111 FinePix M603 Zoom (PC CAM) + 0112 FinePix A202, A200 Zoom (DSC) + 0113 FinePix A202, A200 Zoom (PC CAM) + 0114 FinePix F401 Zoom (DSC) + 0115 FinePix F401 Zoom (PC CAM) + 0116 FinePix A203 Zoom (DSC) + 0117 FinePix A203 Zoom (PC CAM) + 0118 FinePix A303 Zoom (DSC) + 0119 FinePix A303 Zoom (PC CAM) + 011a FinePix S304/3800 Zoom (DSC) + 011b FinePix S304/3800 Zoom (PC CAM) + 011c FinePix A204/2650 Zoom (DSC) + 011d FinePix A204/2650 Zoom (PC CAM) + 0120 FinePix F700 Zoom (DSC) + 0121 FinePix F700 Zoom (PC CAM) + 0122 FinePix F410 Zoom (DSC) + 0123 FinePix F410 Zoom (PC CAM) + 0124 FinePix A310 Zoom (DSC) + 0125 FinePix A310 Zoom (PC CAM) + 0126 FinePix A210 Zoom (DSC) + 0127 FinePix A210 Zoom (PC CAM) + 0128 FinePix A205(S) Zoom (DSC) + 0129 FinePix A205(S) Zoom (PC CAM) + 012a FinePix F610 Zoom (DSC) + 012b FinePix Digital Camera 030513 + 012c FinePix S7000 Zoom (DSC) + 012d FinePix S7000 Zoom (PC CAM) + 012f FinePix Digital Camera 030731 + 0130 FinePix S5000 Zoom (DSC) + 0131 FinePix S5000 Zoom (PC CAM) + 013b FinePix Digital Camera 030722 + 013c FinePix S3000 Zoom (DSC) + 013d FinePix S3000 Zoom (PC CAM) + 013e FinePix F420 Zoom (DSC) + 013f FinePix F420 Zoom (PC CAM) + 0142 FinePix S7000 Zoom (PTP) + 0148 FinePix A330 Zoom (DSC) + 0149 FinePix A330 Zoom (UVC) + 014a FinePix A330 Zoom (PTP) + 014b FinePix A340 Zoom (DSC) + 014c FinePix A340 Zoom (UVC) + 0159 FinePix F710 Zoom (DSC) + 0165 FinePix S3500 Zoom (DSC) + 0168 FinePix E500 Zoom (DSC) + 0169 FinePix E500 Zoom (UVC) + 016b FinePix E510 Zoom (DSC) + 016c FinePix E510 Zoom (PC CAM) + 016e FinePix S5500 Zoom (DSC) + 016f FinePix S5500 Zoom (UVC) + 0171 FinePix E550 Zoom (DSC) + 0172 FinePix E550 Zoom (UVC) + 0177 FinePix F10 (DSC) + 0179 Finepix F10 (PTP) + 0186 FinePix S5200/S5600 Zoom (DSC) + 0188 FinePix S5200/S5600 Zoom (PTP) + 018e FinePix S9500 Zoom (DSC) + 018f FinePix S9500 Zoom (PTP) + 0192 FinePix E900 Zoom (DSC) + 0193 FinePix E900 Zoom (PTP) + 019b FinePix F30 (PTP) + 01af FinePix A700 (PTP) + 01bf FinePix F6000fd/S6500fd Zoom (PTP) + 01c0 FinePix F20 (PTP) + 01c1 FinePix F31fd (PTP) + 01c4 FinePix S5700 Zoom (PTP) + 01c5 FinePix F40fd (PTP) + 01c6 FinePix A820 Zoom (PTP) + 01d2 FinePix A800 Zoom (PTP) + 01d4 FinePix F50fd (PTP) + 01d5 FinePix F47 (PTP) + 01f7 FinePix J250 (PTP) + 01fd A160 +04cc ST-Ericsson + 1122 Hub + 1520 USB 2.0 Hub (Avocent KVM) + 1521 USB 2.0 Hub + 1a62 GW Instek GSP-830 Spectrum Analyzer (HID) + 2533 NFC device (PN533) + 8116 Camera +04cd Tatung Co. Of America +04ce ScanLogic Corp. + 0002 SL11R-IDE IDE Bridge + 0100 USB2PRN Printer Class + 0300 Phantom 336CX - C3 scanner + 04ce SL11DEMO, VID: 0x4ce, PID: 0x4ce + 07d1 SL11R, VID: 0x4ce, PID: 0x07D1 +04cf Myson Century, Inc. + 0800 MTP800 Mass Storage Device + 8810 CS8810 Mass Storage Device + 8811 CS8811 Mass Storage Device + 8813 CS8813 Mass Storage Device + 8818 USB2.0 to ATAPI Bridge Controller + 8819 USB 2.0 SD/MMC Reader + 9920 CS8819A2-114 Mass Storage Device +04d0 Digi International +04d1 ITT Canon +04d2 Altec Lansing Technologies + 0070 ADA70 Speakers + 0305 Non-Compliant Audio Device + 0311 ADA-310 Speakers + 2060 Claritel-i750 - vp + ff05 ADA-305 Speakers + ff47 Lansing HID Audio Controls + ff49 Lansing HID Audio Controls +04d3 VidUS, Inc. +04d4 LSI Logic, Inc. +04d5 Forte Technologies, Inc. +04d6 Mentor Graphics +04d7 Oki Semiconductor + 1be4 Bluetooth Device +04d8 Microchip Technology, Inc. + 0002 PicoLCD 20x2 + 0003 PICkit 2 Microcontroller Programmer + 000a CDC RS-232 Emulation Demo + 000b PIC18F2550 (32K Flashable 10 Channel, 10 Bit A/D USB Microcontroller) + 0032 PICkit1 + 0033 PICkit2 + 0036 PICkit Serial Analyzer + 00e0 PIC32 Starter Board + 0a04 AGP LIN Serial Analyzer + 8000 In-Circuit Debugger + 8001 ICD2 in-circuit debugger + 900a PICkit3 + c001 PicoLCD 20x4 + fbba DiscFerret Magnetic Disc Analyser (bootloader mode) + fbbb DiscFerret Magnetic Disc Analyser (active mode) +04d9 Holtek Semiconductor, Inc. + 0022 Portable Keyboard + 048e Optical Mouse + 0499 Optical Mouse + 1203 Keyboard + 1400 PS/2 keyboard + mouse controller + 1503 Shortboard Lefty +04da Panasonic (Matsushita) + 0901 LS-120 Camera + 0912 SDR-S10 + 0b01 CD-R/RW Drive + 0b03 SuperDisk 240MB + 0d01 CD-R Drive KXL-840AN + 0d09 CD-R Drive KXL-RW32AN + 0d0a CD-R Drive KXL-CB20AN + 0d0d CDRCB03 + 0d0e DVD-ROM & CD-R/RW + 0f40 Printer + 1500 MFSUSB Driver + 1800 DY-WL10 802.11abgn Adapter [Broadcom BCM4323] + 1b00 MultiMediaCard + 2121 EB-VS6 + 2316 DVC Mass Storage Device + 2317 DVC USB-SERIAL Driver for WinXP + 2318 NV-GS11/230/250 (webcam mode) + 2319 NV-GS15 (webcam mode) + 231a NV-GS11/230/250 (DV mode) + 231d DVC Web Camera Device + 231e DVC DV Stream Device + 2372 Lumix Camera + 2374 DMC-FZ18/FZ20 + 2451 HDC-SD9 + 2497 HDC-TM700 + 250c Gobi Wireless Modem (QDL mode) + 250d Gobi Wireless Modem + 3904 N5HBZ0000055 802.11abgn Wireless Adapter [Atheros AR7010] + 3c04 JT-P100MR-20 [ePassport Reader] +04db Hypertec Pty, Ltd +04dc Huan Hsin Holdings, Ltd +04dd Sharp Corp. + 13a6 MFC2000 + 6006 AL-1216 + 6007 AL-1045 + 6008 AL-1255 + 6009 AL-1530CS + 600a AL-1540CS + 600b AL-1456 + 600c AL-1555 + 600d AL-1225 + 600e AL-1551CS + 600f AR-122E + 6010 AR-152E + 6011 AR-157E + 6012 SN-1045 + 6013 SN-1255 + 6014 SN-1456 + 6015 SN-1555 + 6016 AR-153E + 6017 AR-122E N + 6018 AR-153E N + 6019 AR-152E N + 601a AR-157E N + 601b AL-1217 + 601c AL-1226 + 601d AR-123E + 6021 IS01 + 7002 DVC Ver.1.0 + 7004 VE-CG40U Digital Still Camera + 7005 VE-CG30 Digital Still Camera + 7007 VL-Z7S Digital Camcorder + 8004 Zaurus SL-5000D/SL-5500 PDA + 8005 Zaurus A-300 + 8006 Zaurus SL-B500/SL-5600 PDA + 8007 Zaurus C-700 PDA + 9014 IM-DR80 Portable NetMD Player + 9031 Zaurus C-750/C-760/C-860/SL-C3000 PDA + 9032 Zaurus SL-6000 + 903a GSM GPRS + 9050 Zaurus C-860 PDA + 9056 Viewcam Z + 9073 AM-900 + 9074 GSM GPRS + 90a9 Sharp Composite + 90d0 USB-to-Serial Comm. Port + 90f2 Sharp 3G GSM USB Control + 9120 WS004SH + 9122 WS007SH + 9123 W-ZERO3 ES Smartphone + 91a3 922SH Internet Machine +04de MindShare, Inc. +04df Interlink Electronics +04e1 Iiyama North America, Inc. + 0201 Monitor Hub +04e2 Exar Corp. +04e3 Zilog, Inc. +04e4 ACC Microelectronics +04e5 Promise Technology +04e6 SCM Microsystems, Inc. + 0001 E-USB ATA Bridge + 0002 eUSCSI SCSI Bridge + 0003 eUSB SmartMedia Card Reader + 0005 eUSB SmartMedia/CompactFlash Card Reader + 0006 eUSB SmartMedia Card Reader + 0007 Hifd + 0009 eUSB ATA/ATAPI Adapter + 000a eUSB CompactFlash Adapter + 000b eUSCSI Bridge + 000c eUSCSI Bridge + 000d Dazzle MS + 0012 Dazzle SD/MMC + 0101 eUSB ATA Bridge (Sony Spressa USB CDRW) + 0311 Dazzle DM-CF + 0312 Dazzle DM-SD/MMC + 0313 Dazzle SM + 0314 Dazzle MS + 0322 e-Film Reader-5 + 0325 eUSB ORCA Quad Reader + 0327 Digital Media Reader + 03fe DMHS2 DFU Adapter + 0406 eUSB SmartDM Reader + 04e6 eUSB DFU Adapter + 04e7 STCII DFU Adapter + 04e8 eUSBDM DFU Adapter + 04e9 DM-E DFU Adapter + 0500 Veridicom 5thSense Fingerprint Sensor and eUSB SmartCard + 0701 DCS200 Loader Device + 0702 DVD Creation Station 200 + 0703 DVC100 Loader Device + 0704 Digital Video Creator 100 + 1001 SCR300 Smart Card Reader + 1010 USBAT-2 CompactFlash Card Reader + 1014 e-Film Reader-3 + 1020 USBAT ATA/ATAPI Adapter + 2007 RSA SecurID ComboReader + 2009 Citibank Smart Card Reader + 200a Reflex v.2 Smart Card Reader + 200d STR391 Reader + 5111 SCR331-DI SmartCard Reader + 5113 SCR333 SmartCard Reader + 5114 SCR331-DI SmartCard Reader + 5115 SCR335 SmartCard Reader + 5116 SCR331-LC1 / SCR3310 SmartCard Reader + 5117 SCR3320 - Smart Card Reader + 5118 Expresscard SIM Card Reader + 5119 SCR3340 - ExpressCard54 Smart Card Reader + 511b SmartCard Reader + 511d SCR3311 Smart Card Reader + 5120 SCR331-DI SmartCard Reader + 5121 SDI010 Smart Card Reader + 5151 SCR338 Keyboard Smart Card Reader + 5292 SCL011 RFID reader + 5410 SCR35xx Smart Card Reader + e000 SCRx31 Reader + e001 SCR331 SmartCard Reader + e003 SPR532 PinPad SmartCard Reader +04e7 Elo TouchSystems + 0001 TouchScreen + 0002 Touchmonitor Interface 2600 Rev 2 + 0004 4000U CarrollTouch® Touchmonitor Interface + 0007 2500U IntelliTouch® Touchmonitor Interface + 0008 3000U AccuTouch® Touchmonitor Interface + 0009 4000U CarrollTouch® Touchmonitor Interface + 0020 Touchscreen Interface (2700) + 0021 Touchmonitor Interface + 0030 4500U CarrollTouch® Touchmonitor Interface + 0032 Touchmonitor Interface + 0033 Touchmonitor Interface + 0041 5010 Surface Capacitive Touchmonitor Interface + 0042 Touchmonitor Interface + 0050 2216 AccuTouch® Touchmonitor Interface + 0071 Touchmonitor Interface + 0072 Touchmonitor Interface + 0081 Touchmonitor Interface + 0082 Touchmonitor Interface + 00ff Touchmonitor Interface +04e8 Samsung Electronics Co., Ltd + 0100 Kingston Flash Drive (128MB) + 0110 Connect3D Flash Drive + 0111 Connect3D Flash Drive + 1003 MP3 Player and Recorder + 1006 SDC-200Z + 2018 WIS09ABGN LinkStick Wireless LAN Adapter + 2035 Digital Photo Frame Mass Storage + 2036 Digital Photo Frame Mini Monitor + 3004 ML-4600 + 3005 Docuprint P1210 + 3008 ML-6060 laser printer + 300c ML-1210 Printer + 300e Laser Printer + 3104 ML-3550N + 3210 ML-5200A Laser Printer + 3226 Laser Printer + 3228 Laser Printer + 322a Laser Printer + 322c Laser Printer + 3230 ML-1440 + 3232 Laser Printer + 3236 ML-1450 + 3238 ML-1430 + 323a ML-1710 Printer + 323b Phaser 3130 + 323c Laser Printer + 323d Phaser 3120 + 323e Laser Printer + 3240 Laser Printer + 3242 ML-1510 Laser Printer + 3248 Color Laser Printer + 324a Laser Printer + 324c ML-1740 Printer + 324d Phaser 3121 + 3256 ML-1520 Laser Printer + 325b Xerox Phaser 3117 Laser Printer + 325f Phaser 3425 Laser Printer + 3260 CLP-510 Color Laser Printer + 3268 ML-1610 Mono Laser Printer + 326c ML-2010P Mono Laser Printer + 3276 ML-3050/ML-3051 Laser Printer + 328e CLP-310 Color Laser Printer + 3296 ML-2580N Mono Laser Printer + 3297 ML-191x/ML-252x Laser Printer + 3409 SCX-4216F Scanner + 340c SCX-5x15 series + 340d SCX-6x20 series + 340e MFP 560 series + 340f Printing Support + 3412 SCX-4x20 series + 3413 SCX-4100 Scanner + 3415 Composite Device + 3419 Composite Device + 341a Printing Support + 341b SCX-4200 series + 341c Composite Device + 341d Composite Device + 341f Composite Device + 3420 Composite Device + 3426 SCX-4500 Laser Printer + 3605 InkJet Color Printer + 3606 InkJet Color Printer + 3609 InkJet Color Printer + 3902 InkJet Color Printer + 3903 Xerox WorkCentre XK50cx + 390f InkJet Color Printer + 3911 SCX-1020 series + 4005 GT-S8000 Jet (msc) + 4f1f GT-S8000 Jet (mtp) + 5000 YP-MF series + 5001 YP-100 + 5002 YP-30 + 5003 YP-700 + 5004 YP-30 + 5005 YP-300 + 5006 YP-750 + 500d MP3 Player + 5010 Yepp YP-35 + 5011 YP-780 + 5013 YP-60 + 5015 yepp upgrade + 501b MP3 Player + 5021 Yepp YP-ST5 + 5026 YP-MT6V + 5027 YP-T7 + 502b YP-F1 + 5032 YP-J70 + 503b YP-U1 MP3 Player + 503d YP-T7F + 5041 YP-Z5 + 5050 YP-U2 MP3 Player + 5051 YP-F2R + 5055 YP-T9 + 507d YP-U3 (mtp) + 507f YP-T9J + 5080 Yepp YP-K3 (msc) + 5081 Yepp YP-K3 (mtp) + 5082 YP-P2 (msc) + 5083 YP-P2 (mtp) + 508a YP-T10 + 508b YP-S5 MP3 Player + 508c YP-S5 + 5090 YP-S3 (msc) + 5091 YP-S3 (mtp) + 5092 YP-U4 (msc) + 5093 YP-U4 (mtp) + 5095 YP-S2 + 510f YP-R1 + 5119 Yepp YP-P3 + 511c YP-Q2 + 5121 YP-U5 + 5123 Yepp YP-M1 + 5a00 YP-NEU + 5a01 YP-NDU + 5a03 Yepp MP3 Player + 5a04 YP-800 + 5a08 YP-90 + 5a0f Meizu M6 MiniPlayer + 5b01 Memory Stick Reader/Writer + 5b02 Memory Stick Reader/Writer + 5b03 Memory Stick Reader/Writer + 5b04 Memory Stick Reader/Writer + 5b05 Memory Stick Reader/Writer + 5b11 SEW-2001u Card + 5f00 NEXiO Sync + 5f01 NEXiO Sync + 5f02 NEXiO Sync + 5f03 NEXiO Sync + 5f04 NEXiO Sync + 6032 G2 Portable hard drive + 6601 Mobile Phone + 6602 Galaxy + 6603 Galaxy + 6611 MITs Sync + 6613 MITs Sync + 6615 MITs Sync + 6617 MITs Sync + 6619 MITs Sync + 661b MITs Sync + 661e Handheld + 6620 Handheld + 6622 Handheld + 6624 Handheld + 662e MITs Sync + 6630 MITs Sync + 6632 MITs Sync + 663e D900e Phone + 663f SGH-E720/SGH-E840 + 6640 Usb Modem Enumerator + 6702 X830 + 6708 U600 Phone + 6709 U600 + 6734 Juke + 6759 D900e Media Player + 675a D900e Mass Storage + 675b D900e Camera + 6772 Standalone LTE device (Trial) + 6795 S5230 + 6802 Standalone HSPA device + 6806 Composite LTE device (Trial) + 6807 Composite HSPA device + 681c Galaxy Portal/Spica/S + 681d Galaxy Portal/Spica Android Phone + 684e Wave (GT-S8500) + 6875 GT-B3710 Standalone LTE device (Commercial) + 6876 GT-B3710 LTE Modem + 6877 Galaxy S + 6888 GT-B3730 Composite LTE device (Commercial) + 6889 GT-B3730 Composite LTE device (Commercial) + 689a LTE Storage Driver [CMC2xx] + 7011 SEW-2003U Card + 7021 Bluetooth Device + 7061 eHome Infrared Receiver + 7080 Anycall SCH-W580 + 7081 Human Interface Device + 8001 Handheld + e020 SERI E02 SCOM 6200 UMTS Phone + e021 SERI E02 SCOM 6200 Virtual UARTs + e022 SERI E02 SCOM 6200 Flash Load Disk + ff30 SG_iMON +04e9 PC-Tel, Inc. +04ea Brooktree Corp. +04eb Northstar Systems, Inc. + e004 eHome Infrared Transceiver +04ec Tokyo Electron Device, Ltd +04ed Annabooks +04ef Pacific Electronic International, Inc. +04f0 Daewoo Electronics Co., Ltd +04f1 Victor Company of Japan, Ltd + 0001 GC-QX3 Digital Still Camera + 0004 GR-DVL815U Digital Video Camera + 0006 DV Camera Storage + 0008 GZ-MG30AA/MC500E Digital Video Camera + 0009 GR-DX25EK Digital Video Camera + 000a GR-D72 Digital Video Camera + 1001 GC-A50 Camera Device + 3008 MP-PRX1 Ethernet + 3009 MP-XP7250 WLAN Adapter +04f2 Chicony Electronics Co., Ltd + 0001 KU-8933 Keyboard + 0002 NT68P81 Keyboard + 0110 KU-2971 Keyboard + 0111 KU-9908 Keyboard + 0112 KU-8933 Keyboard with PS/2 Mouse port + 0116 KU-2971/KU-0325 Keyboard + 0220 Wireless HID Receiver + 0402 Genius LuxeMate i200 Keyboard + 0403 KU-0420 keyboard + 0418 KU-0418 Tactical Pad + 0760 Acer KU-0760 Keyboard + 0860 2.4G Multimedia Wireless Kit + a001 E-Video DC-100 Camera + a120 ORITE CCD Webcam(PC370R) + a121 ORITE CCD Webcam(PC370R) + a122 ORITE CCD Webcam(PC370R) + a123 ORITE CCD Webcam(PC370R) + a124 ORITE CCD Webcam(PC370R) + a128 PC Camera (SN9C202 + OV7663 + EEPROM) + a133 Gateway Webcam + a136 LabTec Webcam 5500 + a204 DSC WIA Device (1300) + a208 DSC WIA Device (2320) + a209 Labtec DC-2320 + a20a DSC WIA Device (3310) + a20c DSC WIA Device (3320) + a210 Audio Device + b008 USB 2.0 Camera + b009 Integrated Camera + b010 Integrated Camera + b012 1.3 MPixel UVC Webcam + b013 USB 2.0 Camera + b015 VGA 24fps UVC Webcam + b016 VGA 30fps UVC Webcam + b018 2M UVC Webcam + b021 ViewSonic 1.3M, USB2.0 Webcam + b022 Gateway USB 2.0 Webcam + b023 Gateway USB 2.0 Webcam + b024 USB 2.0 Webcam + b025 Camera + b027 Gateway USB 2.0 Webcam + b028 VGA UVC Webcam + b029 1.3M UVC Webcam + b036 Asus Integrated 0.3M UVC Webcam + b044 Acer CrystalEye Webcam + b057 integrated USB webcam + b071 2.0M UVC Webcam / CNF7129 + b091 Webcam + b104 CNF7069 Webcam + b107 CNF7070 Webcam + b14c CNF8050 Webcam + b175 4-Port Hub + b1aa Webcam-101 + b1b4 Lenovo Integrated Camera + b1cf Lenovo Integrated Camera +04f3 Elan Microelectronics Corp. + 0210 AM-400 Hama Optical Mouse + 0212 Laser Mouse + 0214 Lynx M9 Optical Mouse + 0230 3D Optical Mouse + 02f4 2.4G Cordless Mouse +04f4 Harting Elektronik, Inc. +04f5 Fujitsu-ICL Systems, Inc. +04f6 Norand Corp. +04f7 Newnex Technology Corp. +04f8 FuturePlus Systems +04f9 Brother Industries, Ltd + 0002 HL-1050 Laser Printer + 0005 Printer + 0006 HL-1240 Laser Printer + 0007 HL-1250 Laser Printer + 0008 HL-1270 Laser Printer + 0009 Printer + 000a P2500 series + 000b Printer + 000c Printer + 000d HL-1440 Laser Printer + 000e HL-1450 series + 000f HL-1470N series + 0010 Printer + 0011 Printer + 0012 Printer + 0013 Printer + 0014 Printer + 0015 Printer + 0016 Printer + 0017 Printer + 0018 Printer + 001a HL-1430 Laser Printer + 001c Printer + 001e Printer + 0020 HL-5130 series + 0021 HL-5140 series + 0022 HL-5150D series + 0023 HL-5170DN series + 0024 Printer + 0025 Printer + 0027 HL-2030 Laser Printer + 0028 Printer + 0029 Printer + 002a HL-52x0 series + 002b HL-5250DN Printer + 002c Printer + 002d Printer + 0100 MFC8600/9650 series + 0101 MFC9600/9870 series + 0102 MFC9750/1200 series + 0104 MFC-8300J + 0105 MFC-9600J + 0106 MFC-7300C + 0107 MFC-7400C + 0108 MFC-9200C + 0109 MFC-830 + 010a MFC-840 + 010b MFC-860 + 010c MFC-7400J + 010d MFC-9200J + 010e MFC3100C Scanner + 010f MFC 5100C + 0110 MFC4800 Scanner + 0111 MFC 6800 + 0112 DCP1000 Port(FaxModem) + 0113 MFC-8500 + 0114 MFC9700 Port(FaxModem) + 0115 MFC9800 Scanner + 0116 DCP1400 Scanner + 0119 MFC-9660 + 011b MFC-9880 + 011c MFC-9760 + 011d MFC-9070 + 011e MFC-9180 + 011f MFC-9160 + 0120 MFC580 Port(FaxModem) + 0121 MFC-590 + 0122 MFC-5100J + 0129 Imagistics 2500 (MFC-8640D clone) + 012f FAX-4750e + 0132 MFC-5200C RemovableDisk + 0135 MFC-100 Scanner + 0136 MFC-150CL Scanner + 013c MFC-890 Port + 013d MFC-5200J Printer + 013e MFC-4420C RemovableDisk + 013f MFC-4820C RemovableDisk + 0140 DCP-8020 + 0141 DCP-8025D + 0142 MFC-8420 + 0143 MFC-8820D + 0144 DCP-4020C RemovableDisk + 0146 MFC-3220C + 0147 FAX-1820C Printer + 0148 MFC-3320CN Printer + 0149 FAX-1920CN Printer + 014a MFC-3420C + 014b MFC-3820CN + 014d FAX-1815C Printer + 014e MFC-8820J + 0150 MFC-8220 Port(FaxModem) + 0151 MFC-8210J + 0157 MFC-3420J Printer + 0158 MFC-3820JN Port(FaxModem) + 015d MFC Composite Device + 015e DCP-8045D + 015f MFC-8440 + 0160 MFC-8840D + 0161 MFC-210C + 0162 MFC-420CN Remote Setup Port + 0163 MFC-410CN RemovableDisk + 0165 MFC-620CN + 0166 MFC-610CLN RemovableDisk + 0168 MFC-620CLN + 0169 DCP-110C RemovableDisk + 016b DCP-310CN RemovableDisk + 016c FAX-2440C Printer + 016d MFC-5440CN + 016e MFC-5840CN Remote Setup Port + 0170 FAX-1840C Printer + 0171 FAX-1835C Printer + 0172 FAX-1940CN Printer + 0173 MFC-3240C Remote Setup Port + 0174 MFC-3340CN RemovableDisk + 017b Imagistics sx2100 + 0180 MFC-7420 + 0181 MFC-7820N Port(FaxModem) + 0182 Composite Device + 0183 DCP-7020 + 0184 DCP-7025 Printer + 0185 MFC-7220 Printer + 0186 Composite Device + 0187 FAX-2820 Printer + 0188 FAX-2920 Printer + 018a MFC-9420CN + 018c DCP-115C + 018d DCP-116C + 018e DCP-117C + 018f DCP-118C + 0190 DCP-120C + 0191 DCP-315CN + 0192 DCP-340CW + 0193 MFC-215C + 0194 MFC-425CN + 0195 MFC-820CW Remote Setup Port + 0196 MFC-820CN Remote Setup Port + 0197 MFC-640CW + 019a MFC-840CLN Remote Setup Port + 01a2 MFC-8640D + 01a3 Composite Device + 01a4 DCP-8065DN Printer + 01a5 MFC-8460N Port(FaxModem) + 01a6 MFC-8860DN Port(FaxModem) + 01a7 MFC-8870DW Printer + 01a8 DCP-130C + 01a9 DCP-330C + 01aa DCP-540CN + 01ab MFC-240C + 01ae DCP-750CW RemovableDisk + 01af MFC-440CN + 01b0 MFC-660CN + 01b1 MFC-665CW Remote Setup Port + 01b2 MFC-845CW Remote Setup Port + 01b4 MFC-460CN Remote Setup Port + 01b5 MFC-630CD + 01b6 MFC-850CDN + 01b7 MFC-5460CN Remote Setup Port + 01b8 MFC-5860CN + 01ba MFC-3360C + 01bd MFC-8660DN + 01be DCP-750CN RemovableDisk + 01bf MFC-860CDN Remote Setup Port + 01c0 DCP-128C + 01c1 DCP-129C + 01c2 DCP-131C + 01c3 DCP-329C + 01c4 DCP-331C + 01c5 MFC-239C + 01ca MFC-9440CN Remote Setup Port + 01ce DCP-135C + 01cf DCP-150C + 01d0 DCP-350C + 01d1 DCP-560CN + 01d4 MFC-230C + 01d5 MFC-235C + 01d6 MFC-260C + 01df DCP-155C + 01e0 MFC-265C + 01e1 DCP-153C + 01e2 DCP-157C + 01e3 DCP-353C + 01e4 DCP-357C + 01e7 MFC-7340 + 01e9 DCP-7040 + 01ea DCP-7030 + 01eb MFC-7320 + 01f4 MFC-5890CN + 1000 Printer + 1002 Printer + 2002 PTUSB Printing + 2004 PT-2300/2310 p-Touch Laber Printer + 2015 QL-500 P-touch label printer + 2016 QL-550 P-touch label printer + 201a PT-18R P-touch label printer + 2027 QL-560 P-Touch Label Printer + 2100 Card Reader Writer +04fa Dallas Semiconductor + 2490 DS1490F 2-in-1 Fob, 1-Wire adapter + 4201 DS4201 Audio DAC +04fb Biostar Microtech International Corp. +04fc Sunplus Technology Co., Ltd + 0003 CM1092 Optical Scroller Mouse + 0005 USB OpticalWheel Mouse + 0013 ViewMate Desktop Mouse CC2201 + 0015 ViewMate Desktop Mouse CC2201 + 00d3 00052486 / Laser Mouse M1052 [hama] + 0171 SPCA1527A/SPCA1528 SD card camera (Mass Storage mode) + 0232 Fingerprint + 0561 Flexcam 100 + 05d8 Wireless keyboard/mouse + 0c15 SPIF215A SATA bridge + 0c25 SATALink SPIF225A + 1528 SPCA1527A/SPCA1528 SD card camera (webcam mode) + 1533 Mass Storage + 2080 ASUS Webcam + 500c CA500C Digital Camera + 504a Aiptek Mini PenCam 1.3 + 504b Aiptek Mega PockerCam 1.3/Maxell MaxPocket LE 1.3 + 5330 Digitrex 2110 + 5331 Vivitar Vivicam 10 + 5360 Sunplus Generic Digital Camera + 5720 Card Reader Driver + 7333 Finet Technology Palmpix DC-85 + 757a Aiptek, MP315 MP3 Player + ffff PureDigital Ritz Disposable +04fd Soliton Systems, K.K. + 0003 Smart Card Reader II +04fe PFU, Ltd +04ff E-CMOS Corp. +0500 Siam United Hi-Tech + 0001 DART Keyboard Mouse + 0002 DART-2 Keyboard +0501 Fujikura DDK, Ltd +0502 Acer, Inc. + 0001 Handheld + 0736 Handheld + 15b1 PDA n311 + 1631 c10 Series + 1632 c20 Series + 16e1 n10 Handheld Sync + 16e2 n20 Pocket PC Sync + 16e3 n30 Handheld Sync + 3202 Liquid + 3203 Liquid (Debug mode) + d001 Divio NW801/DVC-V6+ Digital Camera +0503 Hitachi America, Ltd +0504 Hayes Microcomputer Products +0506 3Com Corp. + 009d HomeConnect Camera + 00a0 3CREB96 Bluetooth Adapter + 00a1 Bluetooth Device + 00a2 Bluetooth Device + 00df 3Com Home Connect lite + 0100 HomeConnect ADSL Modem Driver + 03e8 3C19250 Ethernet [klsi] + 0a01 3CRSHEW696 Wireless Adapter + 0a11 3CRWE254G72 802.11g Adapter + 11f8 HomeConnect 3C460 + 2922 HomeConnect Cable Modem External with + 3021 U.S.Robotics 56000 Voice FaxModem Pro + 4601 3C460B 10/100 Ethernet Adapter + f002 3CP4218 ADSL Modem (pre-init) + f003 3CP4218 ADSL Modem + f100 3CP4218 ADSL Modem (pre-init) +0507 Hosiden Corp. + 0011 Konami ParaParaParadise Controller +0508 Clarion Co., Ltd +0509 Aztech Systems, Ltd + 0801 ADSL Modem + 0802 ADSL Modem (RFC1483) + 0806 DSL Modem + 080f Binatone ADSL500 Modem Network Interface + 0812 Pirelli ADSL Modem Network Interface +050a Cinch Connectors +050b Cable System International +050c InnoMedia, Inc. +050d Belkin Components + 0004 Direct Connect + 0012 F8T012 Bluetooth Adapter + 0013 F8T013 Bluetooth Adapter + 0017 B8T017 Bluetooth+EDR 2.1 + 0050 F5D6050 802.11b Wireless Adapter v2000 [Atmel at76c503a] + 0081 F8T001v2 Bluetooth + 0083 Bluetooth Device + 0084 F8T003v2 Bluetooth + 0102 Flip KVM + 0103 F5U103 Serial Adapter [etek] + 0106 VideoBus II Adapter, Video + 0108 F1DE108B KVM + 0109 F5U109/F5U409 PDA Adapter + 0115 SCSI Adapter + 0119 F5U120-PC Dual PS/2 Ports / F5U118-UNV ADB Adapter + 0121 F5D5050 100Mbps Ethernet + 0122 Ethernet Adapter + 0131 Bluetooth Device with trace filter + 016a Bluetooth Mini Dongle + 0201 Peripheral Switch + 0208 USBView II Video Adapter [nt1004] + 0210 F5U228 Hi-Speed USB 2.0 DVD Creator + 0211 F5U211 USB 2.0 15-in-1 Media Reader & Writer + 0224 F5U224 USB 2.0 4-Port Hub + 0234 F5U234 USB 2.0 4-Port Hub + 0237 F5U237 USB 2.0 7-Port Hub + 0240 F5U240 USB 2.0 CF Card Reader + 0249 USB 2 Flash Media Device + 0257 F5U257 Serial + 0304 FSU304 USB 2.0 - 4 Ports Hub + 0409 F5U409 Serial + 0551 F6C550-AVR UPS + 0802 Nostromo n40 Gamepad + 0803 Nostromo 1745 GamePad + 0805 Nostromo N50 GamePad + 0815 Nostromo n52 HID SpeedPad Mouse Wheel + 0826 ErgoFit Wireless Optical Mouse (HID) + 0980 HID UPS Battery + 1102 Realtek RTL8188CE-VAU 1T1R 802.11n WLAN Adapter + 1202 F5U120-PC Parallel Printer Port + 1203 F5U120-PC Serial Port + 258a F5U258 Host to Host cable + 3101 F1DF102U/F1DG102U Flip Hub + 3201 F1DF102U/F1DG102U Flip KVM + 4050 ZD1211B + 5055 F5D5055 Gigabit Network Adapter [AX88xxx] + 6051 F5D6051 802.11b Wireless Network Adapter [ZyDAS ZD1201] + 7050 F5D7050 Wireless G Adapter v1000/v2000 [Intersil ISL3887] + 7051 F5D7051 802.11g Adapter v1000 [Broadcom 4320 USB] + 705a F5D7050 Wireless G Adapter v3000 [Ralink RT2573] + 705b Wireless G Adapter + 705c F5D7050 Wireless G Adapter v4000 [Zydas ZD1211B] + 705e F5D7050 Wireless G Adapter v5000 [Realtek RTL8187B] + 8053 F5D8053 N Wireless USB Adapter v1000/v4000 [Ralink RT2870] + 805c F5D8053 N Wireless Adapter v3000 [Ralink RT2870] + 805e F5D8053 N Wireless USB Adapter v5000 [Realtek RTL8192U] + 815c F5D8053 N Wireless USB Adapter v3000 [Ralink RT2870] + 815f F5D8053 N Wireless USB Adapter v6000 [Realtek RTL8192SU] + 825a F5D8055 N+ Wireless Adapter v1000 [Ralink RT2870] + 825b F5D8055 N+ Wireless Adapter v2000 [Ralink RT3070] + 845a F7D2101deSH [rtl8192su] + 905b F5D9050 Wireless G+ MIMO Network Adapter v3000 [Ralink RT2573] + 905c F5D9050 Wireless G+ MIMO Network Adapter v4000 [Ralink RT2573] + 935a F6D4050 N150 Enhanced Wireless Network Adapter v1000 [Ralink RT2870] + 935b F6D4050 N150 Enhanced Wireless Network Adapter v2000 [Ralink RT3070] + 945a F7D1101 Basic Wireless USB Adapter v1000 [Realtek RTL8188SU] +050e Neon Technology, Inc. +050f KC Technology, Inc. + 0001 Hub + 0003 KC82C160S Hub + 0180 KC-180 IrDA Dongle + 0190 KC2190 USB Host-to-Host cable +0510 Sejin Electron, Inc. + 0001 Keyboard + 1000 Keyboard with PS/2 Mouse Port + e001 Mouse +0511 N'Able (DataBook) Technologies, Inc. +0512 Hualon Microelectronics Corp. +0513 digital-X, Inc. +0514 FCI Electronics +0515 ACTC +0516 Longwell Electronics +0517 Butterfly Communications +0518 EzKEY Corp. + 0001 USB to PS2 Adaptor v1.09 + 0002 EZ-9900C Keyboard +0519 Star Micronics Co., Ltd + 0003 TSP100ECO/TSP100II + c002 Xlive Bluetooth XBM-100S MP3 Player +051a WYSE Technology + a005 Smart Display Version 9973 +051b Silicon Graphics +051c Shuttle, Inc. + 0005 VFD Module + c001 eHome Infrared Receiver + c002 eHome Infrared Receiver +051d American Power Conversion + 0001 UPS + 0002 Uninterruptible Power Supply + 0003 UPS +051e Scientific Atlanta, Inc. +051f IO Systems (Elite Electronics), Inc. +0520 Taiwan Semiconductor Manufacturing Co. +0521 Airborn Connectors +0522 Advanced Connectek, Inc. +0523 ATEN GmbH +0524 Sola Electronics +0525 Netchip Technology, Inc. + 100d RFMD Bluetooth Device + 1080 NET1080 USB-USB Bridge + 1265 File-backed Storage Gadget + a140 USB Clik! 40 + a141 (OME) PocketZip 40 MP3 Player Driver + a220 GVC Bluetooth Wireless Adapter + a4a0 Linux-USB "Gadget Zero" + a4a1 Linux-USB Ethernet Gadget + a4a2 Linux-USB Ethernet/RNDIS Gadget + a4a3 Linux-USB user-mode isochronous source/sink + a4a4 Linux-USB user-mode bulk source/sink + a4a5 Linux-USB File Storage Gadget + a4a6 Linux-USB Serial Gadget + a4a7 Linux-USB Serial Gadget (CDC ACM mode) + a4a8 Linux-USB Printer Gadget + a4a9 Linux-USB OBEX Gadget + a4aa Linux-USB CDC Composite Gadge (Ethernet and ACM) +0526 Temic MHS S.A. +0527 ALTRA +0528 ATI Technologies, Inc. + 7561 TV Wonder + 7562 TV Wonder, Edition (FN5) + 7563 TV Wonder, Edition (FI) + 7564 TV Wonder, Edition (FQ) + 7565 TV Wonder, Edition (NTSC+) + 7566 TV Wonder, Edition (FN5) + 7567 TV Wonder, Edition (FI) + 7568 TV Wonder, Edition (FQ) + 7569 Live! Pro (A) + 756a Live! Pro Audio (O) +0529 Aladdin Knowledge Systems + 0001 HASP v0.06 + 030b eToken R1 v3.1.3.x + 0313 eToken R1 v3.2.3.x + 031b eToken R1 v3.3.3.x + 0323 eToken R1 v3.4.3.x + 0412 eToken R2 v2.2.4.x + 041a eToken R2 v2.2.4.x + 0422 eToken R2 v2.4.4.x + 042a eToken R2 v2.5.4.x + 050c eToken Pro v4.1.5.x + 0514 eToken Pro v4.2.5.4 + 0600 eToken Pro 64k (4.2) +052a Crescent Heart Software +052b Tekom Technologies, Inc. + 0102 Ca508A HP1020 Camera v.1.3.1.6 + 0801 Yakumo MegaImage 37 + 1512 Yakumo MegaImage IV + 1513 Aosta CX100 Webcam + 1514 Aosta CX100 Webcam Storage + 1905 Yakumo MegaImage 47 + 1911 Yakumo MegaImage 47 SL + 2202 WDM Still Image Capture + 2203 Sound Vision Stream Driver + 3a06 DigiLife DDV-5120A + d001 P35U Camera Capture +052c Canon Information Systems, Inc. +052d Avid Electronics Corp. +052e Standard Microsystems Corp. +052f Unicore Software, Inc. +0530 American Microsystems, Inc. +0531 Wacom Technology Corp. +0532 Systech Corp. +0533 Alcatel Mobile Phones +0534 Motorola, Inc. +0535 LIH TZU Electric Co., Ltd +0536 Hand Held Products (Welch Allyn, Inc.) + 01a0 PDT +0537 Inventec Corp. +0538 Caldera International, Inc. (SCO) +0539 Shyh Shiun Terminals Co., Ltd +053a PrehKeyTec GmbH + 0b00 Hub +053b Global Village Communication +053c Institut of Microelectronic & Mechatronic Systems +053d Silicon Architect +053e Mobility Electronics +053f Synopsys, Inc. +0540 UniAccess AB + 0101 Panache Surf ISDN TA +0541 Sirf Technology, Inc. +0543 ViewSonic Corp. + 00fe G773 Monitor Hub + 00ff P815 Monitor Hub + 0bf2 airpanel V150 Wireless Smart Display + 0bf3 airpanel V110 Wireless Smart Display + 0ed9 Color Pocket PC V35 + 0f01 airsync Wi-Fi Wireless Adapter + 1527 Color Pocket PC V36 + 1529 Color Pocket PC V37 + 152b Color Pocket PC V38 + 152e Pocket PC + 1921 Communicator Pocket PC + 1922 Smartphone + 1923 Pocket PC V30 + 1a11 Wireless 802.11g Adapter + 1e60 TA310 - ATSC/NTSC/PAL Driver(PCM4) + 4153 ViewSonic G773 Control (?) +0544 Cristie Electronics, Ltd +0545 Xirlink, Inc. + 7333 Trution Web Camera + 8002 IBM NetCamera + 8009 Veo PC Camera + 800c Veo Stingray + 800d Veo PC Camera + 8080 IBM C-It Webcam + 808a Veo PC Camera + 808b Veo Stingray + 808d Veo PC Camera + 810a Veo Advanced Connect Webcam + 810b Veo PC Camera + 810c Veo PC Camera + 8135 Veo Mobile/Advanced Web Camera + 813a Veo PC Camera + 813b Veo PC Camera + 813c Veo Mobile/Advanced Web Camera + 8333 Veo Stingray/Connect Web Camera + 888c eVision 123 digital camera + 888d eVision 123 digital camera +0546 Polaroid Corp. + 0daf PDC 2300Z + 1bed PDC 1320 Camera + 3097 PDC 310 + 3155 PDC 3070 Camera + 3187 Digital Camera + 3191 Ion 80 Camera + 3273 PDC 2030 Camera + 3304 a500 Digital Camera + dccf Sound Vision Stream Driver +0547 Anchor Chips, Inc. + 0001 ICSI Bluetooth Device + 1002 Python2 WDM Encoder + 2131 AN2131 EZUSB Microcontroller + 2235 AN2235 EZUSB-FX Microcontroller + 2710 EZ-Link Loader (EZLNKLDR.SYS) + 2720 AN2720 USB-USB Bridge + 2727 Xircom PGUNET USB-USB Bridge + 2750 EZ-Link (EZLNKUSB.SYS) + 2810 Cypress ATAPI Bridge + 7777 Bluetooth Device + 9999 AN2131 uninitialized (?) +0548 Tyan Computer Corp. + 1005 EZ Cart II GameBoy Flash Programmer +0549 Pixera Corp. +054a Fujitsu Microelectronics, Inc. +054b New Media Corp. +054c Sony Corp. + 0001 HUB + 0002 Standard HUB + 0010 DSC-S30/S70/S75/F505V/F505/FD92/W1 Cybershot/Mavica Digital Camera + 0014 Nogatech USBVision (SY) + 0022 Storage Adapter V2 (TPP) + 0023 CD Writer + 0024 Mavica CD-1000 Camera + 0025 NW-MS7 Walkman MemoryStick Reader + 002b Portable USB Harddrive V2 + 002c USB Floppy Disk Drive + 002d MSAC-US1 MemoryStick Reader + 002e Sony HandyCam MemoryStick Reader + 0030 Storage Adapter V2 (TPP) + 0032 MemoryStick MSC-U01 Reader + 0035 Network Walkman (E) + 0036 Net MD + 0037 MG Memory Stick Reader/Writer + 0038 Clie PEG-S300/D PalmOS PDA + 0039 Network Walkman (MS) + 003c VAIO-MX LCD Control + 0045 Digital Imaging Video + 0046 Network Walkman + 004a Memory Stick Hi-Fi System + 004b Memory Stick Reader/Writer + 004e DSC-xxx (ptp) + 0056 MG Memory Stick Reader/Writer + 0058 Clie PEG-N7x0C PalmOS PDA Mass Storage + 0066 Clie PEG-N7x0C/PEG-T425 PalmOS PDA Serial + 0067 CMR-PC3 Webcam + 0069 Memorystick MSC-U03 Reader + 006c FeliCa S310 [PaSoRi] + 006d Clie PEG-T425 PDA Mass Storage + 006f Network Walkman (EV) + 0073 Storage CRX1750U + 0075 Net MD + 0076 Storage Adapter ACR-U20 + 007c Net MD + 007f IC Recorder (MS) + 0080 Net MD + 0081 Net MD + 0084 Net MD + 0085 Net MD + 0086 Net MD + 008b Micro Vault 64M Mass Storage + 0095 Sony Clie s360 + 0099 Clie NR70 PDA Mass Storage + 009a Clie NR70 PDA Serial + 00ab Visual Communication Camera (PCGA-UVC10) + 00af DPP-EX Series Digital Photo Printer + 00bf IC Recorder (S) + 00c0 Handycam DCR-30 + 00c6 Net MD + 00c7 Net MD + 00c8 MZ-N710 Minidisc Walkman + 00c9 Net MD + 00ca MZ-DN430 Minidisc Walkman + 00cb MSAC-US20 Memory Stick Reader + 00da Sony Clie nx60 + 00e8 Network Walkman (MS) + 00e9 Handheld + 00eb Net MD + 0101 Net MD + 0103 IC Recorder (ST) + 0105 Micro Vault Hub + 0107 VCC-U01 Visual Communication Camera + 0110 Digital Imaging Video + 0113 Net MD + 0116 IC Recorder (P) + 0144 Clie PEG-TH55 PDA + 0147 Visual Communication Camera (PCGA-UVC11) + 014c Aiwa AM-NX9 Net MD Music Recorder MDLP + 014d Memory Stick Reader/Writer + 0154 Eyetoy Audio Device + 015f IC Recorder (BM) + 0169 Clie PEG-TJ35 PDA Serial + 016a Clie PEG-TJ35 PDA Mass Storage + 016b Mobile HDD + 016d IC Recorder (SX) + 016e DPP-EX50 Digital Photo Printer + 0171 Fingerprint Sensor 3500 + 017e Net MD + 017f Hi-MD WALKMAN + 0180 Net MD + 0181 Hi-MD WALKMAN + 0182 Net MD + 0183 Hi-MD WALKMAN + 0184 Net MD + 0185 Hi-MD WALKMAN + 0186 Net MD + 0187 Hi-MD MZ-NH600 WALKMAN + 0188 Net MD + 018a Net MD + 018b Hi-MD SOUND GATE + 019e Micro Vault 1.0G Mass Storage + 01ad ATRAC HDD PA + 01bb FeliCa S320 [PaSoRi] + 01bd MRW62E Multi-Card Reader/Writer + 01c3 NW-E55 Network Walkman + 01c6 MEMORY P-AUDIO + 01c7 Printing Support + 01c8 PSP Type A + 01c9 PSP Type B + 01d0 DVD+RW External Drive DRU-700A + 01d5 IC RECORDER + 01de VRD-VC10 [Video Capture] + 01e9 Net MD + 01ea Hi-MD WALKMAN + 01ee IC RECORDER + 01fa Sony IC Recorder (P) + 01fb NW-E405 Network Walkman + 020f Device + 0210 ATRAC HDD PA + 0219 Net MD + 021a Hi-MD WALKMAN + 021b Net MD + 021c Hi-MD WALKMAN + 021d Net MD + 0227 Printing Support + 022c Net MD + 022d Hi-MD AUDIO + 0233 ATRAC HDD PA + 0236 Mobile HDD + 023b DVD+RW External Drive DRU-800UL + 023c Net MD + 023d Hi-MD WALKMAN + 0243 MicroVault Flash Drive + 024b Vaio VGX Mouse + 0257 IFU-WLM2 USB Wireless LAN Module (Wireless Mode) + 0258 IFU-WLM2 USB Wireless LAN Module (Memory Mode) + 0259 IC RECORDER + 0267 Tachikoma Device + 0268 Batoh Device / PlayStation 3 Controller + 0269 HDD WALKMAN + 026a HDD WALKMAN + 0271 IC Recorder (P) + 027c NETWORK WALKMAN + 027e SONY Communicator + 027f IC RECORDER + 0286 Net MD + 0287 Hi-MD WALKMAN + 0290 VGP-UVC100 Visual Communication Camera + 029b PRS-500 eBook reader + 02a5 MicroVault Flash Drive + 02af Handycam DCR-DVD306E + 02c4 Device + 02d1 DVD RW + 02d2 PSP Slim + 02e1 FeliCa S330 [PaSoRi] + 02ea PlayStation 3 Memory Card Adaptor + 02f9 DSC-H9 + 0317 WALKMAN + 031a Walkman NWD-B103F + 031e PRS-300/PRS-505 eBook reader + 033e DSC-W120 + 0346 Handycam DCR-SR55E + 0348 HandyCam HDR-TG3E + 0382 Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1) + 03bc Webbie HD - MHS-CM1 + 03d3 DR-BT100CX + 03d5 PlayStation Move motion controller + 03fc WALKMAN [NWZ-E345] + 03fd Walkman NWZ-E443 + 0440 DSC-H55 + 0485 MHS-PM5 HD camcorder + 04cb WALKMAN NWZ-E354 + 1000 Wireless Buzz! Receiver +054d Try Corp. +054e Proside Corp. +054f WYSE Technology Taiwan +0550 Fuji Xerox Co., Ltd + 0002 InkJet Color Printer + 0004 InkJet Color Printer + 0005 InkJet Color Printer +0551 CompuTrend Systems, Inc. +0552 Philips Monitors +0553 STMicroelectronics Imaging Division (VLSI Vision) + 0001 TerraCAM + 0002 CPiA Webcam + 0100 STV0672 Camera + 0140 Video Camera + 0150 CDE CAM 100 + 0151 Digital Blue QX5 Microscope + 0200 Dual-mode Camera0 + 0201 Dual-mode Camera1 + 0202 Aiptek PenCam 1 + 0674 Multi-mode Camera + 0679 NMS Video Camera (Webcam) + 1002 Che-ez! Splash +0554 Dictaphone Corp. +0555 ANAM S&T Co., Ltd +0556 Asahi Kasei Microsystems Co., Ltd + 0001 AK5370 I/F A/D Converter +0557 ATEN International Co., Ltd + 2001 UC-1284 Printer Port + 2002 10Mbps Ethernet [klsi] + 2004 UC-100KM PS/2 Mouse and Keyboard adapter + 2006 UC-1284B Printer Port + 2007 UC-110T 100Mbps Ethernet [pegasus] + 2008 UC-232A Serial Port [pl2303] + 2009 UC-210T Ethernet + 2011 UC-2324 4xSerial Ports [mos7840] + 2202 CS124U Miniview II KVM Switch + 2213 CS682 2-Port USB 2.0 DVI KVM Switch + 2600 IDE Bridge + 2701 CE700A KVM Extender + 4000 DSB-650 10Mbps Ethernet [klsi] + 7000 Hub + 7820 UC-2322 2xSerial Ports [mos7820] +0558 Truevision, Inc. + 1009 GW Instek GDS-1000 Oscilloscope + 100a GW Instek GDS-1000A Oscilloscope + 2009 GW Instek GDS-2000 Oscilloscope +0559 Cadence Design Systems, Inc. +055a Kenwood USA +055b KnowledgeTek, Inc. +055c Proton Electronic Ind. +055d Samsung Electro-Mechanics Co. + 0001 Keyboard + 0bb1 Bluetooth Device + 1030 Optical Wheel Mouse (OMS3CB/OMGB30) + 1031 Optical Wheel Mouse (OMA3CB/OMGI30) + 1040 Mouse HID Device + 1050 E-Mail Optical Wheel Mouse (OMS3CE) + 1080 Optical Wheel Mouse (OMS3CH) + 2020 Floppy Disk Drive + 6780 Keyboard V1 + 6781 Keyboard Mouse + 8001 E.M. Hub + 9000 AnyCam [pwc] + 9001 MPC-C30 AnyCam Premium for Notebooks [pwc] + a000 SWL-2100U + a010 WLAN Adapter(SWL-2300) + a011 Boot Device + a012 WLAN Adapter(SWL-2300) + a013 WLAN Adapter(SWL-2350) + a230 Boot Device + b000 11Mbps WLAN Mini Adapter + b230 Netopia 802.11b WLAN Adapter + b231 LG Wireless LAN 11b Adapter +055e CTX Opto-Electronics Corp. +055f Mustek Systems, Inc. + 0001 ScanExpress 1200 CU + 0002 ScanExpress 600 CU + 0003 ScanExpress 1200 USB + 0006 ScanExpress 1200 UB + 0007 ScanExpress 1200 USB Plus + 0008 ScanExpress 1200 CU Plus + 0010 BearPaw 1200F + 0210 ScanExpress A3 USB + 0218 BearPaw 2400 TA + 0219 BearPaw 2400 TA Plus + 021a BearPaw 2448 TA Plus + 021b BearPaw 1200 CU Plus + 021c BearPaw 1200 CU Plus + 021d BearPaw 2400 CU Plus + 021e BearPaw 1200 TA/CS + 021f SNAPSCAN e22 + 0400 BearPaw 2400 TA Pro + 0401 P 3600 A3 Pro + 0408 BearPaw 2448 CU Pro + 0409 BearPaw 2448 TA Pro + 0873 ScanExpress 600 USB + 1000 BearPaw 4800 TA Pro + a350 gSmart 350 Camera + a800 MDC 800 Camera + b500 MDC 3000 Camera + c005 PC CAM 300A + c200 gSmart 300 + c211 Kowa Bs888e Microcamera + c220 gSmart mini + c230 Digicam 330K + c232 MDC3500 Camera + c360 DV 4000 Camera + c420 gSmart mini 2 Camera + c430 gSmart LCD 2 Camera + c440 DV 3000 Camera + c520 gSmart mini 3 Camera + c530 gSmart LCD 2 Camera + c540 gSmart D30 Camera + c630 MDC 4000 Camera + c631 MDC 4000 Camera + c650 MDC 5500Z Camera + d001 WCam 300 + d003 WCam 300A + d004 WCam 300AN +0560 Interface Corp. +0561 Oasis Design, Inc. +0562 Telex Communications, Inc. + 0001 Enhanced Microphone + 0002 Telex Microphone +0563 Immersion Corp. +0564 Kodak Digital Product Center, Japan Ltd. (formerly Chinon Industries Inc.) +0565 Peracom Networks, Inc. + 0001 Serial Port [etek] + 0002 Enet Ethernet [klsi] + 0003 @Home Networks Ethernet [klsi] + 0005 Enet2 Ethernet [klsi] + 0041 Peracom Remote NDIS Ethernet Adapter +0566 Monterey International Corp. + 0110 ViewMate Desktop Mouse CC2201 + 1001 ViewMate Desktop Mouse CC2201 + 1002 ViewMate Desktop Mouse CC2201 + 1003 ViewMate Desktop Mouse CC2201 + 1004 ViewMate Desktop Mouse CC2201 + 1005 ViewMate Desktop Mouse CC2201 + 1006 ViewMate Desktop Mouse CC2201 + 1007 ViewMate Desktop Mouse CC2201 + 2800 MIC K/B + 2801 MIC K/B Mouse + 2802 Kbd Hub + 3004 Genius KB-29E +0567 Xyratex International, Ltd +0568 Quartz Ingenierie +0569 SegaSoft +056a Wacom Co., Ltd + 0000 PenPartner + 0001 PenPartner 4x5 + 0002 PenPartner 6x8 + 0003 Cintiq Partner + 0010 Graphire + 0011 Graphire 2 4x5 + 0012 Graphire 2 5x7 + 0013 Graphire 3 4x5 + 0014 Graphire 3 6x8 + 0015 Graphire 4 4x5 + 0016 Graphire 4 6x8 + 0017 Bamboo Fun 4x5 + 0018 Bamboo Fun 6x8 + 0019 Bamboo One Medium + 0020 Intuos 4x5 + 0021 Intuos 6x8 + 0022 Intuos 9x12 + 0023 Intuos 12x12 + 0024 Intuos 12x18 + 0030 PL400 + 0031 PL500 + 0032 PL600 + 0033 PL600SX + 0034 PL550 + 0035 PL800 + 0037 PL700 + 0038 PL510 + 0039 DTU-710 + 003f Cintiq 21UX + 0041 Intuos2 4x5 + 0042 Intuos2 6x8 + 0043 Intuos2 9x12 + 0044 Intuos2 12x12 + 0045 Intuos2 12x18 + 0047 Intuos2 6x8 + 0060 Volito + 0061 PenStation2 + 0062 Volito2 4x5 + 0063 Volito2 2x3 + 0064 PenPartner2 + 0065 Bamboo + 0069 Bamboo One + 0081 Graphire Wireless 6x8 + 0090 TPC90 + 0093 TPC93 + 009a TPC9A + 00b0 Intuos3 4x5 + 00b1 Intuos3 6x18 + 00b2 Intuos3 9x12 + 00b3 Intuos3 12x12 + 00b4 Intuos3 12x19 + 00b5 Intuos3 6x11 (PTZ-631W) + 00b7 Intuos3 4x6 + 00b8 Intuos4 4x6 + 00b9 Intuos4 6x9 + 00ba Intuos4 8x13 + 00bb Intuos4 12x19 + 00c0 DTF-521 + 00c4 DTF-720 + 00c5 Cintiq 20WSX + 00c6 Cintiq 12WX + 00c7 DTU-1931 + 00d1 Bamboo Pen & Touch (CTH-460-DE) + 00d3 Bamboo Fun (CTH-661) + 00db Bamboo Fun (CTH-661SE-NL) + 0400 PenPartner 4x5 + 4850 PenPartner 6x8 +056b Decicon, Inc. +056c eTEK Labs + 0006 KwikLink Host-Host Connector + 8007 Kwik232 Serial Port + 8100 KwikLink Host-Host Connector + 8101 KwikLink USB-USB Bridge +056d EIZO Corp. + 0000 Hub + 0001 Monitor + 0002 HID Monitor Controls + 0003 Device Bay Controller +056e Elecom Co., Ltd + 0002 29UO Mouse + 200c LD-USB/TX + 4002 Laneed 100Mbps Ethernet LD-USB/TX [pegasus] + 4005 LD-USBL/TX + 400b LD-USB/TX + 4010 LD-USB20 + 5003 UC-SGT + 5004 UC-SGT + abc1 LD-USB/TX +056f Korea Data Systems Co., Ltd + cd00 CDM-751 CD organizer +0570 Epson America +0571 Interex, Inc. + 0002 echoFX InterView Lite +0572 Conexant Systems (Rockwell), Inc. + 0001 Ezcam II Webcam + 0002 Ezcam II Webcam + 0040 Wondereye CP-115 Webcam + 0041 Webcam Notebook + 0042 Webcam Notebook + 1232 V.90 modem + 1234 Typhoon Redfun Modem V90 56k + 1252 HCF V90 Data Fax Voice Modem + 1253 Zoom V.92 Faxmodem + 1300 SoftK56 Data Fax Voice CARP + 1301 Modem Enumerator + 2000 SoftGate 802.11 Adapter + 2002 SoftGate 802.11 Adapter + 8390 WinFast PalmTop/Novo TV Video + 8392 WinFast PalmTop/Novo TV Video + cafe AccessRunner ADSL Modem + cb00 ADSL Modem + cb01 ADSL Modem + cb06 StarModem Network Interface +0573 Zoran Co. Personal Media Division (Nogatech) + 0003 USBGear USBG-V1 + 0400 D-Link V100 + 0600 Dazzle USBVision (1006) + 1300 leadtek USBVision (1006) + 2000 X10 va10a Wireless Camera + 2001 Dazzle EmMe (2001) + 2101 Zoran Co. PMD (Nogatech) AV-grabber Manhattan + 2d00 Osprey 50 + 2d01 Hauppauge USB-Live Model 600 + 3000 Dazzle MicroCam (NTSC) + 3001 Dazzle MicroCam (PAL) + 4000 Nogatech TV! (NTSC) + 4001 Nogatech TV! (PAL) + 4002 Nogatech TV! (PAL-I-) + 4003 Nogatech TV! (MF-) + 4008 Nogatech TV! (NTSC) (T) + 4009 Nogatech TV! (PAL) (T) + 4010 Nogatech TV! (NTSC) (A) + 4100 USB-TV FM (NTSC) + 4110 PNY USB-TV (NTSC) FM + 4400 Nogatech TV! Pro (NTSC) + 4401 Nogatech TV! Pro (PAL) + 4450 PixelView PlayTv-USB PRO (PAL) FM + 4451 Nogatech TV! Pro (PAL+) + 4452 Nogatech TV! Pro (PAL-I+) + 4500 Nogatech TV! Pro (NTSC) + 4501 Nogatech TV! Pro (PAL) + 4550 ZTV ZT-721 2.4GHz A/V Receiver + 4551 Dazzle TV! Pro Audio (P+) + 4d00 Hauppauge WinTV-USB USA + 4d01 Hauppauge WinTV-USB + 4d02 Hauppauge WinTV-USB UK + 4d03 Hauppauge WinTV-USB France + 4d04 Hauppauge WinTV (PAL D/K) + 4d10 Hauppauge WinTV-USB with FM USA radio + 4d11 Hauppauge WinTV-USB (PAL) with FM radio + 4d12 Hauppauge WinTV-USB UK with FM Radio + 4d14 Hauppauge WinTV (PAL D/K FM) + 4d20 Hauppauge WinTV-USB II (PAL) with FM radio + 4d21 Hauppauge WinTV-USB II (PAL) + 4d22 Hauppauge WinTV-USB II (PAL) Model 566 + 4d23 Hauppauge WinTV-USB France 4D23 + 4d24 Hauppauge WinTV Pro (PAL D/K) + 4d25 Hauppauge WinTV-USB Model 40209 rev B234 + 4d26 Hauppauge WinTV-USB Model 40209 rev B243 + 4d27 Hauppauge WinTV-USB Model 40204 Rev B281 + 4d28 Hauppauge WinTV-USB Model 40204 rev B283 + 4d29 Hauppauge WinTV-USB Model 40205 rev B298 + 4d2a Hauppague WinTV-USB Model 602 Rev B285 + 4d2b Hauppague WinTV-USB Model 602 Rev B282 + 4d2c Hauppauge WinTV Pro (PAL/SECAM) + 4d30 Hauppauge WinTV-USB FM Model 40211 Rev B123 + 4d31 Hauppauge WinTV-USB III (PAL) with FM radio Model 568 + 4d32 Hauppauge WinTV-USB III (PAL) FM Model 573 + 4d34 Hauppauge WinTV Pro (PAL D/K FM) + 4d35 Hauppauge WinTV-USB III (PAL) FM Model 597 + 4d36 Hauppauge WinTV Pro (PAL B/G FM) + 4d37 Hauppauge WinTV-USB Model 40219 rev E189 + 4d38 Hauppauge WinTV Pro (NTSC FM) +0574 City University of Hong Kong +0575 Philips Creative Display Solutions +0576 BAFO/Quality Computer Accessories +0577 ELSA +0578 Intrinsix Corp. +0579 GVC Corp. +057a Samsung Electronics America +057b Y-E Data, Inc. + 0000 FlashBuster-U Floppy + 0001 Tri-Media Reader Floppy + 0006 Tri-Media Reader Card Reader + 0010 Memory Stick Reader Writer + 0020 HEXA Media Drive 6-in-1 Card Reader Writer + 0030 Memory Card Viewer (TV) +057c AVM GmbH + 0b00 ISDN-Controller B1 Family + 0c00 ISDN-Controller FRITZ!Card + 1000 ISDN-Controller FRITZ!Card v2.0 + 1900 ISDN-Controller FRITZ!Card v2.1 + 2000 ISDN-Connector FRITZ!X + 2200 BlueFRITZ! + 2300 Teledat X130 DSL + 2800 ISDN-Connector TA + 3200 Teledat X130 DSL + 3500 FRITZ!Card DSL SL + 3701 FRITZ!Box SL + 3702 FRITZ!Box + 3800 BlueFRITZ! Bluetooth Stick + 3a00 FRITZ!Box Fon + 3c00 FRITZ!Box WLAN + 3d00 Fritz!Box + 3e01 FRITZ!Box (Annex A) + 4001 FRITZ!Box Fon (Annex A) + 4101 FRITZ!Box WLAN (Annex A) + 4201 FRITZ!Box Fon WLAN (Annex A) + 4601 Eumex 5520PC (WinXP/2000) + 4602 Eumex 400 (WinXP/2000) + 4701 AVM FRITZ!Box Fon ata + 5401 Eumex 300 IP + 5601 AVM Fritz!WLAN [Texas Instruments TNETW1450] + 6201 AVM Fritz!WLAN v1.1 [Texas Instruments TNETW1450] + 62ff AVM Fritz!WLAN USB (in CD-ROM-mode) + 8401 AVM Fritz!WLAN N [Atheros AR9001U] + 8402 AVM Fritz!WLAN N 2.4 [Atheros AR9001U] + 84ff AVM Fritz!WLAN USB N (in CD-ROM-mode) +057d Shark Multimedia, Inc. +057e Nintendo Co., Ltd + 0306 Wii Remote Controller RVL-003 +057f QuickShot, Ltd + 6238 USB StrikePad +0580 Denron, Inc. +0581 Racal Data Group +0582 Roland Corp. + 0000 UA-100 + 0002 UM-4/MPU-64 MIDI Interface + 0003 SoundCanvas SC-8850 + 0004 U-8 + 0005 Edirol UM-2 MIDI Adapter + 0007 SoundCanvas SC-8820 + 0008 PC-300 + 0009 Edirol UM-1SX MIDI Adapter + 000b SK-500 + 000c SC-D70 + 0010 EDIROL UA-5 + 0011 Edirol UA-5 Sound Capture + 0012 XV-5050 + 0013 XV-5050 + 0014 EDIROL UM-880 MIDI I/F (native) + 0015 EDIROL UM-880 MIDI I/F (generic) + 0016 EDIROL SD-90 + 0017 EDIROL SD-90 + 0018 UA-1A + 001b MMP-2 + 001c MMP-2 + 001d V-SYNTH + 001e V-SYNTH + 0023 EDIROL UM-550 + 0024 EDIROL UM-550 + 0025 EDIROL UA-20 + 0026 EDIROL UA-20 + 0027 EDIROL SD-20 + 0028 EDIROL SD-20 + 0029 EDIROL SD-80 + 002a EDIROL SD-80 + 002b EDIROL UA-700 + 002c EDIROL UA-700 + 002d XV-2020 Synthesizer + 002e XV-2020 Synthesizer + 002f VariOS + 0030 VariOS + 0033 EDIROL PCR + 0034 EDIROL PCR + 0037 Digital Piano + 0038 Digital Piano + 003b BOSS GS-10 + 003c BOSS GS-10 + 0040 GI-20 + 0041 GI-20 + 0042 RS-70 + 0043 RS-70 + 0044 EDIROL UA-1000 + 0047 EDIROL UR-80 WAVE + 0048 EDIROL UR-80 MIDI + 0049 EDIROL UR-80 WAVE + 004a EDIROL UR-80 MIDI + 004b EDIROL M-100FX + 004c EDIROL PCR-A WAVE + 004d EDIROL PCR-A MIDI + 004e EDIROL PCR-A WAVE + 004f EDIROL PCR-A MIDI + 0050 EDIROL UA-3FX + 0052 EDIROL UM-1SX + 0054 Digital Piano + 0060 EXR Series + 0064 EDIROL PCR-1 WAVE + 0065 EDIROL PCR-1 MIDI + 0066 EDIROL PCR-1 WAVE + 0067 EDIROL PCR-1 MIDI + 006a SP-606 + 006b SP-606 + 006d FANTOM-X + 006e FANTOM-X + 0073 EDIROL UA-25 + 0074 EDIROL UA-25 + 0075 BOSS DR-880 + 0076 BOSS DR-880 + 007a RD + 007b RD + 007d EDIROL UA-101 + 0080 G-70 + 0081 G-70 + 008b EDIROL PC-50 + 008c EDIROL PC-50 + 008d EDIROL UA-101 USB1 + 0092 EDIROL PC-80 WAVE + 0093 EDIROL PC-80 MIDI + 0096 EDIROL UA-1EX + 009a EDIROL UM-3EX + 009d EDIROL UM-1 + 00a2 Digital Piano + 00a3 EDIROL UA-4FX + 00a6 Juno-G + 00ad SH-201 + 00c4 EDIROL M-16DX + 00db BOSS GT-10 Guitar Effects Processor + 00de Fantom-G7 + 00e6 EDIROL UA-25EX (Advanced mode) + 00e7 EDIROL UA-25EX + 010f A-PRO + 0110 A-PRO +0583 Padix Co., Ltd (Rockfire) + 0001 4 Axis 12 button +POV + 0002 4 Axis 12 button +POV + 2030 RM-203 USB Nest [mode 1] + 2031 RM-203 USB Nest [mode 2] + 2032 RM-203 USB Nest [mode 3] + 2033 RM-203 USB Nest [mode 4] + 2050 PX-205 PSX Bridge + 205f PSX/USB converter + 206f USB, 2-axis 8-button gamepad + 3050 QF-305u Gamepad + 3379 Rockfire X-Force + 337f Rockfire USB RacingStar Vibra + 509f USB,4-Axis,12-Button with POV + 5259 Rockfire USB SkyShuttle Vibra + 525f USB Vibration Pad + 5308 USB Wireless VibrationPad + 5359 Rockfire USB SkyShuttle Pro + 535f USB,real VibrationPad + 5659 Rockfire USB SkyShuttle Vibra + 565f USB VibrationPad + 6009 Revenger + 600f USB,GameBoard II + 6258 USB, 4-axis, 6-button joystick w/view finder + 6889 Windstorm Pro + 688f QF-688uv Windstorm Pro Joystick + 7070 QF-707u Bazooka Joystick + a000 MaxFire G-08XU Gamepad + a015 4-Axis,16-Button with POV + a019 USB, Vibration ,4-axis, 8-button joystick w/view finder + a020 USB,4-Axis,10-Button with POV + a021 USB,4-Axis,12-Button with POV + a022 USB,4-Axis,14-Button with POV + a023 USB,4-Axis,16-Button with POV + a024 4axis,12button vibrition audio gamepad + a025 4axis,12button vibrition audio gamepad + a130 USB Wireless 2.4GHz Gamepad + a131 USB Wireless 2.4GHz Joystick + a132 USB Wireless 2.4GHz Wheelpad + a133 USB Wireless 2.4GHz Wheel&Gamepad + a202 ForceFeedbackWheel + a209 MetalStrike FF + b000 USB,4-Axis,12-Button with POV + b001 USB,4-Axis,12-Button with POV + b002 Vibration,12-Button USB Wheel + b005 USB,12-Button Wheel + b008 USB Wireless 2.4GHz Wheel + b009 USB,12-Button Wheel + b00a PSX/USB converter + b00b PSX/USB converter + b00c PSX/USB converter + b00d PSX/USB converter + b00e 4-Axis,12-Button with POV + b00f USB,5-Axis,10-Button with POV + b010 MetalStrike Pro + b012 Wireless MetalStrike + b013 USB,Wiress 2.4GHZ Joystick + b016 USB,5-Axis,10-Button with POV + b018 TW6 Wheel + ff60 USB Wireless VibrationPad +0584 RATOC System, Inc. + 0008 Fujifilm MemoryCard ReaderWriter + 0220 U2SCX SCSI Converter + b000 REX-USB60 +0585 FlashPoint Technology, Inc. + 0001 Digital Camera + 0002 Digital Camera + 0003 Digital Camera + 0004 Digital Camera + 0005 Digital Camera + 0006 Digital Camera + 0007 Digital Camera + 0008 Digital Camera + 0009 Digital Camera + 000a Digital Camera + 000b Digital Camera + 000c Digital Camera + 000d Digital Camera + 000e Digital Camera + 000f Digital Camera +0586 ZyXEL Communications Corp. + 0025 802.11b/g/n USB Wireless Network Adapter + 0102 omni.net II ISDN TA + 1000 Omni NET Modem / ISDN TA + 1500 Omni 56K Plus + 2011 Scorpion-980N keyboard + 3304 LAN Modem + 3309 ADSL Modem Prestige 600 series + 330a ADSL Modem Interface + 330e USB Broadband ADSL Modem Rev 1.10 + 3400 ZyAIR B-220 IEEE 802.11b Adapter + 3401 ZyAIR G-220 802.11bg + 3402 ZyAIR G-220F 802.11bg + 3407 G-200 v2 802.11bg + 3409 AG-225H 802.11bg + 340a M-202 802.11bg + 340f G-220 v2 802.11bg + 3410 ZyAIR G-202 802.11bg + 3412 802.11bg + 3413 ZyAIR AG-225H v2 802.11bg + 3415 G-210H 802.11g Wireless Adapter + 3416 NWD-210N 802.11b/g/n-draft wireless adapter + 3417 NWD271N 802.11n Wireless Adapter [Atheros AR9001U-(2)NG] + 3418 NWD211AN 802.11abgn Wireless Adapter [Ralink RT2870] + 341a NWD-270N Wireless N-lite USB Adapter +0587 America Kotobuki Electronics Industries, Inc. +0588 Sapien Design +0589 Victron +058a Nohau Corp. +058b Infineon Technologies +058c In Focus Systems + 0007 Flash + 0008 LP130 + 000a LP530 + 0010 Projector + 0011 Projector + 0012 Projector + 0013 Projector + 0014 Projector + 0015 Projector + 0016 Projector + 0017 Projector + 0018 Projector + 0019 Projector + 001a Projector + 001b Projector + 001c Projector + 001d Projector + 001e Projector + 001f Projector +058d Micrel Semiconductor +058e Tripath Technology, Inc. +058f Alcor Micro Corp. + 1234 Flash Drive + 2412 SCard R/W CSR-145 + 2802 Monterey Keyboard + 5492 Hub + 6232 Hi-Speed 16-in-1 Flash Card Reader/Writer + 6254 USB Hub + 6331 SD/MMC/MS Card Reader + 6332 Multi-Function Card Reader + 6335 SD/MMC Card Reader + 6360 Multimedia Card Reader + 6361 Multimedia Card Reader + 6362 Flash Card Reader/Writer + 6366 Multi Flash Reader + 6377 Multimedia Card Reader + 6386 Memory Card + 6387 Transcend JetFlash Flash Drive + 6390 USB 2.0-IDE bridge + 9213 MacAlly Kbd Hub + 9215 AU9814 Hub + 9254 Hub + 9310 Mass Storage (UID4/5A & UID7A) + 9320 Micro Storage Driver for Win98 + 9321 Micro Storage Driver for Win98 + 9330 SD Reader + 9331 Micro Storage Driver for Win98 + 9340 Delkin eFilm Reader-32 + 9350 Delkin eFilm Reader-32 + 9360 8-in-1 Media Card Reader + 9361 Multimedia Card Reader + 9368 Multimedia Card Reader + 9380 Flash Drive + 9382 Acer/Sweex Flash drive + 9384 qdi U2Disk T209M + 9410 Keyboard + 9472 Keyboard Hub + 9510 ChunghwaTL USB02 Smartcard Reader + 9520 EMV Certified Smart Card Reader + 9720 USB-Serial Adapter +0590 Omron Corp. + 0004 Cable Modem + 000b MR56SVS + 0028 HJ-720IT Pedometer / Blood Pressure Monitor HEM-7080IT-E +0591 Questra Consulting +0592 Powerware Corp. + 0002 UPS (X-Slot) +0593 Incite +0594 Princeton Graphic Systems +0595 Zoran Microelectronics, Ltd + 1001 Digitrex DSC-1300/DSC-2100 (mass storage mode) + 2002 DIGITAL STILL CAMERA 6M 4X + 4343 Digital Camera EX-20 DSC +0596 MicroTouch Systems, Inc. + 0001 Touchscreen + 0002 Touch Screen Controller + 0500 PCT Multitouch HID Controller +0597 Trisignal Communications +0598 Niigata Canotec Co., Inc. +0599 Brilliance Semiconductor, Inc. +059a Spectrum Signal Processing, Inc. +059b Iomega Corp. + 0001 Zip 100 (Type 1) + 000b Zip 100 (Type 2) + 0021 Win98 Disk Controller + 0030 Zip 250 (Ver 1) + 0031 Zip 100 (Type 3) + 0032 Zip 250 (Ver 2) + 0034 Zip 100 Driver + 0037 Zip 750 MB + 0040 SCSI Bridge + 0042 Rev 70 GB + 0050 Zip CD 650 Writer + 0053 CDRW55292EXT CD-RW External Drive + 0057 Mass Storage Device + 005d Mass Storage Device + 005f CDRW64892EXT3-C CD-RW 52x24x52x External Drive + 0060 PCMCIA PocketZip Dock + 0061 Varo PocketZip 40 MP3 Player + 006d HipZip MP3 Player + 007c Ultra Max USB/1394 + 007e Mini 256MB/512MB Flash Drive [IOM2D5] + 00db FotoShow Zip 250 Driver + 0150 Mass Storage Device + 015d Super DVD Writer + 0173 Hi-Speed USB-to-IDE Bridge Controller + 0174 Hi-Speed USB-to-IDE Bridge Controller + 0176 Hi-Speed USB-to-IDE Bridge Controller + 0177 Hi-Speed USB-to-IDE Bridge Controller + 0178 Hi-Speed USB-to-IDE Bridge Controller + 0179 Hi-Speed USB-to-IDE Bridge Controller + 017a HDD + 017b HDD/1394A + 017c HDD/1394B + 0251 Optical + 0252 Optical + 027a LPHD250-U [Portable Hard Drive Silver Series 250 Go] + 0470 Prestige Portable Hard Drive + 047a Select Portable Hard Drive + 0579 eGo Portable Hard Drive + 1052 DVD+RW External Drive +059c A-Trend Technology Co., Ltd +059d Advanced Input Devices +059e Intelligent Instrumentation +059f LaCie, Ltd + 0201 StudioDrive USB2 + 0202 StudioDrive USB2 + 0203 StudioDrive USB2 + 0211 PocketDrive + 0212 PocketDrive + 0213 PocketDrive USB2 + 0323 LaCie d2 Drive USB2 + 0421 Big Disk G465 + 0641 Mobile Hard Drive + 1010 Desktop Hard Drive + 1019 Desktop Hard Drive + 102a Rikiki Hard Drive + a601 HardDrive + a602 CD R/W +05a0 Vetronix Corp. +05a1 USC Corp. +05a2 Fuji Film Microdevices Co., Ltd +05a3 ARC International + 8388 Marvell 88W8388 802.11a/b/g WLAN +05a4 Ortek Technology, Inc. + 2000 WKB-2000 Wireless Keyboard with Touchpad + 9720 Keyboard Mouse + 9722 Keyboard + 9731 MCK-600W/MCK-800USB Keyboard + 9783 Wireless Keypad +05a5 Sampo Technology Corp. +05a6 Cisco Systems, Inc. + 0001 CVA124 Cable Voice Adapter (WDM) + 0002 CVA122 Cable Voice Adapter (WDM) + 0003 CVA124E Cable Voice Adapter (WDM) + 0004 CVA122E Cable Voice Adapter (WDM) +05a7 Bose Corp. +05a8 Spacetec IMC Corp. +05a9 OmniVision Technologies, Inc. + 0511 OV511 Webcam + 0518 OV518 Webcam + 0519 OV519 Microphone + 1550 VEHO Filmscanner + 2640 OV2640 Webcam + 2643 Monitor Webcam + 264b Monitor Webcam + 2800 SuperCAM + 4519 Webcam Classic + 7670 OV7670 Webcam + 8519 OV519 Webcam + a511 OV511+ Webcam + a518 D-Link DSB-C310 Webcam +05aa Utilux South China, Ltd +05ab In-System Design + 0002 Parallel Port + 0030 Storage Adapter V2 (TPP) + 0031 ATA Bridge + 0060 USB 2.0 ATA Bridge + 0061 Storage Adapter V3 (TPP-I) + 0101 Storage Adapter (TPP) + 0130 Compact Flash and Microdrive Reader (TPP) + 0200 USS725 ATA Bridge + 0201 Storage Adapter (TPP) + 0202 ATA Bridge + 0300 Portable Hard Drive (TPP) + 0301 Portable Hard Drive V2 + 0350 Portable Hard Drive (TPP) + 0351 Portable Hard Drive V2 + 081a ATA Bridge + 0cda ATA Bridge for CD-R/RW + 1001 BAYI Printer Class Support + 5700 Storage Adapter V2 (TPP) + 5701 USB Storage Adapter V2 + 5901 Smart Board (TPP) + 5a01 ATI Storage Adapter (TPP) + 5d01 DataBook Adapter (TPP) +05ac Apple, Inc. + 0201 USB Keyboard [Alps or Logitech, M2452] + 0202 Keyboard [ALPS] + 0205 Extended Keyboard [Mitsumi] + 0206 Extended Keyboard [Mitsumi] + 020b Pro Keyboard [Mitsumi, A1048/US layout] + 020c Extended Keyboard [Mitsumi] + 020d Pro Keyboard [Mitsumi, A1048/JIS layout] + 020e Internal Keyboard/Trackpad (ANSI) + 020f Internal Keyboard/Trackpad (ISO) + 0214 Internal Keyboard/Trackpad (ANSI) + 0215 Internal Keyboard/Trackpad (ISO) + 0216 Internal Keyboard/Trackpad (JIS) + 0217 Internal Keyboard/Trackpad (ANSI) + 0218 Internal Keyboard/Trackpad (ISO) + 0219 Internal Keyboard/Trackpad (JIS) + 021a Internal Keyboard/Trackpad (ANSI) + 021b Internal Keyboard/Trackpad (ISO) + 021c Internal Keyboard/Trackpad (JIS) + 021d Aluminum Mini Keyboard (ANSI) + 021e Aluminum Mini Keyboard (ISO) + 021f Aluminum Mini Keyboard (JIS) + 0220 Aluminum Keyboard (ANSI) + 0221 Aluminum Keyboard (ISO) + 0222 Aluminum Keyboard (JIS) + 0223 Internal Keyboard/Trackpad (ANSI) + 0224 Internal Keyboard/Trackpad (ISO) + 0225 Internal Keyboard/Trackpad (JIS) + 0229 Internal Keyboard/Trackpad (MacBook Pro) (ANSI) + 022a Internal Keyboard/Trackpad (MacBook Pro) (ISO) + 022b Internal Keyboard/Trackpad (MacBook Pro) (JIS) + 0230 Internal Keyboard/Trackpad (MacBook Pro 4,1) (ANSI) + 0231 Internal Keyboard/Trackpad (MacBook Pro 4,1) (ISO) + 0232 Internal Keyboard/Trackpad (MacBook Pro 4,1) (JIS) + 0236 Internal Keyboard/Trackpad (ANSI) + 0237 Internal Keyboard/Trackpad (ISO) + 0238 Internal Keyboard/Trackpad (JIS) + 0301 USB Mouse [Mitsumi, M4848] + 0302 Optical Mouse [Fujitsu] + 0304 Optical USB Mouse [Mitsumi] + 0306 Optical USB Mouse [Fujitsu] + 030a Internal Trackpad + 030b Internal Trackpad + 030e Wireless Trackpad [Magic Trackpad] + 1000 Bluetooth HCI MacBookPro (HID mode) + 1001 Keyboard Hub [ALPS] + 1002 Extended Keyboard Hub [Mitsumi] + 1003 Hub in Pro Keyboard [Mitsumi, A1048] + 1006 Hub in Aluminum Keyboard + 1101 Speakers + 1201 3G iPod + 1202 iPod 2G + 1203 iPod 4.Gen Grayscale 40G + 1204 iPod [Photo] + 1205 iPod Mini 1.Gen/2.Gen + 1206 iPod '06' + 1207 iPod '07' + 1208 iPod '08' + 1209 iPod Video + 120a iPod Nano + 1223 iPod Classic/Nano 3.Gen (DFU mode) + 1224 iPod Nano 3.Gen (DFU mode) + 1225 iPod Nano 4.Gen (DFU mode) + 1227 Mobile Device (DFU Mode) + 1231 iPod Nano 5.Gen (DFU mode) + 1240 iPod Nano 2.Gen (DFU mode) + 1242 iPod Nano 3.Gen (WTF mode) + 1243 iPod Nano 4.Gen (WTF mode) + 1245 iPod Classic 3.Gen (WTF mode) + 1246 iPod Nano 5.Gen (WTF mode) + 1255 iPod Nano 4.Gen (DFU mode) + 1260 iPod Nano 2.Gen + 1261 iPod Classic + 1262 iPod Nano 3.Gen + 1263 iPod Nano 4.Gen + 1265 iPod Nano 5.Gen + 1266 iPod Nano 6.Gen + 1281 Apple Mobile Device [Recovery Mode] + 1290 iPhone + 1291 iPod Touch 1.Gen + 1292 iPhone 3G + 1293 iPod Touch 2.Gen + 1294 iPhone 3GS + 1296 iPod Touch 3.Gen (8GB) + 1297 iPhone 4 + 1299 iPod Touch 3.Gen + 129a iPad + 129e iPod Touch 4.Gen + 1300 iPod Shuffle + 1301 iPod Shuffle 2.Gen + 1302 iPod Shuffle 3.Gen + 1303 iPod Shuffle 4.Gen + 1401 Modem + 8202 HCF V.90 Data/Fax Modem + 8203 Bluetooth HCI + 8204 Bluetooth HCI [Bluetooth 2.0 + EDR, built-in] + 8205 Bluetooth HCI + 8206 Bluetooth HCI + 820f Bluetooth HCI + 8215 Bluetooth USB Host Controller + 8216 Bluetooth USB Host Controller + 8217 Bluetooth USB Host Controller + 8218 Bluetooth Host Controller + 8240 IR Receiver [built-in] + 8241 IR Receiver [built-in] + 8242 IR Receiver [built-in] + 8300 Built-in iSight (no firmware loaded) + 8403 Internal Memory Card Reader + 8501 Built-in iSight [Micron] + 8502 Built-in iSight + 8505 Built-in iSight + 8507 Built-in iSight + 912f Hub in 30" Cinema Display + 9221 30" Cinema Display + ffff Bluetooth in DFU mode - Driver +05ad Y.C. Cable U.S.A., Inc. +05ae Synopsys, Inc. +05af Jing-Mold Enterprise Co., Ltd + 0809 Wireless Keyboard and Mouse + 0821 IDE to + 3062 Cordless Keyboard + 9167 KB 9151B - 678 + 9267 KB 9251B - 678 Mouse +05b0 Fountain Technologies, Inc. +05b1 First International Computer, Inc. + 1389 Bluetooth Wireless Adapter +05b4 LG Semicon Co., Ltd + 4857 M-Any DAH-210 + 6001 Digisette DUO-MP3 AR-100 +05b5 Dialogic Corp. +05b6 Proxima Corp. +05b7 Medianix Semiconductor, Inc. +05b8 Agiler, Inc. + 3002 Scroll Mouse +05b9 Philips Research Laboratories +05ba DigitalPersona, Inc. + 0007 Fingerprint Reader + 0008 Fingerprint Reader + 000a Fingerprint Reader +05bb Grey Cell Systems +05bc 3G Green Green Globe Co., Ltd + 0004 Trackball +05bd RAFI GmbH & Co. KG +05be Tyco Electronics (Raychem) +05bf S & S Research +05c0 Keil Software +05c1 Kawasaki Microelectronics, Inc. +05c2 Media Phonics (Suisse) S.A. +05c5 Digi International, Inc. + 0002 AccelePort USB 2 + 0004 AccelePort USB 4 + 0008 AccelePort USB 8 +05c6 Qualcomm, Inc. + 0114 Select RW-200 CDMA Wireless Modem + 1000 Mass Storage Device + 3100 CDMA Wireless Modem/Phone + 3196 CDMA Wireless Modem + 3197 CDMA Wireless Modem/Phone + 6000 Siemens SG75 + 6503 AnyData APE-540H + 6613 Onda H600/N501HS ZTE MF330 + 9000 SIMCom SIM5218 modem + 9001 Gobi Wireless Modem + 9002 Gobi Wireless Modem + 9008 Gobi Wireless Modem (QDL mode) + 9201 Gobi Wireless Modem (QDL mode) + 9202 Gobi Wireless Modem + 9203 Gobi Wireless Modem + 9211 Acer Gobi Wireless Modem (QDL mode) + 9212 Acer Gobi Wireless Modem + 9214 Acer Gobi 2000 Wireless Modem (QDL mode) + 9215 Acer Gobi 2000 Wireless Modem + 9221 Gobi Wireless Modem (QDL mode) + 9222 Gobi Wireless Modem + 9224 Sony Gobi 2000 Wireless Modem (QDL mode) + 9225 Sony Gobi 2000 Wireless Modem + 9231 Gobi Wireless Modem (QDL mode) + 9234 Top Global Gobi 2000 Wireless Modem (QDL mode) + 9235 Top Global Gobi 2000 Wireless Modem + 9244 Samsung Gobi 2000 Wireless Modem (QDL mode) + 9245 Samsung Gobi 2000 Wireless Modem + 9264 Asus Gobi 2000 Wireless Modem (QDL mode) + 9265 Asus Gobi 2000 Wireless Modem + 9274 iRex Technologies Gobi 2000 Wireless Modem (QDL mode) + 9275 iRex Technologies Gobi 2000 Wireless Modem +05c7 Qtronix Corp. + 0113 PC Line Mouse + 1001 Lynx Mouse + 2001 Keyboard + 2011 SCorpius Keyboard + 6001 Ten-Keypad +05c8 Cheng Uei Precision Industry Co., Ltd (Foxlink) + 0103 FO13FF-65 PC-CAM + 0403 Webcam +05c9 Semtech Corp. +05ca Ricoh Co., Ltd + 0101 RDC-5300 Camera + 0325 Caplio GX (ptp) + 032d Caplio GX 8 (ptp) + 032f Caplio R3 (ptp) + 03a1 IS200e + 0403 Printing Support + 0405 Type 101 + 0406 Type 102 + 1803 V5 camera [R5U870] + 1810 Pavilion Webcam [R5U870] + 1812 Pavilion Webcam + 1814 HD Webcam + 1830 Visual Communication Camera VGP-VCC2 [R5U870] + 1832 Visual Communication Camera VGP-VCC3 [R5U870] + 1833 Visual Communication Camera VGP-VCC2 [R5U870] + 1834 Visual Communication Camera VGP-VCC2 [R5U870] + 1835 Visual Communication Camera VGP-VCC5 [R5U870] + 1836 Visual Communication Camera VGP-VCC4 [R5U870] + 1837 Visual Communication Camera VGP-VCC4 [R5U870] + 1839 Visual Communication Camera VGP-VCC6 [R5U870] + 183a Visual Communication Camera VGP-VCC7 [R5U870] + 183b Visual Communication Camera VGP-VCC8 [R5U870] + 183d Sony Vaio Integrated Webcam + 183e Visual Communication Camera VGP-VCC9 [R5U870] + 1841 Fujitsu F01/ Lifebook U810 [R5U870] + 1870 Webcam 1000 + 18b0 Sony Vaio Integrated Webcam + 18b1 Sony Vaio Integrated Webcam + 18b3 Sony Vaio Integrated Webcam + 2201 RDC-7 Camera + 2202 Caplio RR30 + 2203 Caplio 300G + 2204 Caplio G3 + 2205 Caplio RR30 / Medion MD 6126 Camera + 2206 Konica DG-3Z + 2207 Caplio Pro G3 + 2208 Caplio G4 + 2209 Caplio 400G wide + 220a KONICA MINOLTA DG-4Wide + 220b Caplio RX + 220c Caplio GX + 220d Caplio R1/RZ1 + 220e Sea & Sea 5000G + 220f Rollei dr5 / Rollei dr5 (PTP mode) + 2211 Caplio R1S + 2212 Caplio R1v Camera + 2213 Caplio R2 + 2214 Caplio GX 8 + 2215 DSC 725 + 2216 Caplio R3 + 2222 RDC-i500 +05cb PowerVision Technologies, Inc. + 1483 PV8630 interface (scanners, webcams) +05cc ELSA AG + 2100 MicroLink ISDN Office + 2219 MicroLink ISDN + 2265 MicroLink 56k + 2267 MicroLink 56k (V.250) + 2280 MicroLink 56k Fun + 3000 Micolink USB2Ethernet [pegasus] + 3100 AirLancer USB-11 + 3363 MicroLink ADSL Fun +05cd Silicom, Ltd +05ce sci-worx GmbH +05cf Sung Forn Co., Ltd +05d0 GE Medical Systems Lunar +05d1 Brainboxes, Ltd + 0003 Bluetooth Adapter BL-554 +05d2 Wave Systems Corp. +05d3 Tohoku Ricoh Co., Ltd +05d5 Super Gate Technology Co., Ltd +05d6 Philips Semiconductors, CICT +05d7 Thomas & Betts Corp. + 0099 10Mbps Ethernet [klsi] +05d8 Ultima Electronics Corp. + 4001 Artec Ultima 2000 + 4002 Artec Ultima 2000 (GT6801 based)/Lifetec LT9385/ScanMagic 1200 UB Plus Scanner + 4003 Artec E+ 48U + 4004 Artec E+ Pro + 4005 MEM48U + 4006 TRUST EASY WEBSCAN 19200 + 4007 TRUST 240H EASY WEBSCAN GOLD + 4008 Trust Easy Webscan 19200 + 4009 Umax Astraslim + 4013 IT Scan 1200 + 8105 Artec T1 USB TVBOX (cold) + 8106 Artec T1 USB TVBOX (warm) + 8107 Artec T1 USB TVBOX with AN2235 (cold) + 8108 Artec T1 USB TVBOX with AN2235 (warm) + 8109 Artec T1 USB2.0 TVBOX (cold +05d9 Axiohm Transaction Solutions + a225 A225 Printer + a758 A758 Printer + a794 A794 Printer +05da Microtek International, Inc. + 0091 ScanMaker X6u + 0093 ScanMaker V6USL + 0094 Phantom 336CX/C3 + 0099 ScanMaker X6/X6U + 009a Phantom C6 + 00a0 Phantom 336CX/C3 (#2) + 00a3 ScanMaker V6USL + 00ac ScanMaker V6UL + 00b6 ScanMaker V6UPL + 00ef ScanMaker V6UPL + 1006 Jenoptik JD350 entrance + 1011 NHJ Che-ez! Kiss Digital Camera + 1018 Digital Dream Enigma 1.3 + 1020 Digital Dream l'espion xtra + 1025 Take-it Still Camera Device + 1026 Take-it + 1043 Take-It 1300 DSC Bulk Driver + 1045 Take-it D1 + 1047 Take-it Camera Composite Device + 1048 Take-it Q3 + 1049 3M Still Camera Device + 1051 Camcorder Series + 1052 Mass Storage Device + 1053 Take-it DV Composite Device + 1054 Mass Storage Device + 1055 Digital Camera Series(536) + 1056 Mass Storage Device + 1057 Take-it DSC Camera Device(536) + 1058 Mass Storage Device + 1059 Camcorder DSC Series + 1060 Microtek Take-it MV500 + 2007 ArtixScan DI 1210 + 200c 1394_USB2 Scanner + 200e ArtixScan DI 810 + 2017 UF ICE Scanner + 201c 4800 Scanner + 201d ArtixScan DI 1610 + 201f 4800 Scanner-ICE + 202e ArtixScan DI 2020 + 208b ScanMaker 6800 + 208f ArtixScan DI 2010 + 209e ScanMaker 4700LP + 20a7 ScanMaker 5600 + 20b0 ScanMaker X12USL + 20b1 ScanMaker 8700 + 20b4 ScanMaker 4700 + 20bd ScanMaker 5700 + 20c9 ScanMaker 6700 + 20d2 Microtek ArtixScan 1800f + 20d6 PS4000 + 20de ScanMaker 9800XL + 20e0 ScanMaker 9700XL + 20ed ScanMaker 4700 + 20ee Micortek ScanMaker X12USL + 3008 Scanner + 300a 4800 ICE Scanner + 300b 4800 Scanner + 300f MiniScan C5 + 3020 4800dpi Scanner + 3021 1200dpi Scanner + 3022 Scanner 4800dpi + 3023 USB1200II Scanner + 30c1 USB600 Scanner + 30ce ScanMaker 3800 + 30cf ScanMaker 4800 + 30d4 USB1200 Scanner + 30d8 Scanner + 30d9 USB2400 Scanner + 30e4 ScanMaker 4100 + 30e5 USB3200 Scanner + 30e6 ScanMaker i320 + 40b3 ScanMaker 3600 + 40b8 ScanMaker 3700 + 40c7 ScanMaker 4600 + 40ca ScanMaker 3600 + 40cb ScanMaker 3700 + 40dd ScanMaker 3750i + 40ff ScanMaker 3600 + 5003 Goya + 5013 3200 Scanner + 80a3 ScanMaker V6USL (#2) + 80ac ScanMaker V6UL/SpicyU +05db Sun Corp. (Suntac?) + 0003 SUNTAC U-Cable type D2 + 0005 SUNTAC U-Cable type P1 + 0009 SUNTAC Slipper U + 000a SUNTAC Ir-Trinity + 000b SUNTAC U-Cable type A3 + 0011 SUNTAC U-Cable type A4 +05dc Lexar Media, Inc. + 0001 jumpSHOT CompactFlash Reader + 0002 JumpShot + 0003 JumpShot + 0080 Jumpdrive Secure 64MB + 0081 RBC Compact Flash Drive + 00a7 JumpDrive Impact + 0100 JumpDrive PRO + 0200 JumpDrive 2.0 Pro + 0300 Jumpdrive Geysr + 0301 JumpDrive Classic + 0302 JD Micro + 0303 JD Micro Pro + 0304 JD Secure II + 0310 JumpDrive + 0311 JumpDrive Classic + 0312 JD Micro + 0313 JD Micro Pro + 0320 JumpDrive + 0321 JD Micro + 0322 JD Micro Pro + 0323 UFC + 0330 JumpDrive Expression + 0340 JumpDrive TAD + 0350 Express Card + 0400 UFDC + 0401 UFDC + 0403 Locked B Device + 0405 Locked C Device + 0407 Locked D Device + 0409 Locked E Device + 040b Locked F Device + 040d Locked G Device + 040f Locked H Device + 0410 JumpDrive + 0411 JumpDrive + 0413 Locked J Device + 0415 Locked K Device + 0417 Locked L Device + 0419 Locked M Device + 041b Locked N Device + 041d Locked O Device + 041f Locked P Device + 0420 JumpDrive + 0421 JumpDrive + 0423 Locked R Device + 0425 Locked S Device + 0427 Locked T Device + 0429 Locked U Device + 042b Locked V Device + 042d Locked W Device + 042f Locked X Device + 0431 Locked Y Device + 0433 Locked Z Device + 4d02 MP3 Player + 4d12 MP3 Player + 4d30 MP3 Player + a300 JumpDrive2 + a400 JumpDrive trade; Pro 40-501 + a410 JumpDrive 128MB/256MB + a411 JumpDrive Traveler + a420 JumpDrive Pro + a421 JumpDrive Pro II + a422 JumpDrive Micro Pro + a430 JumpDrive Secure + a431 JumpDrive Secure II + a432 JumpDrive Classic + a440 JumpDrive Lightning + a450 JumpDrive TouchGuard + a460 JD Mercury + a501 JumpDrive Classic + a510 JumpDrive Sport + a530 JumpDrive Expression + a531 JumpDrive Secure II + a560 JumpDrive FireFly + a701 JumpDrive FireFly + a731 JumpDrive FireFly + a790 JumpDrive 2GB + b002 USB CF Reader + b018 Multi-Card Reader + b047 SDHC Reader [RW047-7000] +05dd Delta Electronics, Inc. + ff31 AWU-120 + ff32 FriendlyNET AeroLAN AL2011 + ff35 PCW 100 - Wireless 802.11b Adapter + ff91 2Wire PC Port Phoneline 10Mbps Adapter +05df Silicon Vision, Inc. +05e0 Symbol Technologies + 0700 Bar Code Scanner (CS1504) + 0800 Spectrum24 Wireless LAN Adapter + 1200 DS6608 Bar Code Scanner + 1900 SNAPI Imaging Device + 2000 MC3090 Rugged Mobile Computer + 200d MC70 Rugged Mobile Computer +05e1 Syntek Semiconductor Co., Ltd + 0100 802.11g + Bluetooth Wireless Adapter + 0408 STK1160 Video Capture Device + 0500 DC-112X Webcam + 0501 DC-1125 Webcam + 0890 STK011 Camera + 0892 STK013 Camera + 0895 STK016 Camera + 0896 STK017 Camera +05e2 ElecVision, Inc. +05e3 Genesys Logic, Inc. + 000a Keyboard with PS/2 Port + 000b Mouse + 0100 Nintendo Game Boy Advance SP + 0120 Pacific Image Electronics PrimeFilm 1800u slide/negative scanner + 0131 CF/SM Reader/Writer + 0142 Multiple Slides Scanner-3600 + 0143 Multiple Frames Film Scanner-36series + 0180 Plustek Scanner + 0182 Wize Media 1000 + 0189 ScanJet 4600 series + 018a Xerox 6400 + 0300 GLUSB98PT Parallel Port + 0301 USB2LPT Cable Release2 + 0406 Hub + 0501 GL620USB Host-Host interface + 0502 GL620USB-A GeneLink USB-USB Bridge + 0503 Webcam + 0504 HID Keyboard Filter + 0604 USB 1.1 Hub + 0605 USB 2.0 Hub [ednet] + 0606 USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub + 0608 USB-2.0 4-Port HUB + 0660 USB 2.0 Hub + 0700 SIIG US2256 CompactFlash Card Reader + 0701 USB 2.0 IDE Adapter + 0702 USB 2.0 IDE Adapter [GL811E] + 0703 Card Reader + 0704 Card Reader + 0705 Card Reader + 0706 Card Reader + 0707 Card Reader + 0708 Card Reader + 0709 Card Reader + 070a Pen Flash + 070b DMHS1B Rev 3 DFU Adapter + 070e USB 2.0 Card Reader + 070f Pen Flash + 0710 USB 2.0 33-in-1 Card Reader + 0711 Card Reader + 0712 Delkin Mass Storage Device + 0715 USB 2.0 microSD Reader + 0716 USB 2.0 Multislot Card Reader/Writer + 0718 IDE/SATA Adapter + 0723 GL827L SD/MMC/MS Flash Card Reader + 0760 USB 2.0 Card Reader/Writer + 0761 Genesys Mass Storage Device + 0780 USBFS DFU Adapter + 07a0 Pen Flash + 0880 Wasp (SL-6612) + 0927 Card Reader + 1205 Afilias Optical Mouse H3003 + a700 Pen Flash + f102 VX7012 TV Box + f103 VX7012 TV Box + f104 VX7012 TV Box + fd21 3M TL20 Temperature Logger + fe00 Razer Mouse +05e4 Red Wing Corp. +05e5 Fuji Electric Co., Ltd +05e6 Keithley Instruments +05e8 ICC, Inc. +05e9 Kawasaki LSI + 0008 KL5KUSB101B Ethernet [klsi] + 0009 Sony 10Mbps Ethernet [pegasus] + 000c USB-to-RS-232 + 000d USB-to-RS-232 + 0014 RS-232 J104 + 0040 Ethernet Adapter + 2008 Ethernet Adapter +05eb FFC, Ltd +05ec COM21, Inc. +05ee Cytechinfo Inc. +05ef AVB, Inc. [anko?] + 020a Top Shot Pegasus Joystick + 8884 Mag Turbo Force Wheel + 8888 Top Shot Force Feedback Racing Wheel +05f0 Canopus Co., Ltd + 0101 DA-Port DAC +05f1 Compass Communications +05f2 Dexin Corp., Ltd + 0010 AQ Mouse +05f3 PI Engineering, Inc. + 0007 Kinesis Advantage PRO MPC/USB Keyboard + 0081 Kinesis Integrated Hub + 00ff VEC Footpedal + 020b PS2 Adapter + 0232 X-Keys Switch Interface, Programming Mode + 0261 X-Keys Switch Interface, SPLAT Mode + 0264 X-Keys Switch Interface, Composite Mode +05f5 Unixtar Technology, Inc. +05f6 AOC International +05f7 RFC Distribution(s) PTE, Ltd +05f9 PSC Scanning, Inc. + 2602 Datalogic Magellan 1100i Barcode Scanner +05fa Siemens Telecommunications Systems, Ltd + 3301 Keyboard with PS/2 Mouse Port + 3302 Keyboard + 3303 Keyboard with PS/2 Mouse Port +05fc Harman Multimedia + 7849 Harman/Kardon SoundSticks +05fd InterAct, Inc. + 0239 SV-239 HammerHead Digital + 0251 Raider Pro + 0253 ProPad 8 Digital + 0286 SV-286 Cyclone Digital + 107a PowerPad Pro X-Box pad + 262a 3dfx HammerHead FX + 262f HammerHead Fx + daae Game Shark +05fe Chic Technology Corp. + 0001 Mouse + 0003 Cypress USB Mouse + 0005 Viewmaster 4D Browser Mouse + 0007 Twinhead Mouse + 0009 Inland Pro 4500/5000 Mouse + 0011 Browser Mouse + 0014 Gamepad + 1010 Optical Wireless +05ff LeCroy Corp. +0600 Barco Display Systems +0601 Jazz Hipster Corp. + 0003 Internet Security Co., Ltd. SecureKey +0602 Vista Imaging, Inc. + 1001 ViCam Webcam +0603 Novatek Microelectronics Corp. + 00f1 Keyboard + 6871 Mouse +0604 Jean Co., Ltd +0605 Anchor C&C Co., Ltd +0606 Royal Information Electronics Co., Ltd +0607 Bridge Information Co., Ltd +0608 Genrad Ads +0609 SMK Manufacturing, Inc. + 031d eHome Infrared Receiver + 0322 eHome Infrared Receiver + 0334 eHome Infrared Receiver + ff12 SMK Bluetooth Device +060a Worthington Data Solutions, Inc. +060b Solid Year + 0001 MacAlly Keyboard + 1006 Japanese Keyboard - 260U + 2101 Keyboard + 2231 KSK-6001 UELX Keyboard + 5811 ACK-571U Wireless Keyboard + 5903 Japanese Keyboard - 595U + 6001 SolidTek USB 2p HUB + 6002 SolidTek USB Keyboard + 6003 Japanese Keyboard - 600HM + a001 Maxwell Compact Pc PM3 +060c EEH Datalink GmbH +060d Auctor Corp. +060e Transmonde Technologies, Inc. +060f Joinsoon Electronics Mfg. Co., Ltd +0610 Costar Electronics, Inc. +0611 Totoku Electric Co., Ltd +0613 TransAct Technologies, Inc. +0614 Bio-Rad Laboratories +0615 Quabbin Wire & Cable Co., Inc. +0616 Future Techno Designs PVT, Ltd +0617 Swiss Federal Insitute of Technology +0618 MacAlly + 0101 Mouse +0619 Seiko Instruments, Inc. + 0101 SLP-100 Driver + 0102 SLP-200 Driver + 0103 SLP-100N Driver + 0104 SLP-200N Driver + 0105 SLP-240 Driver + 0501 SLP-440 Driver + 0502 SLP-450 Driver +061a Veridicom International, Inc. + 0110 5thSense Fingerprint Sensor + 0200 FPS200 Fingerprint Sensor + 8200 VKI-A Fingerprint Sensor/Flash Storage (dumb) + 9200 VKI-B Fingerprint Sensor/Flash Storage (smart) +061b Promptus Communications, Inc. +061c Act Labs, Ltd +061d Quatech, Inc. +061e Nissei Electric Co. + 0001 nissei 128DE-USB - + 0010 nissei 128DE-PNA - +0620 Alaris, Inc. + 0004 QuickVideo weeCam + 0007 QuickVideo weeCam + 000a QuickVideo weeCam + 000b QuickVideo weeCam +0621 ODU-Steckverbindungssysteme GmbH & Co. KG +0622 Iotech, Inc. +0623 Littelfuse, Inc. +0624 Avocent Corp. + 0294 Dell 03R874 KVM dongle +0625 TiMedia Technology Co., Ltd +0626 Nippon Systems Development Co., Ltd +0627 Adomax Technology Co., Ltd +0628 Tasking Software, Inc. +0629 Zida Technologies, Ltd +062a Creative Labs + 0000 Optical mouse + 0001 Notebook Optical Mouse + 0102 Wireless Keyboard/Mouse Combo [MK1152WC] + 0201 Defender Office Keyboard (K7310) S Zodiak KM-9010 + 0252 Emerge Uni-retractable Laser Mouse + 9003 VoIP Conference Hub (A16GH) + 9004 USR9602 USB Internet Mini Phone +062b Greatlink Electronics Taiwan, Ltd +062c Institute for Information Industry +062d Taiwan Tai-Hao Enterprises Co., Ltd +062e Mainsuper Enterprises Co., Ltd +062f Sin Sheng Terminal & Machine, Inc. +0631 JUJO Electronics Corp. +0633 Cyrix Corp. +0634 Micron Technology, Inc. +0635 Methode Electronics, Inc. +0636 Sierra Imaging, Inc. + 0003 Vivicam 35Xx +0638 Avision, Inc. + 0268 iVina 1200U Scanner + 026a Minolta Dimage Scan Dual II + 0a10 iVina FB1600/UMAX Astra 4500 + 0a13 AV600U + 0a16 SC-215 + 0a30 UMAX Astra 6700 Scanner + 0a41 Avision AM3000/MF3000 Series + 0f01 fi-4010CU + 4004 Minolta Dimage Scan Elite II +0639 Chrontel, Inc. +063a Techwin Corp. +063b Taugagreining HF +063c Yamaichi Electronics Co., Ltd (Sakura) +063d Fong Kai Industrial Co., Ltd +063e RealMedia Technology, Inc. +063f New Technology Cable, Ltd +0640 Hitex Development Tools + 0026 LPC-Stick +0641 Woods Industries, Inc. +0642 VIA Medical Corp. +0644 TEAC Corp. + 0000 Floppy + 0200 All-In-One Multi-Card Reader CA200/B/S + 1000 CD-ROM Drive + 800d TASCAM Portastudio DP-01FX + 800e TASCAM US-122L + 8021 TASCAM US-122mkII + d001 CD-R/RW Unit + d002 CD-R/RW Unit + d010 CD-RW/DVD Unit +0645 Who? Vision Systems, Inc. +0646 UMAX +0647 Acton Research Corp. + 0100 ARC SpectraPro UV/VIS/IR Monochromator/Spectrograph + 0101 ARC AM-VM Mono Airpath/Vacuum Monochromator/Spectrograph + 0102 ARC Inspectrum Mono + 0103 ARC Filterwheel + 03e9 Inspectrum 128x1024 F VIS Spectrograph + 03ea Inspectrum 256x1024 F VIS Spectrograph + 03eb Inspectrum 128x1024 B VIS Spectrograph + 03ec Inspectrum 256x1024 B VIS Spectrograph +0648 Inside Out Networks +0649 Weli Science Co., Ltd +064b Analog Devices, Inc. (White Mountain DSP) + 0165 Blackfin 535 [ADZS HPUSB ICE] +064c Ji-Haw Industrial Co., Ltd +064d TriTech Microelectronics, Ltd +064e Suyin Corp. + a100 Acer OrbiCam + a101 Acer CrystalEye Webcam + a102 Acer/Lenovo Webcam [CN0316] + a103 Acer/HP Integrated Webcam [CN0314] + a110 HP Webcam + a136 Asus Integrated Webcam [CN031B] + a219 1.3M WebCam (notebook emachines E730, Acer sub-brand) + c107 HP webcam [dv6-1190en] + d101 Acer CrystalEye Webcam + e201 Lenovo Integrated Webcam + e203 Lenovo Integrated Webcam + f102 Lenovo Integrated Webcam [R5U877] + f103 Lenovo Integrated Webcam [R5U877] +064f WIBU-Systems AG + 03e9 Propellerhead Record Ignition Key + 03f2 CmStick/M (article no. 1010) + 03f3 CmStick/M (article no. 1011) + 0bd7 BOX/U + 0bd8 BOX/RU +0650 Dynapro Systems +0651 Likom Technology Sdn. Bhd. +0652 Stargate Solutions, Inc. +0653 CNF, Inc. +0654 Granite Microsystems, Inc. + 0005 Device Bay Controller + 0006 Hub + 0007 Device Bay Controller + 0016 Hub +0655 Space Shuttle Hi-Tech Co., Ltd +0656 Glory Mark Electronic, Ltd +0657 Tekcon Electronics Corp. +0658 Sigma Designs, Inc. +0659 Aethra +065a Optoelectronics Co., Ltd + 0001 Barcode scanner +065b Tracewell Systems +065e Silicon Graphics +065f Good Way Technology Co., Ltd & GWC technology Inc. +0660 TSAY-E (BVI) International, Inc. +0661 Hamamatsu Photonics K.K. +0662 Kansai Electric Co., Ltd +0663 Topmax Electronic Co., Ltd + 0103 CobraPad +0664 Groovy Technology Corp. + 0301 GTouch Touch Screen + 0302 GTouch Touch Screen + 0303 GTouch Touch Screen + 0304 GTouch Touch Screen + 0305 GTouch Touch Screen + 0306 GTouch Touch Screen + 0307 GTouch Touch Screen + 0309 GTouch Touch Screen +0665 Cypress Semiconductor + 5161 USB to Serial +0667 Aiwa Co., Ltd + 0fa1 TD-U8000 Tape Drive +0668 WordWand +0669 Oce' Printing Systems GmbH +066a Total Technologies, Ltd +066b Linksys, Inc. + 0105 SCM eUSB SmartMedia Card Reader + 010a Melco MCR-U2 SmartMedia / CompactFlash Reader + 200c USB10TX + 2202 USB10TX Ethernet [pegasus] + 2203 USB100TX Ethernet [pegasus] + 2204 USB100TX HomePNA Ethernet [pegasus] + 2206 USB Ethernet [pegasus] + 2207 HomeLink Phoneline 10M Network Adapter + 2211 WUSB11 802.11b Adapter + 2212 WUSB11v2.5 802.11b Adapter + 2213 WUSB12v1.1 802.11b Adapter + 2219 Instant Wireless Network Adapter + 400b USB10TX +066d Entrega, Inc. +066e Acer Semiconductor America, Inc. +066f SigmaTel, Inc. + 003b MP3 Player + 003e MP3 Player + 003f MP3 Player + 0040 MP3 Player + 0041 MP3 Player + 0042 MP3 Player + 0043 MP3 Player + 004b A-Max PA11 MP3 Player + 3400 STMP3400 D-Major MP3 Player + 3410 STMP3410 D-Major MP3 Player + 3500 Player Recovery Device + 4200 STIr4200 IrDA Bridge + 4210 STIr4210 IrDA Bridge + 8000 MSCN MP3 Player + 8001 SigmaTel MSCN Audio Player + 8004 MSCNMMC MP3 Player + 8008 i-Bead 100 MP3 Player + 8020 MP3 Player + 8034 MP3 Player + 8036 MP3 Player + 8038 MP3 Player + 8056 MP3 Player + 8060 MP3 Player + 8066 MP3 Player + 807e MP3 Player + 8092 MP3 Player + 8096 MP3 Player + 809a MP3 Player + 80aa MP3 Player + 80ac MP3 Player + 80b8 MP3 Player + 80ba MP3 Player + 80bc MP3 Player + 80bf MP3 Player + 80c5 MP3 Player + 80c8 MP3 Player + 80ca MP3 Player + 80cc MP3 Player + 8104 MP3 Player + 8106 MP3 Player + 8108 MP3 Player + 810a MP3 Player + 810c MP3 Player + 8122 MP3 Player + 8124 MP3 Player + 8126 MP3 Player + 8128 MP3 Player + 8134 MP3 Player + 8136 MP3 Player + 8138 MP3 Player + 813a MP3 Player + 813e MP3 Player + 8140 MP3 Player + 8142 MP3 Player + 8144 MP3 Player + 8146 MP3 Player + 8148 MP3 Player + 814c MP3 Player + 8201 MP3 Player + 8202 Jens of Sweden / I-BEAD 150M/150H MP3 player + 8203 MP3 Player + 8204 MP3 Player + 8205 MP3 Player + 8206 Digital MP3 Music Player + 8207 MP3 Player + 8208 MP3 Player + 8209 MP3 Player + 820a MP3 Player + 820b MP3 Player + 820c MP3 Player + 820d MP3 Player + 820e MP3 Player + 820f MP3 Player + 8210 MP3 Player + 8211 MP3 Player + 8212 MP3 Player + 8213 MP3 Player + 8214 MP3 Player + 8215 MP3 Player + 8216 MP3 Player + 8217 MP3 Player + 8218 MP3 Player + 8219 MP3 Player + 821a MP3 Player + 821b MP3 Player + 821c MP3 Player + 821d MP3 Player + 821e MP3 Player + 821f MP3 Player + 8220 MP3 Player + 8221 MP3 Player + 8222 MP3 Player + 8223 MP3 Player + 8224 MP3 Player + 8225 MP3 Player + 8226 MP3 Player + 8227 MP3 Player + 8228 MP3 Player + 8229 MP3 Player + 8230 MP3 Player + 829c MP3 Player + 82e0 MP3 Player + 835d MP3 Player + 9000 MP3 Player + 9001 MP3 Player + 9002 MP3 Player +0670 Sequel Imaging + 0001 Calibrator + 0005 Enable Cable +0672 Labtec, Inc. + 1041 LCS1040 Speaker System + 5000 SpaceBall 4000 FLX +0673 HCL + 5000 Keyboard +0674 Key Mouse Electronic Enterprise Co., Ltd +0675 DrayTek Corp. + 0110 Vigor 128 ISDN TA + 0530 Vigor530 IEEE 802.11G Adapter (ISL3880+NET2280) + 0550 Vigor550 + 1688 miniVigor 128 ISDN TA + 6694 USB ISDN TA +0676 Teles AG +0677 Aiwa Co., Ltd + 07d5 TM-ED1285(USB) + 0fa1 TD-U8000 Tape Drive +0678 ACard Technology Corp. +067b Prolific Technology, Inc. + 0000 PL2301 USB-USB Bridge + 0001 PL2302 USB-USB Bridge + 0307 Motorola Serial Adapter + 04bb PL2303 Serial (IODATA USB-RSAQ2) + 0610 Onext EG210U MODEM + 0611 AlDiga AL-11U Quad-band GSM/GPRS/EDGE modem + 2303 PL2303 Serial Port + 2305 PL2305 Parallel Port + 2306 Raylink Bridge Controller + 2307 PL2307 USB-ATAPI4 Bridge + 2313 FITEL PHS U Cable Adaptor + 2315 Flash Disk Embedded Hub + 2316 Flash Disk Security Device + 2317 Mass Storage Device + 2501 PL2501 USB-USB Bridge (USB 2.0) + 2507 PL2507 Hi-speed USB to IDE bridge controller + 2515 Flash Disk Embedded Hub + 2517 Flash Disk Mass Storage Device + 25a1 PL25A1 Host-Host Bridge + 3400 Hi-Speed Flash Disk with TruePrint AES3400 + 3500 Hi-Speed Flash Disk with TruePrint AES3500 + 3507 PL3507 ATAPI6 Bridge + aaa0 Prolific Pharos + aaa2 PL2303 Serial Adapter (IODATA USB-RSAQ3) +067c Efficient Networks, Inc. + 1001 Siemens SpeedStream 100MBps Ethernet + 1022 Siemens SpeedStream 1022 802.11b Adapter + 1023 SpeedStream Wireless + 4020 SpeedStream 4020 ATM/ADSL Installer + 4031 Efficient ADSL Modem + 4032 SpeedStream 4031 ATM/ADSL Installer + 4033 SpeedStream 4031 ATM/ADSL Installer + 4060 Alcatel Speedstream 4060 ADSL Modem + 4062 Efficient Networks 4060 Loader + 5667 Efficient Networks Virtual Bus for ADSL Modem + c031 SpeedStream 4031 ATM/ADSL Installer + c032 SpeedStream 4031 ATM/ADSL Installer + c033 SpeedStream 4031 ATM/ADSL Installer + c060 SpeedStream 4060 Miniport ATM/ADSL Adapter + d667 Efficient Networks Virtual Bus for ADSL Modem + e240 Speedstream Ethernet Adapter E240 + e540 Speedstream Ethernet Adapter E240 +067d Hohner Corp. +067e Intermec Technologies Corp. + 0801 HID Keyboard, Barcode scanner + 0803 VCP, Barcode scanner + 0805 VCP + UVC, Barcode scanner + 1001 Mobile Computer +067f Virata, Ltd + 4552 DSL-200 ADSL Modem + 6542 DSL Modem + 6549 DSL Modem + 7541 DSL Modem +0680 Realtek Semiconductor Corp., CPP Div. (Avance Logic) + 0002 Arowana Optical Wheel Mouse MSOP-01 +0681 Siemens Information and Communication Products + 0001 Dect Base + 0002 Gigaset 3075 Passive ISDN + 0005 ID-Mouse with Fingerprint Reader + 0012 I-Gate 802.11b Adapter + 001b WLL013 + 001d Hipath 1000 + 0022 Gigaset SX353 ISDN + 0026 DECT Data - Gigaset M34 + 002b A-100-I ADSL Modem + 002e ADSL Router_S-141 + 0034 GSM module MC35/ES75 USB Modem + 3c06 54g USB Network Adapter +0682 Victor Company of Japan, Ltd +0684 Actiontec Electronics, Inc. +0686 Minolta Co., Ltd + 2001 PagePro 4110W + 2004 PagePro 1200W + 2005 Magicolor 2300 DL + 3001 PagePro 4100 + 3005 PagePro 1250E + 3006 PagePro 1250W + 3009 Magicolor 2300W + 300b PagePro 1350W + 300c PagePro 1300W + 302e Develop D 1650iD PCL + 3034 Develop D 2050iD PCL + 4001 Dimage 2300 + 4003 Dimage 2330 Zoom Camera + 4004 Scan Elite II + 4005 Minolta DiMAGE E201 Mass Storage Device + 4006 Dimage 7 Camera + 4007 Dimage S304 Camera + 4008 Dimage 5 Camera + 4009 Dimage X Camera + 400a Dimage S404 Camera + 400b Dimage 7i Camera + 400c Dimage F100 Camera + 400d Scan Dual III + 400e Dimage 5400 + 400f Dimage 7Hi Camera + 4010 Dimage Xi Camera + 4011 Dimage F300 Camera + 4012 Dimage F200 Camera + 4014 Dimage S414 Camera + 4015 Dimage XT Camera [storage] + 4016 Dimage XT Camera [remote mode] + 4017 Dimage E223 + 4018 Dimage Z1 Camera + 4019 Dimage A1 Camera [remote mode] + 401a Dimage A1 Camera [storage] + 401c Dimage X20 Camera + 401e Dimage E323 Camera +068a Pertech, Inc. +068b Potrans International, Inc. +068e CH Products, Inc. + 00d3 OEM 3 axis 5 button joystick + 00e2 HFX OEM Joystick + 00f1 Pro Throttle + 00f2 Flight Sim Pedals + 00f3 Fighterstick + 00f4 Combatstick + 00fa Flight Sim Pedals + 00ff Flight Sim Yoke + 0500 GameStick 3D + 0501 CH Pro Pedals + 0504 F-16 Combat Stick +0690 Golden Bridge Electech, Inc. +0693 Hagiwara Sys-Com Co., Ltd + 0002 FlashGate SmartMedia Card Reader + 0003 FlashGate CompactFlash Card Reader + 0005 FlashGate + 0006 SM PCCard R/W and SPD + 0007 FlashGate ME (Authenticated) + 000a SDCard/MMC Reader/Writer +0694 Lego Group + 0001 Mindstorms Tower + 0002 Mindstorms NXT +0698 Chuntex (CTX) + 1786 1300ex Monitor + 2003 CTX M730V built in Camera + 9999 VLxxxx Monitor+Hub +0699 Tektronix, Inc. +069a Askey Computer Corp. + 0001 VC010 Webcam [pwc] + 0303 Cable Modem + 0311 ADSL Router Remote NDIS Device + 0318 Remote NDIS Device + 0319 220V Remote NDIS Device + 0320 IEEE 802.11b Wireless LAN Card + 0321 Dynalink WLL013 / Compex WLU11A 802.11b Adapter + 0402 Scientific Atlanta WebSTAR 100 & 200 series Cable Modem + 0811 BT Virtual Bus for Helium + 0821 BT Voyager 1010 802.11b Adapter + 4402 Scientific Atlanta WebSTAR 2000 series Cable Modem + 4403 Scientific Atlanta WebSTAR 300 series Cable Modem + 4501 Scientific-Atlanta WebSTAR 2000 series Cable Modem +069b Thomson, Inc. + 0704 DCM245 Cable Modem + 0705 THG540K Cable Modem + 070c MP3 Player + 070d MP3 Player + 070e MP3 Player + 070f RCA Lyra RD1071 MP3 Player + 0731 Lyra M200E256 + 0761 RCA H100A + 0778 PEARL USB Device + 2220 RCA Kazoo RD1000 MP3 Player + 300a RCA Lyra MP3 Player + 3012 MP3 Player + 3013 MP3 Player + 5557 RCA CDS6300 +069d Hughes Network Systems (HNS) + 0001 Satellite Receiver Device + 0002 Satellite Device +069e Marx + 0005 CryptoBox v1.2 +069f Allied Data Technologies BV + 0010 Tornado Speakerphone FaxModem 56.0 + 0011 Tornado Speakerphone FaxModem 56.0 + 1000 ADT VvBus for CopperJet + 1004 CopperJet 821 RouterPlus +06a2 Topro Technology, Inc. + 0033 USB Mouse +06a3 Saitek PLC + 0006 Cyborg Gold Joystick + 0109 P880 Pad + 0160 ST290 Pro + 0200 Xbox Adrenalin Hub + 0241 Xbox Adrenalin Gamepad + 0255 X52 Flight Controller + 040b P990 Dual Analog Pad + 040c P2900 Wireless Pad + 0422 ST90 Joystick + 0460 ST290 Pro Flight Stick + 0463 ST290 + 0464 Cyborg Evo + 0471 Cyborg Graphite Stick + 0501 R100 Sports Wheel + 0502 ST200 Stick + 0506 R220 Digital Wheel + 051e Cyborg Digital II Stick + 052d P750 Gamepad + 053c X45 Flight Controller + 053f X36F Flightstick + 056c P2000 Tilt Pad + 056f P2000 Tilt Pad + 05d2 PC Dash 2 + 075c X52 Flight Controller + 0762 Saitek X52 Pro Flight Control System + 0805 R440 Force Wheel + 1003 GM2 Action Pad + 1009 Action Pad + 100a SP550 Pad and Joystick Combo + 100b SP550 Pad + 1509 P3000 Wireless Pad + 1589 P3000 Wireless Pad + 2541 X45 Flight Controller + 3509 P3000 RF GamePad + 353e Cyborg Evo Wireless + 3589 P3000 Wireless Pad + 35be Cyborg Evo + 5509 P3000 Wireless Pad + 8000 Gamers' Keyboard + 801e Cyborg 3D Digital Stick II + 8020 Eclipse Keyboard + 8021 Eclipse II Keyboard + 802d P750 Pad + 803f X36 Flight Controller + 806f P2000 Tilt Pad + 80c0 Pro Gamer Command Unit + 80c1 Cyborg Command Pad Unit + a502 Gaming Mouse + f518 P3200 Rumble Force Game Pad + ff04 R440 Force Wheel + ff0c Cyborg Force Rumble Pad + ff0d P2600 Rumble Force Pad + ff12 Cyborg 3D Force Stick + ff17 ST 330 Rumble Force Stick + ff52 Cyborg 3D Rumble Force Joystick + ffb5 Cyborg Evo Force Joystick +06a4 Xiamen Doowell Electron Co., Ltd +06a5 Divio + 0000 Typhoon Webcam 100k [nw8000] + d001 ProLink DS3303u Webcam + d800 Chicony TwinkleCam + d820 Wize Media 1000 +06a7 MicroStore, Inc. +06a8 Topaz Systems, Inc. + 0042 SignatureGem 1X5 Pad + 0043 SignatureGem 1X5-HID Pad +06a9 Westell + 0005 WireSpeed Dual Connect Modem + 0006 WireSpeed Dual Connect Modem + 000a WireSpeed Dual Connect Modem + 000b WireSpeed Dual Connect Modem + 000e A90-211WG-01 802.11g Adapter [Intersil ISL3887] +06aa Sysgration, Ltd +06ac Fujitsu Laboratories of America, Inc. +06ad Greatland Electronics Taiwan, Ltd +06ae Professional Multimedia Testing Centre +06af Harting, Inc. of North America +06b8 Pixela Corp. +06b9 Alcatel Telecom + 0120 SpeedTouch 120g 802.11g Wireless Adapter [Intersil ISL3886] + 0121 SpeedTouch 121g Wireless Dongle + 2001 SPEED TOUCH Card + 4061 SpeedTouch ISDN or ADSL Modem + a5a5 DynaMiTe Modem +06ba Smooth Cord & Connector Co., Ltd +06bb EDA, Inc. +06bc Oki Data Corp. + 000b Okipage 14ex Printer + 0a91 B2500MFP (printer+scanner) + 3801 B6100 Laser Printer +06bd AGFA-Gevaert NV + 0001 SnapScan 1212U + 0002 SnapScan 1236U + 0100 SnapScan Touch + 0101 SNAPSCAN ELITE + 0200 ScanMaker 8700 + 02bf DUOSCAN f40 + 0400 CL30 + 0401 Mass Storage + 0403 ePhoto CL18 Camera + 0404 ePhoto CL20 Camera + 2061 SnapScan 1212U (?) + 208d Snapscan e40 + 208f SnapScan e50 + 2091 SnapScan e20 + 2093 SnapScan e10 + 2095 SnapScan e25 + 2097 SnapScan e26 + 20fd SnapScan e52 + 20ff SnapScan e42 +06be AME Optimedia Technology Co., Ltd + 0800 Optimedia Camera + 1005 Dazzle DPVM! (1005) + d001 P35U Camera Capture +06bf Leoco Corp. +06c2 Phidgets Inc. (formerly GLAB) + 0030 PhidgetRFID + 0038 4-Motor PhidgetServo v3.0 + 0039 1-Motor PhidgetServo v3.0 + 003a 8-Motor PhidgetAvancedServo + 0040 PhidgetInterface Kit 0-0-4 + 0044 PhidgetInterface Kit 0-16-16 + 0045 PhidgetInterface Kit 8-8-8 + 0048 PhidgetStepper (Under Development) + 0049 PhidgetTextLED Ver 1.0 + 004a PhidgetLED Ver 1.0 + 004b PhidgetEncoder Ver 1.0 + 0051 PhidgetInterface Kit 0-5-7 (Custom) + 0052 PhidgetTextLCD + 0053 PhidgetInterfaceKit 0-8-8 + 0058 PhidgetMotorControl Ver 1.0 + 0070 PhidgetTemperatureSensor Ver 1.0 + 0071 PhidgetAccelerometer Ver 1.0 + 0072 PhidgetWeightSensor Ver 1.0 + 0073 PhidgetHumiditySensor + 0074 PhidgetPHSensor + 0075 PhidgetGyroscope +06c4 Bizlink International Corp. +06c5 Hagenuk, GmbH +06c6 Infowave Software, Inc. +06c8 SIIG, Inc. +06c9 Taxan (Europe), Ltd + 0005 Monitor Control + 0007 Monitor Control + 0009 Monitor Control +06ca Newer Technology, Inc. +06cb Synaptics, Inc. + 0001 HID Device + 0002 HID Device + 0003 HID Device + 0005 Touchpad/FPS + 0006 HID Device + 0007 HID Device + 0008 HID Device + 0009 Composite TouchPad and TrackPoint + 000e HID Device + 0010 Composite Human Interface Device + 0013 Human Interface Device +06cc Terayon Communication Systems + 0101 Cable Modem + 0102 Cable Modem + 0103 Cable Modem + 0104 Cable Modem + 0304 Cable Modem +06cd Keyspan + 0101 USA-28 PDA [no firmware] + 0102 USA-28X PDA [no firmware] + 0103 USA-19 PDA [no firmware] + 0104 PDA [prerenum] + 0105 USA-18X PDA [no firmware] + 0106 USA-19W PDA [no firmware] + 0107 USA-19 PDA + 0108 USA-19W PDA + 0109 USA-49W serial adapter [no firmware] + 010a USA-49W serial adapter + 010b USA-19Qi serial adapter [no firmware] + 010c USA-19Qi serial adapter + 010d USA-19Q serial Adapter (no firmware) + 010e USA-19Q serial Adapter + 010f USA-28 PDA + 0110 USA-28Xb PDA + 0111 USA-18 serial Adapter + 0112 USA-18X PDA + 0113 USA-28Xb PDA [no firmware] + 0114 USA-28Xa PDA [no firmware] + 0115 USA-28Xa PDA + 0116 USA-18XA serial Adapter (no firmware) + 0117 USA-18XA serial Adapter + 0118 USA-19QW PDA [no firmware] + 0119 USA-19QW PDA + 011a USA-49Wlc serial adapter [no firmware] + 011b MPR Serial Preloader (MPRQI) + 011c MPR Serial (MPRQI) + 011d MPR Serial Preloader (MPRQ) + 011e MPR Serial (MPRQ) + 0121 USA-19hs serial adapter + 012a USA-49Wlc serial adapter + 0201 UIA-10 Digital Media Remote [Cypress AN2131SC] + 0202 UIA-11 Digital Media Remote +06cf SpheronVR AG + 1010 PanoCam 10 + 1012 PanoCam 12/12X +06d0 LapLink, Inc. + 0622 LapLink Gold USB-USB Bridge [net1080] +06d1 Daewoo Electronics Co., Ltd +06d3 Mitsubishi Electric Corp. + 0380 CP8000D Port + 0381 CP770D Port + 0385 CP900D Port + 0387 CP980D Port + 038b CP3020D Port + 038c CP900DW(ID) Port + 0393 CP9500D/DW Port + 0394 CP9000D/DW Port + 03a1 CP9550D/DW Port +06d4 Cisco Systems +06d5 Toshiba + 4000 Japanese Keyboard +06d6 Aashima Technology B.V. + 0025 Gamepad + 0026 Predator TH 400 Gamepad + 002d Trust PowerC@m 350FT + 002e Trust PowerC@m 350FS + 0030 Trust 710 LCD POWERC@M ZOOM - MSD + 0031 Trust 610/710 LCD POWERC@M ZOOM + 003a Trust PowerC@m 770Z (mass storage mode) + 003b Trust PowerC@m 770Z (webcam mode) + 003c Trust 910z PowerC@m + 003f Trust 735S POWERC@M ZOOM, WDM DSC Bulk Driver + 0050 Trust 738AV LCD PV Digital Camera + 0062 TRUST 782AV LCD P. V. Video Capture + 0066 TRUST Digital PCTV and Movie Editor + 0067 Trust 350FS POWERC@M FLASH + 006b TRUST AUDIO VIDEO EDITOR +06d7 Network Computing Devices (NCD) +06d8 Technical Marketing Research, Inc. +06da Phoenixtec Power Co., Ltd + 0002 UPS + 0003 1300VA UPS +06db Paradyne +06dc Foxlink Image Technology Co., Ltd + 0012 Scan 1200c Scanner + 0014 Prolink Winscan Pro 2448U +06de Heisei Electronics Co., Ltd +06e0 Multi-Tech Systems, Inc. + f101 MT5634ZBA-USB MultiModemUSB (old firmware) + f103 MT5634MU MultiMobileUSB + f104 MT5634ZBA-USB MultiModemUSB (new firmware) + f107 MT5634ZBA-USB-V92 MultiModemUSB +06e1 ADS Technologies, Inc. + 0008 UBS-10BT Ethernet [klsi] + 0009 UBS-10BT Ethernet + 0833 Mass Storage Device + a155 FM Radio Receiver/Instant FM Music (RDX-155-EF) + a160 Instant Video-To-Go RDX-160 (no firmware) + a161 Instant Video-To-Go RDX-160 + a190 Instand VCD Capture + a191 Instant VideoXpress + a337 Mini DigitalTV + a701 DVD Xpress + b337 Mini DigitalTV + b701 DVD Xpress B +06e4 Alcatel Microelectronics +06e6 Tiger Jet Network, Inc. + 0200 Internet Phone + 0201 Internet Phone + 0202 Composite Device + 0203 Internet Phone + 0210 Composite Device + 0211 Internet Phone + 0212 Internet Phone + 031c Internet Phone + 031d Internet Phone + 031e Internet Phone + 3200 Composite Device + 3201 Internet Phone + 3202 Composite Device + 3203 Composite Device + 7200 Composite Device + 7210 Composite Device + 7250 Composite Device + 825c Internet Phone + 831c Internet Phone + 831d Composite Device + 831e Composite Device + b200 Composite Device + b201 Composite Device + b202 Internet Phone + b210 Internet Phone + b211 Composite Device + b212 Composite Device + b250 Composite Device + b251 Internet Phone + b252 Internet Phone + c200 Internet Phone + c201 Internet Phone + c202 Composite Device + c203 Internet Phone + c210 Personal PhoneGateway + c211 Personal PhoneGateway + c212 Personal PhoneGateway + c213 PPG Device + c25c Composite Device + c290 PPG Device + c291 PPG Device + c292 PPG Device + c293 Personal PhoneGateway + c31c Composite Device + c39c Personal PhoneGateway + c39d PPG Device + c39e PPG Device + c39f PPG Device + c700 Internet Phone + c701 Internet Phone + c702 Composite Device + c703 Internet Phone + c710 VoIP Combo Device + c711 VoIP Combo + c712 VoIP Combo Device + c713 VoIP Combo Device + cf00 Composite Device + cf01 Internet Phone + cf02 Internet Phone + cf03 Composite Device + d210 Personal PhoneGateway + d211 PPG Device + d212 PPG Device + d213 Personal PhoneGateway + d700 Composite Device + d701 Composite Device + d702 Internet Phone + d703 Composite Device + d710 VoIP Combo + d711 VoIP Combo Device + d712 VoIP Combo + d713 VoIP Combo + df00 Composite Device + df01 Composite Device + df02 Internet Phone + df03 Internet Phone + f200 Internet Phone + f201 Internet Phone + f202 Composite Device + f203 Composite Device + f210 Internet Phone + f250 Composite Device + f252 Internet Phone + f310 Internet Phone + f350 Composite Device +06ea Sirius Technologies + 0001 NetCom Roadster II 56k + 0002 Roadster II 56k +06eb PC Expert Tech. Co., Ltd +06ef I.A.C. Geometrische Ingenieurs B.V. +06f0 T.N.C Industrial Co., Ltd + de01 DualCam Video Camera + de02 DualCam Still Camera +06f1 Opcode Systems, Inc. + a011 SonicPort + a021 SonicPort Optical +06f2 Emine Technology Co. + 0011 KVM Switch Keyboard +06f6 Wintrend Technology Co., Ltd +06f7 Wailly Technology Ltd + 0003 USB->Din 4 Adaptor +06f8 Guillemot Corp. + 3002 Hercules Blog Webcam + 3004 Hercules Classic Silver + 3005 Hercules Dualpix Exchange + 3007 Hercules Dualpix Chat and Show + a300 Dual Analog Leader GamePad + b000 Hercules DJ Console + c000 Hercules Muse Pocket + d002 Hercules DJ Console + e000 HWGUSB2-54 WLAN + e010 HWGUSB2-54-LB + e020 HWGUSB2-54V2-AP + e031 Hercules HWNUm-300 Wireless N mini [Realtek RTL8191S] + e032 HWGUm-54 [Hercules Wireless G Ultra Mini Key] +06f9 ASYST electronic d.o.o. +06fa HSD S.r.L +06fc Motorola Semiconductor Products Sector +06fd Boston Acoustics + 0101 Audio Device + 0102 Audio Device + 0201 2-piece Audio Device +06fe Gallant Computer, Inc. +0701 Supercomal Wire & Cable SDN. BHD. +0703 Bvtech Industry, Inc. +0705 NKK Corp. +0706 Ariel Corp. +0707 Standard Microsystems Corp. + 0100 2202 Ethernet [klsi] + 0200 2202 Ethernet [pegasus] + 0201 EZ Connect USB Ethernet + ee04 SMCWUSB32 802.11b Wireless LAN Card + ee06 SMC2862W-G v1 EZ Connect 802.11g Adapter [Intersil ISL3886] + ee13 SMC2862W-G v2 EZ Connect 802.11g Adapter [Intersil ISL3887] +0708 Putercom Co., Ltd + 047e USB-1284 BRIDGE +0709 Silicon Systems, Ltd (SSL) +070a Oki Electric Industry Co., Ltd + 4002 Bluetooth Device + 4003 Bluetooth Device +070d Comoss Electronic Co., Ltd +070e Excel Cell Electronic Co., Ltd +0710 Connect Tech, Inc. + 0001 WhiteHeat (fake ID) + 8001 WhiteHeat +0711 Magic Control Technology Corp. + 0100 Hub + 0180 IRXpress Infrared Device + 0181 IRXpress Infrared Device + 0200 BAY-3U1S1P Serial Port + 0210 MCT1S Serial Port + 0230 MCT-232 Serial Port + 0231 PS/2 Mouse Port + 0232 Serial On Port + 0240 PS/2 to USB Converter + 0300 BAY-3U1S1P Parallel Port + 0302 Parallel Port + 0900 SVGA Adapter + 5001 Trigger UV-002BD[Startech USBVGAE] +0713 Interval Research Corp. +0714 NewMotion, Inc. + 0003 ADB to USB convertor +0717 ZNK Corp. +0718 Imation Corp. + 0002 SuperDisk 120MB + 0003 SuperDisk 120MB (Authenticated) + 0060 Flash Drive + 0061 Flash Drive + 0062 Flash Drive + 0063 Swivel Flash Drive + 0064 Flash Drive + 0065 Flash Drive + 0066 Flash Drive + 0067 Flash Drive + 0068 Flash Drive + 0084 Flash Drive Mini + 0582 Revo Flash Drive + d000 Disc Stakka CD/DVD Manager +0719 Tremon Enterprises Co., Ltd +071b Domain Technologies, Inc. + 0002 DTI-56362-USB Digital Interface Unit + 0101 Audio4-USB DSP Data Acquisition Unit + 0201 Audio4-5410 DSP Data Acquisition Unit + 0301 SB-USB JTAG Emulator + 3203 Rockchip Media Player + 32bb Music Mediatouch +071c Xionics Document Technologies, Inc. +071d Eicon Networks Corp. + 1000 Diva ISDN TA + 1003 Diva + 2000 Teledat Surf +071e Ariston Technologies +0723 Centillium Communications Corp. + 0002 Palladia 300/400 Adsl Modem +0726 Vanguard International Semiconductor-America +0729 Amitm + 1000 USC-1000 Serial Port +072e Sunix Co., Ltd +072f Advanced Card Systems, Ltd + 0001 AC1030-based SmartCard Reader + 0008 ACR 80 Smart Card Reader + 1000 PLDT Drive + 1001 PLDT Drive + 8002 AET63 BioTRUSTKey + 8003 ACR120 + 8103 ACR120 + 9000 ACR38 AC1038-based Smart Card Reader + 90cc ACR38 SmartCard Reader + 90cf ACR38 SAM Smart Card Reader + 90d0 PertoSmart EMV - Card Reader +0731 Susteen, Inc. + 0528 SonyEricsson DCU-11 Cable +0732 Goldfull Electronics & Telecommunications Corp. +0733 ViewQuest Technologies, Inc. + 0101 Digital Video Camera + 0110 VQ110 Video Camera + 0401 CS330 Webcam + 0402 M-318B Webcam + 0430 Intel Pro Share Webcam + 0630 VQ630 Dual Mode Digital Camera(Bulk) + 0631 Hercules Dualpix + 0780 Smart Cam Deluxe(composite) + 1310 Epsilon 1.3/Jenoptik JD C1.3/UMAX AstraPix 470 + 1311 Digital Dream Epsilon 1.3 + 1314 Mercury 2.1MEG Deluxe Classic Cam + 2211 Jenoptik jdc 21 LCD Camera + 2221 Mercury Digital Pro 3.1p + 3261 Concord 3045 spca536a Camera + 3281 Cyberpix S550V +0734 Lasat Communications A/S + 0001 560V Modem + 0002 Lasat 560V Modem + 043a DVS Audio + 043b 3DeMon USB Capture +0735 Asuscom Network + 2100 ISDN Adapter + 2101 ISDN Adapter + 6694 ISDNlink 128K + c541 ISDN TA 280 +0736 Lorom Industrial Co., Ltd +0738 Mad Catz, Inc. + 4507 XBox Device + 4516 XBox Device + 4520 XBox Device + 4526 XBox Device + 4536 XBox Device + 4540 XBox Device + 4556 XBox Device + 4566 XBox Device + 4576 XBox Device + 4586 XBox Device + 4588 XBox Device + 8818 Street Fighter IV Arcade FightStick (PS3) +073a Chaplet Systems, Inc. +073b Suncom Technologies +073c Industrial Electronic Engineers, Inc. + 0305 Pole Display (PC305-3415 2 x 20 Line Display) + 0322 Pole Display (PC322-3415 2 x 20 Line Display) + 0324 Pole Display (LB324-USB 4 x 20 Line Display) + 0330 Pole Display (P330-3415 2 x 20 Line Display) + 0424 Pole Display (SP324-4415 4 x 20 Line Display) + 0450 Pole Display (L450-USB Graphic Line Display) + 0505 Pole Display (SPC505-3415 2 x 20 Line Display) + 0522 Pole Display (SPC522-3415 2 x 20 Line Display) + 0624 Pole Display (SP324-3415 4 x 20 Line Display) +073d Eutron S.p.a. + 0005 Crypto Token + 0007 CryptoIdentity CCID + 0025 SmartKey 3 + 0c00 Pocket Reader + 0d00 StarSign Bio Token 3.0 EU +073e NEC, Inc. + 0301 Game Pad +0745 Syntech Information Co., Ltd +0746 Onkyo Corp. + 5500 SE-U55 Audio Device +0747 Labway Corp. +0748 Strong Man Enterprise Co., Ltd +0749 EVer Electronics Corp. +074a Ming Fortune Industry Co., Ltd +074b Polestar Tech. Corp. +074c C-C-C Group PLC +074d Micronas GmbH + 3553 Composite USB-Device + 3554 Composite USB-Device + 3556 Composite USB-Device +074e Digital Stream Corp. + 0001 PS/2 Adapter + 0002 PS/2 Adapter +0755 Aureal Semiconductor +0757 Network Technologies, Inc. +075b Sophisticated Circuits, Inc. + 0001 Kick-off! Watchdog +0763 Midiman + 0115 O2 / KeyRig 25 + 0117 Trigger Finger + 0119 MidAir + 0150 M-Audio Uno + 0160 M-Audio 1x1 + 0192 M-Audio Keystation 88es + 0193 ProKeys 88 + 0194 ProKeys 88sx + 0195 Oxygen 8 v2 + 0196 Oxygen 49 + 0197 Oxygen 61 + 0198 Axiom 25 + 0199 Axiom 49 + 019a Axiom 61 + 019b KeyRig 49 + 019c KeyStudio + 1001 MidiSport 2x2 + 1002 MidiSport 2x2 + 1003 MidiSport 2x2 + 1010 MidiSport 1x1 + 1011 MidiSport 1x1 + 1014 M-Audio Keystation Loader + 1015 M-Audio Keystation + 1020 Midisport 4x4 + 1021 MidiSport 4x4 + 1030 Midisport 8x8 + 1031 MidiSport 8x8/s Loader + 1033 MidiSport 8x8/s + 1040 M-Audio MidiSport 2x4 Loader + 1041 M-Audio MidiSport 2x4 + 1110 MidiSport 1x1 + 2001 M Audio Quattro + 2002 M Audio Duo + 2003 M Audio AudioPhile + 2004 M-Audio MobilePre + 2006 M-Audio Transit + 2007 M-Audio Sonica Theater + 2008 M-Audio Ozone + 200d M-Audio OmniStudio + 200f M-Audio MobilePre + 2010 M-Audio Fast Track + 2012 M-Audio Fast Track Pro + 2013 M-Audio JamLab + 2015 M-Audio RunTime DFU + 2016 M-Audio RunTime DFU + 2019 M-Audio Ozone Academic + 201a M-Audio Micro + 201b M-Audio RunTime DFU + 201d M-Audio Producer + 2080 M-Audio RunTime DFU + 2081 M-Audio RunTime DFU / Fast Track Ultra 8R + 2803 M-Audio Audiophile DFU + 2804 M-Audio MobilePre DFU + 2806 M-Audio Transit DFU + 2815 M-Audio DFU + 2816 M-Audio DFU + 281b M-Audio DFU + 2880 M-Audio DFU + 2881 M-Audio DFU +0764 Cyber Power System, Inc. + 0005 Cyber Power UPS + 0501 CP1500 AVR UPS +0765 X-Rite, Inc. + d094 X-Rite DTP94 [Quato Silver Haze Pro] +0766 Jess-Link Products Co., Ltd + 0204 TopSpeed Cyberlink Remote Control +0767 Tokheim Corp. +0768 Camtel Technology Corp. + 0006 Camtel Technology USB TV Genie Pro FM Model TVB330 + 0023 eHome Infrared Receiver +0769 Surecom Technology Corp. + 11f2 EP-9001-g 802.11g 54M WLAN Adapter + 11f3 RT2570 + 11f7 802.11g 54M WLAN Adapter + 31f3 RT2573 +076a Smart Technology Enablers, Inc. +076b OmniKey AG + 0596 CardMan 2020 + 1021 CardMan 1021 + 1221 CardMan 1221 + 1784 CardMan 6020 + 3021 CardMan 3121 + 3610 CardMan 3620 + 3621 CardMan 3621 + 3821 CardMan 3821 + 4321 CardMan 4321 + 5121 CardMan 5121 + 5125 CardMan 5125 + 6622 CardMan 6121 + a011 CCID Smart Card Reader Keyboard + a021 CCID Smart Card Reader + a022 CardMan Smart@Link + c000 CardMan 3x21 CS + c001 CardMan 5121 CS +076c Partner Tech +076d Denso Corp. +076e Kuan Tech Enterprise Co., Ltd +076f Jhen Vei Electronic Co., Ltd +0770 Welch Allyn, Inc - Medical Division +0771 Observator Instruments BV + 4455 OMC45III + ae0f OMC45III +0774 AmTRAN Technology Co., Ltd +0775 Longshine Electronics Corp. +0776 Inalways Corp. +0777 Comda Enterprise Corp. +0778 Volex, Inc. +0779 Fairchild Semiconductor +077a Sankyo Seiki Mfg. Co., Ltd +077b Linksys + 08be BEFCMU10 v4 Cable Modem + 2219 WUSB11 V2.6 802.11b Adapter + 2226 USB200M 100baseTX Adapter + 2227 Network Everywhere NWU11B +077c Forward Electronics Co., Ltd + 0005 NEC Keyboard +077d Griffin Technology + 0223 IMic Audio In/Out + 0405 iMate, ADB Adapter + 0410 PowerMate + 041a PowerWave + 04aa SoundKnob + 07af iMic + 1016 AirClick + 627a Radio SHARK +077f Well Excellent & Most Corp. +0780 Sagem Monetel GmbH + 1202 ORGA 900 Smart Card Terminal Virtual Com Port + 1302 ORGA 6000 Smart Card Terminal Virtual Com Port + 1303 ORGA 6000 Smart Card Terminal USB RNDIS + df55 ORGA 900/6000 Smart Card Terminal DFU +0781 SanDisk Corp. + 0001 SDDR-05a ImageMate CompactFlash Reader + 0002 SDDR-31 ImageMate II CompactFlash Reader + 0005 SDDR-05b (CF II) ImageMate CompactFlash Reader + 0100 ImageMate SDDR-12 + 0200 SDDR-09 (SSFDC) ImageMate SmartMedia Reader [eusb] + 0400 SecureMate SD/MMC Reader + 0621 SDDR-86 Imagemate 6-in-1 Reader + 0720 Sansa C200 series in recovery mode + 0729 Sansa E200 series in recovery mode + 0810 SDDR-75 ImageMate CF-SM Reader + 0830 ImageMate CF/MMC/SD Reader + 1234 Cruzer Mini Flash Drive + 5150 SDCZ2 Cruzer Mini Flash Drive (thin) + 5151 Cruzer Micro Flash Drive + 5153 Cruzer Flash Drive + 5402 U3 Cruzer Micro + 5406 Cruzer Micro U3 + 5408 Cruzer Titanium U3 + 540e Cruzer Contour Flash Drive + 5530 Cruzer + 5567 Cruzer Blade + 5e10 Encrypted + 6100 Ultra II SD Plus 2GB + 7100 Cruzer Mini + 7101 Pen Flash + 7102 Cruzer Mini + 7103 Cruzer Mini + 7104 Cruzer Micro Mini 256MB Flash Drive + 7105 Cruzer Mini + 7106 Cruzer Mini + 7112 Cruzer Micro 128MB Flash Drive + 7113 Cruzer Micro 256MB Flash Drive + 7114 Cruzer Mini + 7115 Cruzer Mini + 7301 Sansa e100 series (mtp) + 7302 Sansa e100 series (msc) + 7400 Sansa M200 series (mtp) + 7401 Sansa M200 series (msc) + 7420 Sansa E200 series (mtp) + 7421 Sansa E200 Series (msc) + 7422 Sansa E200 series v2 (mtp) + 7423 Sansa E200 series v2 (msc) + 7430 Sansa M200 series + 7431 Sansa M200 series V4 (msc) + 7432 Sansa Clip (mtp) + 7433 Sansa Clip (msc) + 7434 Sansa Clip V2 (mtp) + 7435 Sansa Clip V2 (msc) + 7450 Sansa C250 + 7451 Sansa C240 + 7460 Sansa Express + 7480 Sansa Connect + 7481 Sansa Connect (in recovery mode) + 74b0 Sansa View (msc) + 74b1 Sansa View (mtp) + 74c0 Sansa Fuze (mtp) + 74c1 Sansa Fuze (msc) + 74c2 Sansa Fuze V2 (mtp) + 74c3 Sansa Fuze V2 (msc) + 74d0 Sansa Clip+ (mtp) + 74d1 Sansa Clip+ (msc) + 8181 Pen Flash + 8183 Hi-Speed Mass Storage Device + 8185 SDCZ2 Cruzer Mini Flash Drive (older, thick) + 8888 Card Reader + 8889 SDDR-88 Imagemate 8-in-1 Reader + 8919 Card Reader + 8989 ImageMate 12-in-1 Reader + 9191 ImageMate CF + 9219 Card Reader + 9292 ImageMate CF Reader/Writer + 9393 ImageMate SD-MMC + 9595 ImageMate xD-SM + 9797 ImageMate MS-PRO + 9919 Card Reader + 9999 SDDR-99 5-in-1 Reader + a7e8 SDDR-113 MicroMate SDHC Reader + b2b3 SDDR-103 MobileMate SD+ Reader + b4b5 SDDR-89 V4 ImageMate 12-in-1 Reader +0782 Trackerball +0783 C3PO + 0003 LTC31 SmartCard Reader + 0006 LTC31v2 + 0009 KBR36 + 0010 LTC32 +0784 Vivitar, Inc. + 0100 Vivicam 2655 + 1310 Vivicam 3305 + 1688 Vivicam 3665 + 1689 Gateway DC-M42/Labtec DC-505/Vivitar Vivicam 3705 + 2620 AOL Photocam Plus + 2888 Polaroid DC700 + 3330 Nytec ND-3200 Camera + 4300 Traveler D1 + 5260 Werlisa Sport PX 100 / JVC GC-A33 Camera + 5300 Pretec dc530 +0785 NTT-ME + 0001 MN128mini-V ISDN TA + 0003 MN128mini-J ISDN TA +0789 Logitec Corp. + 0026 LHD Device + 0033 DVD Multi-plus unit LDR-H443SU2 + 0063 LDR Device + 0064 LDR-R Device + 00b3 DVD Multi-plus unit LDR-H443U2 + 010c Realtek RTL8187 Wireless 802.11g 54Mbps Network Adapter + 0162 LAN-WN22/U2 Wireless LAN Adapter + 0163 LAN-WN12/U2 Wireless LAN Adapter + 0164 LAN-W150/U2M Wireless LAN Adapter + 0166 LAN-W300N/U2 Wireless LAN Adapter + 0168 LAN-W150N/U2 Wireless LAN Adapter +078b Happ Controls, Inc. + 0010 Driving UGCI + 0020 Flying UGCI + 0030 Fighting UGCI +078c GTCO/CalComp + 0090 Tablet Adapter + 0100 Tablet Adapter + 0200 Tablet Adapter + 0300 Tablet Adapter + 0400 Digitizer (Whiteboard) +078e Brincom, Inc. +0790 Pro-Image Manufacturing Co., Ltd +0791 Copartner Wire and Cable Mfg. Corp. +0792 Axis Communications AB +0793 Wha Yu Industrial Co., Ltd +0794 ABL Electronics Corp. +0795 RealChip, Inc. +0796 Certicom Corp. +0797 Grandtech Semiconductor Corp. + 6801 Flatbed Scanner + 6802 InkJet Color Printer + 8001 SmartCam + 801a Typhoon StyloCam + 801c Meade Binoculars/Camera + 8901 ScanHex SX-35a + 8909 ScanHex SX-35b + 8911 ScanHex SX-35c +0798 Optelec + 0001 Braille Voyager +0799 Altera + 7651 Programming Unit +079b Sagem + 0027 USB-Serial Controller + 002f Mobile + 0030 Mobile Communication Device + 0042 Mobile + 004a XG-760A 802.11bg + 004b Wi-Fi 11g adapter + 0056 Agfa AP1100 Photo Printer + 005d Mobile Mass Storage + 0062 XG-76NA 802.11bg + 0078 Laser Pro Monochrome MFP +079d Alfadata Computer Corp. + 0201 GamePort Adapter +07a1 Digicom S.p.A. + d952 Palladio USB V.92 Modem +07a2 National Technical Systems +07a3 Onnto Corp. +07a4 Be, Inc. +07a6 ADMtek, Inc. + 07c2 AN986A Ethernet + 0986 AN986 Pegasus Ethernet + 8266 Infineon WildCard-USB Wireless LAN Adapter + 8511 ADM8511 Pegasus II Ethernet + 8513 AN8513 Ethernet + 8515 AN8515 Ethernet +07aa Corega K.K. + 0001 Ether USB-T Ethernet [klsi] + 0004 FEther USB-TX Ethernet [pegasus] + 000c WirelessLAN USB-11 + 000d FEther USB-TXS + 0011 Wireless LAN USB-11 mini + 0012 Stick-11 802.11b Adapter + 0017 FEther USB2-TX + 0018 Wireless LAN USB-11 mini 2 + 001a ULUSB-11 Key + 001c CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887] + 002f CG-WLUSB2GNL + 003c CG-WLUSB2GNL + 003f CG-WLUSB300AGN + 0041 CG-WLUSB300GNS + 0042 CG-WLUSB300GNM + 0043 CG-WLUSB300N rev A2 [Realtek RTL8192U] + 0047 CG-WLUSBNM + 0051 CG-WLUSB300NM + 7613 Stick-11 V2 802.11b Adapter + 9601 FEther USB-TXC +07ab Freecom Technologies + fc01 IDE bridge + fc02 Cable II USB-2 + fc03 USB2-IDE IDE bridge + fcd6 Freecom HD Classic + fcf6 DataBar 512 MB + fcf8 Freecom Classic SL Network Drive +07af Microtech + 0004 SCSI-DB25 SCSI Bridge [shuttle] + 0005 SCSI-HD50 SCSI Bridge [shuttle] + 0006 CameraMate SmartMedia and CompactFlash Card Reader [eusb/shuttle] + fc01 Freecom USB-IDE +07b0 Trust Technologies + 0001 ISDN TA + 0002 ISDN TA128 Plus + 0003 ISDN TA128 Deluxe + 0005 ISDN TA128 SE + 0006 ISDN TA128 CE + 0007 ISDN TA + 0008 ISDN TA +07b1 IMP, Inc. +07b2 Motorola BCS, Inc. + 0100 SURFboard Voice over IP Cable Modem + 0900 SURFboard Gateway + 0950 SURFboard SBG950 Gateway + 1000 SURFboard SBG1000 Gateway + 4100 SurfBoard SB4100 Cable Modem + 4200 SurfBoard SB4200 Cable Modem + 4210 SurfBoard 4210 Cable Modem + 4220 SURFboard SB4220 Cable Modem + 4500 CG4500 Communications Gateway + 450b CG4501 Communications Gateway + 450e CG4500E Communications Gateway + 5100 SurfBoard SB5100 Cable Modem + 5101 SurfBoard SB5101 Cable Modem + 5120 SurfBoard SB5120 Cable Modem (RNDIS) + 5121 Surfboard 5121 Cable Modem + 7030 Wireless Adapter WU830G +07b3 Plustek, Inc. + 0001 OpticPro 1212U Scanner + 0003 Scanner + 0010 OpticPro U12 Scanner + 0011 OpticPro U24 Scanner + 0013 OpticPro UT12 Scanner + 0014 Scanner + 0015 OpticPro U24 Scanner + 0017 OpticPro UT12/16/24 Scanner + 0204 Scanner + 0400 OpticPro 1248U Scanner + 0401 OpticPro 1248U Scanner #2 + 0403 OpticPro U16B Scanner + 0404 Scanner + 0405 A8 Namecard-s Controller + 0406 A8 Namecard-D Controller + 0410 Scanner + 0412 Scanner + 0413 OpticSlim 1200 Scanner + 0601 OpticPro ST24 Scanner + 0800 OpticPro ST48 Scanner + 0906 OpticBook 3600 Scanner + 0a06 TVcam VD100 + 0b00 SmartPhoto F50 + 0c03 OpticPro ST64+ Scanner + 0c04 Optic Film 7200i scanner + 0c26 OpticBook 4600 Scanner + 0c2b Mobile Office D428 Scanner +07b4 Olympus Optical Co., Ltd + 0100 Camedia C-2100/C-3000 Ultra Zoom Camera + 0102 Camedia E-10/C-220/C-50 Camera + 0105 Camedia C-310Z/C-700/C-750UZ/C-755/C-765UZ/C-3040/C-4000/C-5050Z/D-560/C-3020Z Zoom Camera + 0109 C-370Z/C-500Z/D-535Z/X-450 + 010a MAUSB-10 xD and SmartMedia Card Reader + 0112 MAUSB-100 xD Card Reader + 0113 Mju 500 + 0114 C-350Z Camera + 0118 Digital Camera + 0184 P-S100 port + 0203 Digital Voice Recorder DW-90 + 0206 Digital Voice Recorder DS-330 + 0207 Digital Voice Recorder & Camera W-10 + 0209 Digital Voice Recorder DM-20 + 020d Digital Voice Recorder VN-240PC + 0280 m:robe 100 +07b5 Mega World International, Ltd + 0017 Joystick + 0213 Thrustmaster Firestorm Digital 3 Gamepad + 0312 Gamepad + 9902 GamePad +07b6 Marubun Corp. +07b7 TIME Interconnect, Ltd +07b8 AboCom Systems Inc + 110c XX1 + 1201 IEEE 802.11b Adapter + 200c XX2 + 2573 Wireless LAN Card + 2770 802.11n/b/g Mini Wireless LAN USB2.0 Adapter + 2870 802.11n/b/g Wireless LAN USB2.0 Adapter + 3070 802.11n/b/g Mini Wireless LAN USB2.0 Adapter + 3071 802.11n/b/g Mini Wireless LAN USB2.0 Adapter + 3072 802.11n/b/g Mini Wireless LAN USB2.0 Adapter + 4000 DU-E10 Ethernet [klsi] + 4002 DU-E100 Ethernet [pegasus] + 4003 1/10/100 Ethernet Adapter + 4004 XX4 + 4007 XX5 + 400b XX6 + 400c XX7 + 401a RTL8151 + 4102 USB 1.1 10/100M Fast Ethernet Adapter + 4104 XX9 + 420a UF200 Ethernet + 5301 GW-US54ZGL 802.11bg + 6001 802.11bg + a001 WUG2200 802.11g Wireless Adapter [Envara WiND512] + abc1 DU-E10 Ethernet [pegasus] + b000 BWU613 + b02a AboCom Bluetooth Device + b02b Bluetooth dongle + b02c BCM92045DG-Flash with trace filter + b02d BCM92045DG-Flash with trace filter + b02e BCM92045DG-Flash with trace filter + b030 BCM92045DG-Flash with trace filter + b031 BCM92045DG-Flash with trace filter + b032 BCM92045DG-Flash with trace filter + b033 BCM92045DG-Flash with trace filter + b21a WUG2400 802.11g Wireless Adapter [Texas Instruments TNETW1450] + b21b HWU54DM + b21c RT2573 + b21d RT2573 + b21e RT2573 + b21f WUG2700 + d011 MP3 Player + e001 Mass Storage Device + e002 Mass Storage Device + e003 Mass Storage Device + e004 Mass Storage Device + e005 Mass Storage Device + e006 Mass Storage Device + e007 Mass Storage Device + e008 Mass Storage Device + e009 Mass Storage Device + e00a Mass Storage Device + e4f0 Card Reader Driver + f101 DSB-560 Modem [atlas] +07bc Canon Computer Systems, Inc. +07bd Webgear, Inc. +07be Veridicom +07c0 Code Mercenaries Hard- und Software GmbH + 1121 The Claw + 1500 IO-Warrior 40 + 1501 IO-Warrior 24 + 1502 IO-Warrior 48 + 1503 IO-Warrior 28 + 1511 IO-Warrior 24 Power Vampire + 1512 IO-Warrior 24 Power Vampire +07c1 Keisokugiken + 0068 HKS-0200 USBDAQ +07c4 Datafab Systems, Inc. + 0102 USB to LS120 + 0103 USB to IDE + 1234 USB to ATAPI + a000 CompactFlash Card Reader + a001 CompactFlash & SmartMedia Card Reader [eusb] + a002 Disk Drive + a003 Datafab-based Reader + a004 USB to MMC Class Drive + a005 CompactFlash & SmartMedia Card Reader + a006 SmartMedia Card Reader + a007 Memory Stick Class Drive + a103 MDSM-B reader + a107 USB to Memory Stick (LC1) Drive + a109 LC1 CompactFlash & SmartMedia Card Reader + a10b USB to CF+MS(LC1) + a200 DF-UT-06 Hama MMC/SD Reader + a400 CompactFlash & Microdrive Reader + a600 Card Reader + ad01 Mass Storage Device + ae01 Mass Storage Device + af01 Mass Storage Device + b000 USB to CF(LC1) + b001 USB to CF+PCMCIA + b004 MMC/SD Reader + b006 USB to PCMCIA + b00a USB to CF+SD Drive(LC1) + b00b USB to Memory Stick(LC1) +07c5 APG Cash Drawer +07c6 ShareWave, Inc. + 0002 Bodega Wireless Access Point +07c7 Powertech Industrial Co., Ltd +07c8 B.U.G., Inc. + 0202 MN128-SOHO PAL +07c9 Allied Telesyn International + b100 AT-USB100 +07ca AVerMedia Technologies, Inc. + 0002 AVerTV PVR USB/EZMaker Pro Device + 0026 AVerTV + 0337 A867 DVB-T dongle + 1228 MPEG-2 Capture Device (M038) + 1830 AVerTV Volar Video Capture (H830) + 850a AverTV Volar Black HD (A850) + 850b AverTV Red HD+ (A850T) + a309 AVerTV DVB-T (A309) + a801 AVerTV DVB-T (A800) + a815 AVerTV DVB-T Volar X (A815) + a867 AVerTV DVB-T (A867) + b800 MR800 FM Radio + e880 MPEG-2 Capture Device (E880) + e882 MPEG-2 Capture Device (E882) +07cb Kingmax Technology, Inc. +07cc Carry Computer Eng., Co., Ltd + 0000 CF Card Reader + 0001 Reader (UICSE) + 0002 Reader (UIS) + 0003 SM Card Reader + 0004 SM/CF/PCMCIA Card Reader + 0005 Reader (UISA2SE) + 0006 SM/CF/PCMCIA Card Reader + 0007 Reader (UISA6SE) + 000c SM/CF Card Reader + 000d SM/CF Card Reader + 000e Reader (UISDA) + 000f Reader (UICLIK) + 0010 Reader (UISMA) + 0012 Reader (UISC6SE-FLASH) + 0014 Litronic Fortezza Reader + 0030 Mass Storage (UISDMC12S) + 0040 Mass Storage (UISDMC13S) + 0100 Reader (UID) + 0101 Reader (UIM) + 0102 Reader (UISDMA) + 0103 Reader (UISDMC) + 0104 Reader (UISDM) + 0200 6-in-1 Card Reader + 0201 Mass Storage (UISDMC1S & UISDMC3S) + 0202 Mass Storage (UISDMC5S) + 0203 Mass Storage (UISMC5S) + 0204 Mass Storage (UIM4/5S & UIM7S) + 0205 Mass Storage (UIS4/5S & UIS7S) + 0206 Mass Storage (UISDMC10S & UISDMC11S) + 0207 Mass Storage (UPIDMA) + 0208 Mass Storage (UCFC II) + 0210 Mass Storage (UPIXXA) + 0213 Mass Storage (UPIDA) + 0214 Mass Storage (UPIMA) + 0215 Mass Storage (UPISA) + 0217 Mass Storage (UPISDMA) + 0223 Mass Storage (UCIDA) + 0224 Mass Storage (UCIMA) + 0225 Mass Storage (UIS7S) + 0227 Mass Storage (UCIDMA) + 0234 Mass Storage (UIM7S) + 0235 Mass Storage (UIS4S-S) + 0237 Velper (UISDMC4S) + 0300 6-in-1 Card Reader + 0301 6-in-1 Card Reader + 0303 Mass Storage (UID10W) + 0304 Mass Storage (UIM10W) + 0305 Mass Storage (UIS10W) + 0308 Mass Storage (UIC10W) + 0309 Mass Storage (UISC3W) + 0310 Mass Storage (UISDMA2W) + 0311 Mass Storage (UISDMC14W) + 0320 Mass Storage (UISDMC4W) + 0321 Mass Storage (UISDMC37W) + 0330 WINTERREADER Reader + 0350 9-in-1 Card Reader + 0500 Mass Storage + 0501 Mass Storage +07cd Elektor + 0001 USBuart Serial Port +07cf Casio Computer Co., Ltd + 1001 QV-8000SX/5700/3000EX Digicam; Exilim EX-M20 + 1003 Exilim EX-S500 + 1004 Exilim EX-Z120 + 1011 USB-CASIO PC CAMERA + 1116 EXILIM EX-Z19 + 1133 Exilim EX-Z350 Digital Camera (mass storage mode) + 1233 Exilim EX-Z350 Digital Camera (PictBridge mode) + 2002 E-125 Cassiopeia Pocket PC + 3801 WMP-1 MP3-Watch + 4001 Label Printer KL-P1000 + 4007 CW50 Device + 4104 Cw75 Device + 4107 CW-L300 Device + 4500 LV-20 Digital Camera + 6801 PL-40R + 6802 MIDI Keyboard +07d0 Dazzle + 0001 Digital Video Creator I + 0002 Global Village VideoFX Grabber + 0003 Fusion Model DVC-50 Rev 1 (NTSC) + 0004 DVC-800 (PAL) Grabber + 0005 Fusion Video and Audio Ports + 0006 DVC 150 Loader Device + 0007 DVC 150 + 0327 Fusion Digital Media Reader + 1001 DM-FLEX DFU Adapter + 1002 DMHS2 DFU Adapter + 1102 CF Reader/Writer + 1103 SD Reader/Writer + 1104 SM Reader/Writer + 1105 MS Reader/Writer + 1106 xD/SM Reader/Writer + 1202 MultiSlot Reader/Writer + 2000 FX2 DFU Adapter + 2001 eUSB CompactFlash Reader + 4100 Kingsun SF-620 Infrared Adapter + 4101 Connectivity Cable (CA-42 clone) + 4959 Kingsun KS-959 Infrared Adapter +07d1 D-Link System + 13ec VvBus for Helium 2xx + 13ed VvBus for Helium 2xx + 13f1 DSL-302G Modem + 13f2 DSL-502G Router + 3300 DWA-130 802.11n Wireless N Adapter(rev.E) [Realtek RTL8192SU] + 3302 DWA-130 802.11n Wireless N Adapter(rev.C2) [Realtek RTL8192SU] + 3303 DWA-131 802.11n Wireless N Nano Adapter(rev.A1) [Realtek RTL8192SU] + 3a07 WUA-2340 RangeBooster G Adapter(rev.A) [Atheros AR5523] + 3a08 WUA-2340 RangeBooster G Adapter(rev.A) (no firmware) [Atheros AR5523] + 3a09 DWA-160 Xtreme N Dual Band USB Adapter(rev.A2) [Atheros AR9001U-(2)NG] + 3a0d DWA-120 802.11g Wireless 108G Adapter [Atheros AR5523] + 3a0f DWA-130 802.11n Wireless N Adapter(rev.D) [Atheros AR9001U-(2)NG] + 3a10 DWA-126 802.11n Wireless Adapter [Atheros AR9271] + 3b01 AirPlus G DWL-G122 Wireless Adapter(rev.D) [Marvell 88W8338+88W8010] + 3b10 RangeBooster N Adapter + 3b11 DWA-130 802.11n Wireless N Adapter(rev.A1) [Marvell W8360USB] + 3c03 AirPlus G DWL-G122 Wireless Adapter(rev.C1) [Ralink RT73] + 3c04 WUA-1340 + 3c05 EH103 Wireless G Adapter + 3c07 Wireless G DWA-110 Adapter + 3c09 DWA-140 RangeBooster N Adapter(rev.B1) [Ralink RT2870] + 3c0a DWA-140 RangeBooster N Adapter(rev.B2) [Ralink RT2870] + 3c0b DWA-110 Wireless G USB Adapter(rev.B) + 3c0d DWA-125 Wireless N 150 Adapter(rev.A1) [Ralink RT2870] + 3c0e WUA-2340 RangeBooster G Adapter(rev.B) [Ralink RT2070] + 3c0f AirPlus G DWL-G122 Wireless Adapter(rev.E) [Ralink RT2870] + 3c10 DWA-160 Xtreme N Dual Band USB Adapter(rev.A) [Atheros AR9001U-(2)NG] + 3c11 DWA-160 Xtreme N Dual Band USB Adapter(rev.B) [Ralink RT2870] + 3c13 DWA-130 802.11n Wireless N Adapter(rev.B) [Ralink RT2870] + 3c15 DWA-140 RangeBooster N Adapter(rev.B3) [Ralink RT2870] + 3c16 DWA-125 Wireless N 150 Adapter(rev.A2) [Ralink RT2870] + 3e02 DWM-156 3.75G HSUPA Adapter + 5100 Remote NDIS Device + a800 DWM-152 3.75G HSUPA Adapter + f101 DBT-122 Bluetooth + fc01 DBT-120 Bluetooth Adapter +07d2 Aptio Products, Inc. +07d3 Cyberdata Corp. +07d5 Radiant Systems +07d7 GCC Technologies, Inc. +07da Arasan Chip Systems +07de Diamond Multimedia + 2820 VC500 Video Capture Dongle +07df David Electronics Co., Ltd +07e1 Ambient Technologies, Inc. + 5201 V.90 Modem +07e2 Elmeg GmbH & Co., Ltd +07e3 Planex Communications, Inc. +07e4 Movado Enterprise Co., Ltd + 0967 SCard R/W CSR-145 + 0968 SCard R/W CSR-145 +07e5 QPS, Inc. + 05c2 IDE-to-USB2.0 PCA + 5c01 Que! CDRW +07e6 Allied Cable Corp. +07e7 Mirvo Toys, Inc. +07e8 Labsystems +07ea Iwatsu Electric Co., Ltd +07eb Double-H Technology Co., Ltd +07ec Taiyo Electric Wire & Cable Co., Ltd +07ee Torex Retail (formerly Logware) + 0002 Cash Drawer I/F +07ef STSN + 0001 Internet Access Device +07f2 Microcomputer Applications, Inc. + 0001 KEYLOK II +07f6 Circuit Assembly Corp. +07f7 Century Corp. + 0005 ScanLogic/Century Corporation uATA + 011e Century USB Disk Enclosure +07f9 Dotop Technology, Inc. +07fa DrayTek Corp. + 0778 miniVigor 128 ISDN TA + 1012 BeWAN ADSL USB ST (grey) + 1196 BWIFI-USB54AR 802.11bg + a904 BeWAN ADSL + a905 BeWAN ADSL ST +07fd Mark of the Unicorn + 0000 FastLane MIDI Interface + 0001 FastLane Quad MIDI Interface + 0002 MOTU Audio for 64 bit +07ff Unknown + 00ff Portable Hard Drive +0801 Mag-Tek + 0001 Mini Swipe Reader (Keyboard Emulation) + 0002 Mini Swipe Reader +0802 Mako Technologies, LLC +0803 Zoom Telephonics, Inc. + 1300 V92 Faxmodem + 4310 Wireless-G + 5241 Cable Modem + 5551 DSL Modem + 9700 2986L FaxModem + 9800 Cable Modem + a312 Wireless-G +0809 Genicom Technology, Inc. +080a Evermuch Technology Co., Ltd +080b Cross Match Technologies + 0002 Fingerprint Scanner (After ReNumeration) + 0010 300LC Series Fingerprint Scanner (Before ReNumeration) +080c Datalogic S.p.A. + 0300 Gryphon D120 Barcode Scanner + 0400 Gryphon D120 Barcode Scanner + 0500 Gryphon D120 Barcode Scanner + 0600 Gryphon M100 Barcode Scanner +080d Teco Image Systems Co., Ltd + 0102 Hercules Scan@home 48 + 0104 3.2Slim + 0110 UMAX AstraSlim 1200 Scanner +0810 Personal Communication Systems, Inc. + 0001 Dual PSX Adaptor + 0002 Dual PCS Adaptor +0813 Mattel, Inc. + 0001 Intel Play QX3 Microscope + 0002 Dual Mode Camera Plus +0819 eLicenser + 0101 License Management and Copy Protection +081a MG Logic + 1000 Duo Pen Tablet +081b Indigita Corp. + 0600 Storage Adapter + 0601 Storage Adapter +081c Mipsys +081e AlphaSmart, Inc. + df00 Handheld +0822 Reudo Corp. + 2001 IRXpress Infrared Device +0825 GC Protronics +0826 Data Transit +0827 BroadLogic, Inc. +0828 Sato Corp. +0829 DirecTV Broadband, Inc. (Telocity) +082d Handspring + 0100 Visor + 0200 Treo + 0300 Treo 600 + 0400 Handheld + 0500 Handheld + 0600 Handheld +0830 Palm, Inc. + 0001 m500 + 0002 m505 + 0003 m515 + 0004 Handheld + 0005 Handheld + 0006 Handheld + 0010 Handheld + 0011 Handheld + 0012 Handheld + 0013 Handheld + 0014 Handheld + 0020 i705 + 0021 Handheld + 0022 Handheld + 0023 Handheld + 0024 Handheld + 0030 Handheld + 0031 Tungsten W + 0032 Handheld + 0033 Handheld + 0034 Handheld + 0040 m125 + 0041 Handheld + 0042 Handheld + 0043 Handheld + 0044 Handheld + 0050 m130 + 0051 Handheld + 0052 Handheld + 0053 Handheld + 0054 Handheld + 0060 Tungsten C/E/T/T2/T3 / Zire 71 + 0061 Lifedrive / Treo 650/680 / Tunsten E2/T5/TX / Centro / Zire 21/31/72 / Z22 + 0062 Handheld + 0063 Handheld + 0064 Handheld + 0070 Zire + 0071 Handheld + 0072 Handheld + 0080 Serial Adapter [for Palm III] + 0081 Handheld + 0082 Handheld + 00a0 Treo 800w + 0101 Pre +0832 Kouwell Electronics Corp. + 5850 Cable +0833 Sourcenext Corp. + 012e KeikaiDenwa 8 with charger + 039f KeikaiDenwa 8 +0835 Action Star Enterprise Co., Ltd +0839 Samsung Techwin Co., Ltd + 0005 Digimax Camera + 0008 Digimax 230 Camera + 0009 Digimax 340 + 000a Digimax 410 + 000e Digimax 360 + 0010 Digimax 300 + 1003 Digimax 210SE + 1005 Digimax 220 + 1009 Digimax V4 + 1012 6500 Document Camera + 1058 S730 Camera + 1064 Digimax D830 Camera + 1542 Digimax 50 Duo + 3000 Digimax 35 MP3 +083a Accton Technology Corp. + 1046 10/100 Ethernet [pegasus] + 1060 HomeLine Adapter + 1f4d SMC8013WG Broadband Remote NDIS Device + 3046 10/100 Series Adapter + 3060 1/10/100 Adapter + 3501 2664W + 3502 WN3501D Wireless Adapter + 3503 T-Sinus 111 Wireless Adapter + 4501 T-Sinus 154data + 4502 Siemens S30853-S1016-R107 802.11g Wireless Adapter [Intersil ISL3886] + 4505 SMCWUSB-G 802.11bg + 4507 SMCWUSBT-G2 802.11g Wireless Adapter [Atheros AR5523] + 4521 Siemens S30863-S1016-R107-2 802.11g Wireless Adapter [Intersil ISL3887] + 5046 SpeedStream 10/100 Ethernet [pegasus] + 5501 Wireless Adapter 11g + 6500 Cable Modem + 6618 802.11n Wireless Adapter + 7511 Arcadyan 802.11N Wireless Adapter + 7512 Arcadyan 802.11N Wireless Adapter + 7522 Arcadyan 802.11N Wireless Adapter + 8522 Arcadyan 802.11N Wireless Adapter + 8541 WN4501F 802.11g Wireless Adapter [Intersil ISL3887] + a512 Arcadyan 802.11N Wireless Adapter + a618 SMCWUSBS-N EZ Connect N Draft 11n Wireless Adapter [Ralink RT2870] + a701 SMCWUSBS-N3 EZ Connect N Wireless Adapter [Ralink RT3070] + b004 CPWUE001 USB/Ethernet Adapter + b522 SMCWUSBS-N2 EZ Connect N Wireless Adapter [Ralink RT2870] + bb01 BlueExpert Bluetooth Device + c003 802.11b Wireless Adapter + c501 Zoom Wireless-G + c561 802.11a/g Wireless Adapter + d522 Speedport W 102 Stick IEEE 802.11n USB 2.0 Adapter + e501 ZD1211B + e503 Arcadyan WN4501 802.11b/g + e506 WUS-201 802.11bg + f501 802.11g Wireless Adapter + f502 802.11g Wireless Adapter + f522 Arcadyan WN7512 802.11n +083f Global Village + b100 TelePort V.90 Fax/Modem +0840 Argosy Research, Inc. + 0060 Storage Adapter Bridge Module +0841 Rioport.com, Inc. + 0001 Rio 500 +0844 Welland Industrial Co., Ltd +0846 NetGear, Inc. + 1001 EA101 10 Mbps 10BASE-T Ethernet [Kawasaki LSI KL5KLUSB101B] + 1002 Ethernet + 1020 FA101 Fast Ethernet USB 1.1 + 1040 FA120 Fast Ethernet USB 2.0 [Asix AX88172 / AX8817x] + 4110 MA111(v1) 802.11b Wireless [Intersil Prism 3.0] + 4200 WG121(v1) 54 Mbps Wireless [Intersil ISL3886] + 4210 WG121(v2) 54 Mbps Wireless [Intersil ISL3886] + 4220 WG111(v1) 54 Mbps Wireless [Intersil ISL3886] + 4230 MA111(v2) 802.11b Wireless [SIS SIS 162] + 4240 WG111(v1) rev 2 54 Mbps Wireless [Intersil ISL3887] + 4250 WG111T 802.11g Wireless Adapter [Atheros AR5523] + 4260 WG111v3 54 Mbps Wireless [realtek RTL8187B] + 4300 WG111U Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX] + 4301 WG111U (no firmware) Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX] + 5f00 WPN111 802.11g Wireless Adapter [Atheros AR5523] + 6a00 WG111v2 54 Mbps Wireless [RealTek RTL8187L] + 7100 WN121T RangeMax Next Wireless-N [Marvell TopDog] + 9000 WN111(v1) RangeMax Next Wireless [Marvell TopDog] + 9001 WN111(v2) RangeMax Next Wireless [Atheros AR9001U-(2)NG] + 9010 WNDA3100(v1) 802.11n [Atheros AR9001U-(2)NG] + 9011 WNDA3100(v2) 802.11n [Broadcom BCM4323] + 9018 WNDA3200 802.11abgn Wireless Adapter [Atheros AR7010+AR9280] + 9020 WNA3100(v1) Wireless-N 300 [Broadcom BCM43231] + 9030 WNA1100 Wireless-N 150 [Atheros AR9271] + 9040 WNA1000 Wireless-N 150 [Atheros AR9001U-(2)NG] + a001 PA101 10 Mbps HPNA Home Phoneline RJ-1 +084d Minton Optic Industry Co., Inc. + 0001 Jenoptik JD800i + 0003 S-Cam F5/D-Link DSC-350 Digital Camera + 0011 Argus DC3500 Digital Camera + 0014 Praktica DC 32 + 0019 Praktica DPix3000 + 0025 Praktica DC 60 + 1001 ScanHex SX-35d +084e KB Gear + 0001 JamCam Camera + 1001 Jam Studio Tablet + 1002 Pablo Tablet +084f Empeg + 0001 Empeg-Car Mark I/II Player +0850 Fast Point Technologies, Inc. +0851 Macronix International Co., Ltd + 1542 SiPix Blink + 1543 Maxell WS30 Slim Digital Camera, or Pandigital PI8004W01 digital photo frame + a168 MXIC +0852 CSEM +0853 Topre Corporation + 0100 HHKB Professional +0854 ActiveWire, Inc. + 0100 I/O Board + 0101 I/O Board, rev1 +0856 B&B Electronics + ac01 uLinks USOTL4 RS422/485 Adapter +0858 Hitachi Maxell, Ltd + 3102 Bluetooth Device + ffff Maxell module with BlueCore in DFU mode +0859 Minolta Systems Laboratory, Inc. +085a Xircom + 0001 Portstation Dual Serial Port + 0003 Portstation Paraller Port + 0008 Ethernet + 0009 Ethernet + 000b Portstation Dual PS/2 Port + 0021 1 port to Serial Converter + 0022 Parallel Port + 0023 2 port to Serial Converter + 0024 Parallel Port + 0027 1 port to Serial Converter + 0028 PortGear to SCSI Converter + 0032 PortStation SCSI Module + 003c Bluetooth Adapter + 0299 Colorvision, Inc. Monitor Spyder + 8021 1 port to Serial + 8023 2 port to Serial + 8027 PGSDB9 Serial Port +085c ColorVision, Inc. + 0200 Monitor Spyder +0862 Teletrol Systems, Inc. +0863 Filanet Corp. +0864 NetGear, Inc. + 4100 MA101 802.11b Adapter + 4102 MA101 802.11b Adapter +0867 Data Translation, Inc. + 9812 ECON Data acquisition unit + 9816 DT9816 ECON data acquisition module + 9836 DT9836 data acquisition card +086a Emagic Soft- und Hardware GmbH + 0001 Unitor8 + 0002 AMT8 + 0003 MT4 +086c DeTeWe - Deutsche Telephonwerke AG & Co. + 1001 Eumex 504PC ISDN TA + 1002 Eumex 504PC (FlashLoad) + 1003 TA33 ISDN TA + 1004 TA33 (FlashLoad) + 1005 Eumex 604PC HomeNet + 1006 Eumex 604PC HomeNet (FlashLoad) + 1007 Eumex 704PC DSL + 1008 Eumex 704PC DSL (FlashLoad) + 1009 Eumex 724PC DSL + 100a Eumex 724PC DSL (FlashLoad) + 100b OpenCom 30 + 100c OpenCom 30 (FlashLoad) + 100d BeeTel Home 100 + 100e BeeTel Home 100 (FlashLoad) + 1011 USB2DECT + 1012 USB2DECT (FlashLoad) + 1013 Eumex 704PC LAN + 1014 Eumex 704PC LAN (FlashLoad) + 1021 OpenCom 40 + 1022 OpenCom 40 (FlashLoad) + 1023 OpenCom 45 + 1024 OpenCom 45 (FlashLoad) + 1025 Sinus 61 data + 1029 dect BOX + 102c Eumex 604PC HomeNet [FlashLoad] + 1030 Eumex 704PC DSL [FlashLoad] + 1032 OpenCom 40 [FlashLoad] + 1033 OpenCom 30 plus + 1034 OpenCom 30 plus (FlashLoad) + 1055 Eumex 220 ISDN TA + 2000 OpenCom 1000 +086e System TALKS, Inc. + 1920 SGC-X2UL +086f MEC IMEX, Inc. +0870 Metricom + 0001 Ricochet GS +0871 SanDisk, Inc. + 0001 SDDR-01 Compact Flash Reader + 0002 SDDR-31 Compact Flash Reader + 0005 SDDR-05 Compact Flash Reader +0873 Xpeed, Inc. +0874 A-Tec Subsystem, Inc. +0879 Comtrol Corp. +087c Adesso/Kbtek America, Inc. +087d Jaton Corp. + 5704 Ethernet +087e Fujitsu Computer Products of America +087f Virtual IP Group, Inc. +0880 APT Technologies, Inc. +0883 Recording Industry Association of America (RIAA) +0885 Boca Research, Inc. +0886 XAC Automation Corp. + 0630 Intel PC Camera CS630 +0887 Hannstar Electronics Corp. +088b MassWorks, Inc. + 4944 MassWorks ID-75 TouchScreen +088c Swecoin AB + 2030 Ticket Printer TTP 2030 +088e iLok + 5036 Portable secure storage for software licenses +0892 DioGraphy, Inc. + 0101 Smartdio Reader/Writer +0897 Lauterbach + 0002 Power Debug/Power Debug II +089c United Technologies Research Cntr. +089d Icron Technologies Corp. +089e NST Co., Ltd +089f Primex Aerospace Co. +08a5 e9, Inc. +08a8 Andrea Electronics +08ae Macally (Mace Group, Inc.) +08b4 Sorenson Vision, Inc. +08b7 NATSU + 0001 Playstation adapter +08b8 J. Gordon Electronic Design, Inc. + 01f4 USBSIMM1 +08b9 RadioShack Corp. (Tandy) +08bb Texas Instruments Japan + 2702 Speakers + 2900 PCM2900 Audio Codec + 2901 PCM2901 Audio Codec + 2902 PCM2902 Audio Codec + 2904 PCM2904 Audio Codec + 2910 PCM2912 Audio Codec +08bd Citizen Watch Co., Ltd + 0208 CLP-521 Label Printer + 1100 X1-USB Floppy +08c3 Precise Biometrics + 0001 100 SC + 0002 100 A + 0003 100 SC BioKeyboard + 0006 100 A BioKeyboard + 0100 100 MC ISP + 0101 100 MC FingerPrint and SmartCard Reader + 0300 100 AX + 0400 100 SC + 0401 150 MC + 0402 200 MC FingerPrint and SmartCard Reader + 0404 100 SC Upgrade + 0405 150 MC Upgrade + 0406 100 MC Upgrade +08c4 Proxim, Inc. + 0100 Skyline 802.11b Wireless Adapter + 02f2 Farallon Home Phoneline Adapter +08c7 Key Nice Enterprise Co., Ltd +08c8 2Wire, Inc. +08c9 Nippon Telegraph and Telephone Corp. +08ca Aiptek International, Inc. + 0001 Tablet + 0010 Tablet + 0020 APT-6000U Tablet + 0021 APT-2 Tablet + 0022 Tablet + 0023 Tablet + 0024 Tablet + 0100 Pen Drive + 0102 DualCam + 0103 Pocket DV Digital Camera + 0104 Pocket DVII + 0105 Mega DV(Disk) + 0106 Pocket DV3100+ + 0107 Pocket DV3100 + 0109 Nisis DV4 Digital Camera + 010a Trust 738AV LCD PV Mass Storage + 0111 PenCam VGA Plus + 2008 Mini PenCam 2 + 2010 Pocket CAM 3 Mega (webcam) + 2011 Pocket CAM 3 Mega (storage) + 2016 PocketCam 2 Mega + 2018 Pencam SD 2M + 2020 Slim 3000F + 2022 Slim 3200 + 2024 Pocket DV3500 + 2028 Pocket Cam4M + 2040 Pocket DV4100M + 2042 Pocket DV5100M Composite Device + 2043 Pocket DV5100M (Disk) + 2060 Pocket DV5300 +08cd Jue Hsun Ind. Corp. +08ce Long Well Electronics Corp. +08cf Productivity Enhancement Products +08d1 smartBridges, Inc. + 0001 smartNIC Ethernet [catc] + 0003 smartNIC 2 PnP Ethernet +08d3 Virtual Ink +08d4 Fujitsu Siemens Computers + 0009 SCR SmartCard Reader +08d8 IXXAT Automation GmbH + 0002 USB-to-CAN compact + 0003 USB-to-CAN II + 0100 USB-to-CAN +08d9 Increment P Corp. +08dd Billionton Systems, Inc. + 0112 Wireless LAN Adapter + 0113 Wireless LAN Adapter + 0986 USB-100N Ethernet [pegasus] + 0987 USBLP-100 HomePNA Ethernet [pegasus] + 0988 USBEL-100 Ethernet [pegasus] + 1986 10/100 LAN Adapter + 2103 DVB-T TV-Tuner Card-R + 8511 USBE-100 Ethernet [pegasus2] + 90ff USB2AR Ethernet +08de ??? + 7a01 802.11b Adapter +08df Spyrus, Inc. + 0001 Rosetta Token V1 + 0002 Rosetta Token V2 + 0003 Rosetta Token V3 + 0a00 Lynks Interface +08e3 Olitec, Inc. + 0002 USB-RS232 Bridge + 0100 Interface ADSL + 0101 Interface ADSL + 0102 ADSL + 0301 RNIS +08e4 Pioneer Corp. +08e5 Litronic +08e6 Gemplus + 0001 GemPC-Touch 430 + 0430 GemPC430 SmartCard Reader + 0432 GemPC432 SmartCard Reader + 0435 GemPC435 SmartCard Reader + 0437 GemPC433 SL SmartCard Reader + 1359 UA SECURE STORAGE TOKEN + 2202 Gem e-Seal Pro Token + 3437 GemPC Twin SmartCard Reader + 3438 GemPC Key SmartCard Reader + 3478 PinPad Smart Card Reader + 4433 GemPC433-Swap + 5501 GemProx-PU Contactless Smart Card Reader + ace0 UA HYBRID TOKEN +08e7 Pan-International Wire & Cable +08e8 Integrated Memory Logic +08e9 Extended Systems, Inc. + 0100 XTNDAccess IrDA Dongle +08ea Ericsson, Inc., Blue Ridge Labs + 00c9 ADSL Modem HM120dp Loader + 00ca ADSL WAN Modem HM120dp + 00ce HM230d Virtual Bus for Helium + abba USB Driver for Bluetooth Wireless Technology + abbb Bluetooth Device in DFU State +08ec M-Systems Flash Disk Pioneers + 0001 TravelDrive 2C + 0002 TravelDrive 2C + 0005 TravelDrive 2C + 0008 TravelDrive 2C + 0010 DiskOnKey + 0011 DiskOnKey + 0012 TravelDrive 2C + 0014 TravelDrive 2C + 0015 Kingston DataTraveler ELITE + 0016 Kingston DataTraveler U3 + 0020 TravelDrive + 0021 TravelDrive + 0022 TravelDrive + 0023 TravelDrive + 0024 TravelDrive + 0025 TravelDrive + 0026 TravelDrive + 0027 TravelDrive + 0028 TravelDrive + 0029 TravelDrive + 0030 TravelDrive + 0822 TravelDrive 2C + 0832 Hi-Speed Mass Storage Device + 0834 M-Disk 220 + 0998 Kingston Data Traveler2.0 Disk Driver + 0999 Kingston Data Traveler2.0 Disk Driver + 1000 TravelDrive 2C + 2000 TravelDrive 2C + 2038 TravelDrive + 2039 TravelDrive + 204a TravelDrive + 204b TravelDrive +08ed MediaTek Inc. + 0002 CECT M800 memory card +08ee CCSI/Hesso +08f0 Corex Technologies +08f1 CTI Electronics Corp. +08f2 Gotop Information Inc. + 007f Super Q2 Tablet +08f5 SysTec Co., Ltd +08f6 Logic 3 International, Ltd +08f7 Vernier + 0001 LabPro + 0002 EasyTemp/Go!Temp + 0003 Go!Link + 0004 Go!Motion +08f8 Keen Top International Enterprise Co., Ltd +08f9 Wipro Technologies +08fa Caere +08fb Socket Communications +08fc Sicon Cable Technology Co., Ltd +08fd Digianswer A/S + 0001 Bluetooth Device +08ff AuthenTec, Inc. + 1600 AES1600 + 1610 AES1600 + 2500 AES2501 + 2501 AES2501 + 2502 AES2501 + 2503 AES2501 + 2504 AES2501 + 2505 AES2501 + 2506 AES2501 + 2507 AES2501 + 2508 AES2501 + 2509 AES2501 + 250a AES2501 + 250b AES2501 + 250c AES2501 + 250d AES2501 + 250e AES2501 + 250f AES2501 + 2510 AES2510 + 2580 AES2501 Fingerprint Sensor + 2588 AES2501 + 2589 AES2501 + 258a AES2501 + 258b AES2501 + 258c AES2501 + 258d AES2501 + 258e AES2501 + 258f AES2501 + 2810 AES2810 + 3400 AES3400 TruePrint Sensor + 3401 AES3400 Sensor + 3402 AES3400 Sensor + 3403 AES3400 Sensor + 3404 AES3400 TruePrint Sensor + 3405 AES3400 TruePrint Sensor + 3406 AES3400 TruePrint Sensor + 3407 AES3400 TruePrint Sensor + 4902 BioMV with TruePrint AES3500 + 4903 BioMV with TruePrint AES3400 + 5500 AES4000 + 5501 AES4000 TruePrint Sensor + 5503 AES4000 TruePrint Sensor + 5505 AES4000 TruePrint Sensor + 5507 AES4000 TruePrint Sensor + 55ff AES4000 TruePrint Sensor. + 5700 AES3500 Fingerprint Reader + 5701 AES3500 TruePrint Sensor + 5702 AES3500 TruePrint Sensor + 5703 AES3500 TruePrint Sensor + 5704 AES3500-BZ TruePrint Sensor + 5705 AES3500-BZ TruePrint Sensor + 5706 AES3500-BZ TruePrint Sensor + 5707 AES3500-BZ TruePrint Sensor + 5710 AES3500 TruePrint Sensor + 5711 AES3500 TruePrint Sensor + 5712 AES3500 TruePrint Sensor + 5713 AES3500 TruePrint Sensor + 5714 AES3500-BZ TruePrint Sensor + 5715 AES3500-BZ TruePrint Sensor + 5716 AES3500-BZ TruePrint Sensor + 5717 AES3500-BZ TruePrint Sensor + 5730 AES3500 TruePrint Sensor + 5731 AES3500 TruePrint Sensor + 5732 AES3500 TruePrint Sensor + 5733 AES3500 TruePrint Sensor + 5734 AES3500-BZ TruePrint Sensor + 5735 AES3500-BZ TruePrint Sensor + 5736 AES3500-BZ TruePrint Sensor + 5737 AES3500-BZ TruePrint Sensor + afe3 FingerLoc Sensor Module (Anchor) + afe4 FingerLoc Sensor Module (Anchor) + afe5 FingerLoc Sensor Module (Anchor) + afe6 FingerLoc Sensor Module (Anchor) + fffd AES2510 Sensor (USB Emulator) + ffff Sensor (Emulator) +0900 Pinnacle Systems, Inc. +0901 VST Technologies + 0001 Hard Drive Adapter (TPP) + 0002 SigmaDrive Adapter (TPP) +0906 Faraday Technology Corp. +0908 ShenZhen SANZHAI Technology Co.,Ltd + 2701 Spy Pen VGA +0909 Audio-Technica Corp. +090a Trumpion Microelectronics, Inc. + 1001 T33520 Flash Card Controller + 1100 Comotron C3310 MP3 player + 1200 MP3 player + 1540 Digitex Container Flash Disk +090b Neurosmith +090c Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) + 0371 Silicon Motion SM371 Camera + 0373 Silicon Motion Camera + 037a Silicon Motion Camera + 037b Silicon Motion Camera + 1000 Flash Drive + 1132 5-in-1 Card Reader + 337b Silicon Motion Camera + 3710 Silicon Motion Camera + 3720 Silicon Motion Camera + 37c0 Silicon Motion Camera + 6000 SD/SDHC Card Reader (SG365 / FlexiDrive XC+) + 6200 microSD card reader + 837b Silicon Motion Camera + 937b Silicon Motion Camera + b370 Silicon Motion SM370 Camera + b371 Silicon Motion SM371 Camera +090d Multiport Computer Vertriebs GmbH +090e Shining Technology, Inc. +090f Fujitsu Devices, Inc. +0910 Alation Systems, Inc. +0911 Philips Speech Processing + 2512 SpeechMike Pro +0912 Voquette, Inc. +0915 GlobeSpan, Inc. + 0001 DSL Modem + 0002 ADSL ATM Modem + 0005 LAN Modem + 2000 802.11 Adapter + 2002 802.11 Adapter + 8000 ADSL LAN Modem + 8005 DSL-302G Modem + 8101 ADSL WAN Modem + 8102 DSL-200 ADSL Modem + 8103 DSL-200 ADSL Modem + 8104 DSL-200 Modem + 8400 DSL Modem + 8401 DSL Modem + 8402 DSL Modem + 8500 DSL Modem + 8501 DSL Modem +0917 SmartDisk Corp. + 0001 eFilm Reader-11 SM/CF + 0002 eFilm Reader-11 SM + 0003 eFilm Reader-11 CF + 0200 FireFly + 0201 FireLite + 0202 STORAGE ADAPTER (FirePower) + 0204 FlashTrax Storage + 0205 STORAGE ADAPTER (CrossFire) + 0206 FireFly 20G HDD + 0207 FireLite + 020f STORAGE ADAPTER (FireLite) + da01 eFilm Reader-11 Test + ffff eFilm Reader-11 (Class/PDR) +0919 Tiger Electronics + 0100 Fast Flicks Digital Camera +091e Garmin International + 0003 GPS (various models) + 0004 iQue 3600 + 0200 Data Card Programmer (install) + 1200 Data Card Programmer + 21a5 etrex Cx (msc) + 2271 Edge 605/705 + 2295 Colorado 300 + 22b6 eTrex Vista HCx (Mass Storage mode) + 2353 Nüvi 205T + 2535 Edge 800 +0920 Echelon Co. + 7500 Network Interface +0921 GoHubs, Inc. + 1001 GoCOM232 Serial +0922 Dymo-CoStar Corp. + 0007 LabelWriter 330 + 0009 LabelWriter 310 +0923 IC Media Corp. + 010f SIIG MobileCam +0924 Xerox + 23dd DocuPrint M760 (X760_USB) + 3ce8 Phaser 3428 Printer + 3d5b Phaser 6115MFP TWAIN Scanner + 420f WorkCentre PE220 Series + 421f M20 Scanner + 423b Printing Support + ffef WorkCenter M15 + fffb DocuPrint M750 (X750_USB) +0925 Lakeview Research + 0005 Gamtec.,Ltd SmartJoy PLUS Adapter + 8101 Phidgets, Inc., 1-Motor PhidgetServo v2.0 + 8104 Phidgets, Inc., 4-Motor PhidgetServo v2.0 + 8800 WiseGroup Ltd, MP-8800 Quad Joypad + 8866 WiseGroup Ltd, MP-8866 Dual Joypad +0927 Summus, Ltd +0928 Oxford Semiconductor, Ltd +0929 American Biometric Co. +092a Toshiba Information & Industrial Sys. And Services +092b Sena Technologies, Inc. +092f Northern Embedded Science/CAVNEX + 0004 JTAG-4 + 0005 JTAG-5 +0930 Toshiba Corp. + 0009 Gigabeat F/X (HDD audio player) + 000c Gigabeat F (mtp) + 0010 Gigabeat S (mtp) + 0301 PCX1100U Cable Modem (WDM) + 0302 PCX2000 Cable Modem (WDM) + 0305 Cable Modem PCX3000 + 0307 Cable Modem PCX2500 + 0308 PCX2200 Cable Modem (WDM) + 0309 PCX5000 Cable Modem (WDM) + 030b Cable Modem PCX2600 + 0501 Bluetooth Controller + 0502 Integrated Bluetooth + 0503 Bluetooth Controller + 0505 Integrated Bluetooth + 0506 Integrated Bluetooth + 0507 Bluetooth Adapter + 0508 Integrated Bluetooth HCI + 0509 BT EDR Dongle + 0706 PocketPC e740 + 0707 Pocket PC e330 Series + 0708 Pocket PC e350 Series + 0709 Pocket PC e750 Series + 070a Pocket PC e400 Series + 070b Pocket PC e800 Series + 0a07 WLM-10U1 802.11abgn Wireless Adapter [Ralink RT3572] + 0b05 PX1220E-1G25 External hard drive + 0b09 PX1396E-3T01 External hard drive + 1300 Wireless Broadband (CDMA EV-DO) SM-Bus Minicard Status Port + 1301 Wireless Broadband (CDMA EV-DO) Minicard Status Port + 1302 Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port + 1303 Wireless Broadband (3G HSDPA) Minicard Status Port + 1308 Broadband (3G HSDPA) SM-Bus Minicard Diagnostics Port + 130b F3507g Mobile Broadband Module + 130c F3607gw Mobile Broadband Module + 1311 F3607gw v2 Mobile Broadband Module + 642f TravelDrive + 6506 TravelDrive 2C + 6507 TravelDrive 2C + 6508 TravelDrive 2C + 6509 TravelDrive 2C + 6510 TravelDrive 2C + 6517 TravelDrive 2C + 6518 TravelDrive 2C + 6519 Kingston DataTraveler 2.0 USB Stick + 651a TravelDrive 2C + 651b TravelDrive 2C + 651c TravelDrive 2C + 651d TravelDrive 2C + 651e TravelDrive 2C + 651f TravelDrive 2C + 6520 TravelDrive 2C + 6521 TravelDrive 2C + 6522 TravelDrive 2C + 6523 TravelDrive + 6524 TravelDrive + 6525 TravelDrive + 6526 TravelDrive + 6527 TravelDrive + 6528 TravelDrive + 6529 TravelDrive + 652a TravelDrive + 652b TravelDrive + 652c TravelDrive + 652d TravelDrive + 652f TravelDrive + 6530 TravelDrive + 6531 TravelDrive + 6532 256M Stick + 6533 512M Stick + 6534 TravelDrive + 653c Kingston DataTraveler 2.0 Stick (512M) + 653d Kingston DataTraveler 2.0 Stick (1GB) + 653e Flash Memory + 6540 TransMemory Flash Memory + 6544 Kingston DataTraveler 2.0 Stick (2GB) + 6545 Kingston DataTraveler 102 Flash Drive / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick +0931 Harmonic Data Systems, Ltd +0932 Crescentec Corp. + 0300 VideoAdvantage + 0302 Syntek DC-112X + 0320 VideoAdvantage + 0482 USB2.0 TVBOX + 1100 DC-1100 Video Enhamcement Device + 1112 Veo Web Camera + a311 Video Enhancement Device +0933 Quantum Corp. +0934 Netcom Systems +0936 NuTesla + 0030 Composite Device, Mass Storage Device (Flash Drive) amd HID + 003c Rhythmedics HID Bootloader +0939 Lumberg, Inc. +093a Pixart Imaging, Inc. + 0007 CMOS 100K-R Rev. 1.90 + 010e Digital camera, CD302N/Elta Medi@ digi-cam/HE-501A + 010f Argus DC-1610/DC-1620/Emprex PCD3600/Philips P44417B keychain camera/Precision Mini,Model HA513A/Vivitar Vivicam 55 + 020f Bullet Line Photo Viewer + 050f Mars-Semi Pc-Camera + 2460 Q-TEC WEBCAM 100 + 2468 SoC PC-Camera + 2470 SoC PC-Camera + 2471 SoC PC-Camera + 2500 USB Optical Mouse + 2510 Optical Mouse + 2600 Typhoon Easycam USB 330K (newer)/Typhoon Easycam USB 2.0 VGA 1.3M/Sansun SN-508 + 2601 SPC 610NC Laptop Camera + 2603 PAC7312 Camera + 2608 PAC7311 Trust WB-3300p + 260e PAC7311 Gigaware VGA PC Camera:Trust WB-3350p:SIGMA cam 2350 + 260f PAC7311 SnakeCam + 2621 PAC731x Trust Webcam + 2624 Webcam +093b Plextor Corp. + 0010 Storage Adapter + 0011 PlexWriter 40/12/40U + 0041 PX-708A DVD RW + 0042 PX-712UF DVD RW + a002 ConvertX M402U XLOADER + a003 ConvertX AV100U A/V Capture Audio + a004 ConvertX TV402U XLOADER + a005 ConvertX TV100U A/V Capture + a102 ConvertX M402U A/V Capture + a104 ConvertX PX-TV402U/NA +093c Intrepid Control Systems, Inc. + 0601 ValueCAN + 0701 NeoVI Blue vehicle bus interface +093d InnoSync, Inc. +093e J.S.T. Mfg. Co., Ltd +093f Olympia Telecom Vertriebs GmbH +0940 Japan Storage Battery Co., Ltd +0941 Photobit Corp. +0942 i2Go.com, LLC +0943 HCL Technologies India Private, Ltd +0944 KORG, Inc. + 0001 PXR4 4-Track Digital Recorder + 0020 KAOSS Pad KP3 Dynamic Effect/Sampler + 010d nanoKEY MIDI keyboard + 010e nanoPAD pad controller + 010f nanoKONTROL studio controller + 0f03 K-Series K61P MIDI studio controller +0945 Pasco Scientific +0948 Kronauer music in digital + 0301 USB Pro (24/48) + 0302 USB Pro (24/96 playback) + 0303 USB Pro (24/96 record) + 0304 USB Pro (16/48) + 1105 USB One +094b Linkup Systems Corp. + 0001 neonode N2 +094d Cable Television Laboratories +094f Yano + 0101 U640MO-03 + 05fc METALWEAR-HDD +0951 Kingston Technology + 0008 Ethernet + 000a KNU101TX 100baseTX Ethernet + 1600 DataTraveler II Pen Drive + 1601 DataTraveler II+ Pen Drive + 1602 DataTraveler Mini + 1603 DataTraveler 1GB/2GB Pen Drive + 1607 DataTraveler 100 + 1613 DataTraveler DT101C Flash Drive + 1616 Kingston DataTraveler Locker (4GB) + 1624 DataTraveler G2 + 1625 DataTraveler 101 II + 162a DataTraveler 112 4GB Pen Drive + 1643 DataTraveler G3 4GB +0954 RPM Systems Corp. +0955 NVidia Corp. +0956 BSquare Corp. +0957 Agilent Technologies, Inc. + 0200 E-Video DC-350 Camera + 0202 E-Video DC-350 Camera +0958 CompuLink Research, Inc. +0959 Cologne Chip AG + 2bd0 Intelligent ISDN (Ver. 3.60.04) +095a Portsmith + 3003 Express Ethernet +095b Medialogic Corp. +095c K-Tec Electronics +095d Polycom, Inc. + 0001 Polycom ViaVideo +0967 Acer (??) + 0204 WarpLink 802.11b Adapter +0968 Catalyst Enterprises, Inc. +096e Feitian Technologies, Inc. + 0802 ePass2000 (G&D STARCOS SPK 2.4) +0971 Gretag-Macbeth AG + 2003 Eye-One display + 2005 Huey + 2007 ColorMunki +0973 Schlumberger + 0001 e-gate Smart Card +0974 Datagraphix, a business unit of Anacomp +0975 OL'E Communications, Inc. +0976 Adirondack Wire & Cable +0977 Lightsurf Technologies +0978 Beckhoff GmbH +0979 Jeilin Technology Corp., Ltd + 0224 JL2005A Toy Camera + 0226 JL2005A Toy Camera +097a Minds At Work LLC + 0001 Digital Wallet +097b Knudsen Engineering, Ltd +097c Marunix Co., Ltd +097d Rosun Technologies, Inc. +097f Barun Electronics Co., Ltd +0981 Oak Technology, Ltd +0984 Apricorn + 0200 Hard Drive Storage (TPP) +0985 cab Produkttechnik GmbH & Co KG + 0045 Mach4/200 Label Printer + 00a3 A3/200 or A3/300 Label Printer +0986 Matsushita Electric Works, Ltd. +098c Vitana Corp. +098d INDesign +098e Integrated Intellectual Property, Inc. +098f Kenwood TMI Corp. +0993 Gemstar eBook Group, Ltd + 0001 REB1100 eBook Reader + 0002 eBook +0996 Integrated Telecom Express, Inc. +099a Zippy Technology Corp. + 0638 Sanwa Supply Inc. Small Keyboard + 610c EL-610 Super Mini Electron luminescent Keyboard + 7160 Hyper Slim Keyboard +09a3 PairGain Technologies +09a4 Contech Research, Inc. +09a5 VCON Telecommunications +09a6 Poinchips + 8001 Mass Storage Device +09a7 Data Transmission Network Corp. +09a8 Lin Shiung Enterprise Co., Ltd +09a9 Smart Card Technologies Co., Ltd +09aa Intersil Corp. + 1000 Prism GT 802.11b/g Adapter + 3642 Prism 2.x 802.11b Adapter +09ab Japan Cash Machine Co., Ltd. +09ae Tripp Lite +09b2 Franklin Electronic Publishers, Inc. + 0001 eBookman Palm Computer +09b3 Altius Solutions, Inc. +09b4 MDS Telephone Systems +09b5 Celltrix Technology Co., Ltd +09bc Grundig + 0002 MPaxx MP150 MP3 Player +09be MySmart.Com + 0001 MySmartPad +09bf Auerswald GmbH & Co. KG + 00c0 COMpact 2104 ISDN PBX + 00db COMpact 4410/2206 ISDN ISDN + 00f1 COMfort System Telephones +09c0 Genpix Electronics, LLC + 0202 8PSK DVB-S tuner + 0203 Skywalker-1 DVB-S tuner + 0204 Skywalker-CW3K DVB-S tuner + 0205 Skywalker-CW3K DVB-S tuner + 0206 Skywalker-2 DVB-S tuner +09c1 Arris Interactive LLC + 1337 TOUCHSTONE DEVICE +09c2 Nisca Corp. +09c3 ActivCard, Inc. + 0007 Reader V2 + 0008 ZFG-9800-AC SmartCard Reader +09c4 ACTiSYS Corp. + 0011 ACT-IR2000U IrDA Dongle +09c5 Memory Corp. +09cc Workbit Corp. + 0404 BAFO USB-ATA/ATAPI Bridge Controller +09cd Psion Dacom Home Networks, Ltd + 2001 Psion WaveFinder DAB radio receiver +09ce City Electronics, Ltd +09cf Electronics Testing Center, Taiwan +09d1 NeoMagic, Inc. +09d2 Vreelin Engineering, Inc. +09d3 Com One + 0001 ISDN TA +09d7 Novatel Wireless + 0100 NovAtel FlexPack GPS receiver +09d9 KRF Tech, Ltd +09da A4 Tech Co., Ltd + 0006 Optical Mouse WOP-35 / Trust 450L Optical Mouse + 000a Port Mouse + 0018 Trust Human Interface Device + 001a Wireless Mouse & RXM-15 Receiver + 002a Wireless Optical Mouse NB-30 + 022b Wireless Mouse (Battery Free) + 024f RF Receiver and G6-20D Wireless Optical Mouse + 032b Wireless Mouse (Battery Free) + 9090 XL-750BK Laser Mouse +09db Measurement Computing Corp. + 0075 MiniLab 1008 + 0076 PMD-1024 + 007a PMD-1208LS + 0081 USB-1616FS + 0082 USB-1208FS + 0088 USB-1616FS internal hub +09dc Aimex Corp. +09dd Fellowes, Inc. +09df Addonics Technologies Corp. +09e1 Intellon Corp. + 5121 MicroLink dLAN +09e5 Jo-Dan International, Inc. +09e6 Silutia, Inc. +09e7 Real 3D, Inc. +09e8 AKAI Professional M.I. Corp. + 0062 MPD16 MIDI Pad Controller Unit + 006d EWI electronic wind instrument + 0071 MPK25 MIDI Keyboard + 0076 LPK25 MIDI Keyboard +09e9 Chen-Source, Inc. +09eb IM Networks, Inc. + 4331 iRhythm Tuner Remote +09ef Xitel + 0101 MD-Port DG2 MiniDisc Interface +09f3 GoFlight, Inc. + 0018 GF-46 Multi-Mode Display Module + 0028 RP-48 Combination Pushbutton-Rotary Module + 0048 LGTII - Landing Gear and Trim Control Module + 0064 MCPPro - Airliner Mode Control Panel (Autopilot) + 0300 EFIS - Electronic Flight Information System +09f5 AresCom + 0168 Network Adapter + 0188 LAN Adapter + 0850 Adapter +09f6 RocketChips, Inc. +09f7 Edu-Science (H.K.), Ltd +09f8 SoftConnex Technologies, Inc. +09f9 Bay Associates +09fa Mtek Vision +09fb Altera + 6001 Blaster +09ff Gain Technology Corp. +0a00 Liquid Audio +0a01 ViA, Inc. +0a07 Ontrak Control Systems Inc. + 0064 ADU100 Data Acquisition Interface + 0078 ADU120 Data Acquisition Interface + 0082 ADU130 Data Acquisition Interface + 00c8 ADU200 Relay I/O Interface + 00d0 ADU208 Relay I/O Interface + 00da ADU218 Solid-State Relay I/O Interface +0a0b Cybex Computer Products Co. +0a11 Xentec, Inc. +0a12 Cambridge Silicon Radio, Ltd + 0001 Bluetooth Dongle (HCI mode) + 0002 Frontline Test Equipment Bluetooth Device + 0003 Nanosira + 0004 Nanosira WHQL Reference Radio + 0005 Nanosira-Multimedia + 0006 Nanosira-Multimedia WHQL Reference Radio + 0007 Nanosira3-ROM + 0008 Nanosira3-ROM + 0009 Nanosira4-EDR WHQL Reference Radio + 000a Nanosira4-EDR-ROM + 000b Nanosira5-ROM + 0043 Bluetooth Device + 0100 Casira with BlueCore2-External Module + 0101 Casira with BlueCore2-Flash Module + 0102 Casira with BlueCore3-Multimedia Module + 0103 Casira with BlueCore3-Flash Module + 0104 Casira with BlueCore4-External Module + 0105 Casira with BlueCore4-Multimedia Module + 1000 Bluetooth Dongle (HID proxy mode) + 1010 Bluetooth Device + 1011 Bluetooth Device + 1012 Bluetooth Device + ffff USB Bluetooth Device in DFU State +0a13 Telebyte, Inc. +0a14 Spacelabs Medical, Inc. +0a15 Scalar Corp. +0a16 Trek Technology (S) PTE, Ltd + 1111 ThumbDrive + 8888 IBM USB Memory Key + 9988 Trek2000 TD-G2 +0a17 Pentax Corp. + 0004 Optio 330 + 0006 Optio S + 0007 Optio 550 + 0009 Optio 33WR + 000a Optio 555 + 000c Optio 43WR (mass storage mode) + 000d Optio 43WR + 0015 Optio S40/S5i + 003b Optio 50 (mass storage mode) + 003d Optio S55 + 0043 *ist DL + 0047 Optio S60 + 0052 Optio 60 Digital Camera + 006e K10D + 0070 K100D + 0093 K200D + 00a7 Optio E50 + 1001 EI2000 Camera powered by Digita! +0a18 Heidelberger Druckmaschinen AG +0a19 Hua Geng Technologies, Inc. +0a21 Medtronic Physio Control Corp. + 8001 MMT-7305WW [Medtronic Minimed CareLink] +0a22 Century Semiconductor USA, Inc. +0a27 Datacard Group + 0102 SP35 +0a2c AK-Modul-Bus Computer GmbH + 0008 GPIO Ports +0a34 TG3 Electronics, Inc. + 0101 TG82tp + 0110 Deck 82-key backlit keyboard +0a35 Radikal Technologies + 002a SAC - Software Assigned Controller + 008a SAC Hub +0a39 Gilat Satellite Networks, Ltd +0a3a PentaMedia Co., Ltd + 0163 KN-W510U 1.0 Wireless LAN Adapter +0a3c NTT DoCoMo, Inc. +0a3d Varo Vision +0a3f Swissonic AG +0a43 Boca Systems, Inc. +0a46 Davicom Semiconductor, Inc. + 0268 ST268 + 6688 ZT6688 Fast Ethernet Adapter + 8515 ADMtek ADM8515 NIC + 9000 DM9000E Fast Ethernet Adapter + 9601 DM9601 Fast Ethernet Adapter +0a47 Hirose Electric +0a48 I/O Interconnect + 3233 Multimedia Card Reader + 3239 Multimedia Card Reader + 3258 Dane Elec zMate SD Reader + 3259 Dane Elec zMate CF Reader + 5000 MediaGear xD-SM + 500a Mass Storage Device + 500f Mass Storage Device + 5010 Mass Storage Device + 5011 Mass Storage Device + 5014 Mass Storage Device + 5020 Mass Storage Device + 5021 Mass Storage Device + 5022 Mass Storage Device + 5023 Mass Storage Device + 5024 Mass Storage Device + 5025 Mass Storage Device +0a4b Fujitsu Media Devices, Ltd +0a4c Computex Co., Ltd +0a4d Evolution Electronics, Ltd + 0064 MK-225 Driver + 0065 MK-225C Driver + 0066 MK-225C Driver + 0067 MK-425C Driver + 0078 MK-37 Driver + 0079 MK-37C Driver + 007a MK-37C Driver + 008c TerraTec MIDI MASTER + 008d MK-249C Driver + 008e MK-249C MIDI Keyboard + 008f MK-449C Driver + 0090 Keystation 49e Driver + 0091 Keystation 61es Driver + 00a0 MK-361 Driver + 00a1 MK-361C Driver + 00a2 MK-361C Driver + 00a3 MK-461C MIDI Keyboard + 00b5 Keystation Pro 88 Driver + 00d2 E-Keys Driver + 00f0 UC-16 Driver + 00f1 X-Session Driver + 00f5 UC-33e MIDI Controller +0a4e Steinberg Soft-und Hardware GmbH +0a4f Litton Systems, Inc. +0a50 Mimaki Engineering Co., Ltd +0a51 Sony Electronics, Inc. +0a52 Jebsee Electronics Co., Ltd +0a53 Portable Peripheral Co., Ltd + 1000 Scanner + 2000 Q-Scan A6 Scanner + 2001 Q-Scan A6 Scanner + 2013 Media Drive A6 Scanner + 2014 Media Drive A6 Scanner + 2015 BizCardReader 600C + 2016 BizCardReader 600C + 202a Scanshell-CSSN + 3000 Q-Scan A8 Scanner + 3002 Q-Scan A8 Reader + 3015 BizCardReader 300G + 302a LM9832 - PA570 Mini Business Card Scanner [Targus] + 5001 BizCardReader 900C +0a5a Electronics For Imaging, Inc. +0a5b EAsics NV +0a5c Broadcom Corp. + 0201 iLine10(tm) Network Adapter + 2000 Bluetooth Device + 2001 Bluetooth Device + 2009 Bluetooth Controller + 200a BCM2035 Bluetooth dongle + 200f Bluetooth Controller + 201d Bluetooth Device + 201e IBM Integrated Bluetooth IV + 2020 Bluetooth dongle + 2033 BCM2033 Bluetooth + 2035 BCM2035 Bluetooth + 2038 Blutonium Device + 2039 Bluetooth Device + 2045 Bluetooth Controller + 2046 Bluetooth Device + 2047 Bluetooth Device + 205e Bluetooth Device + 2100 Bluetooth 2.0+eDR dongle + 2101 Bluetooth Controller + 2102 ANYCOM Blue USB-200/250 + 2110 Bluetooth Controller + 2111 ANYCOM Blue USB-UHE 200/250 + 2120 2045 Bluetooth 2.0 USB-UHE Device with trace filter + 2121 BCM2210 Bluetooth + 2122 Bluetooth 2.0+EDR dongle + 2123 Bluetooth dongle + 2130 2045 Bluetooth 2.0 USB-UHE Device with trace filter + 2131 2045 Bluetooth 2.0 Device with trace filter + 2145 Bluetooth with Enhanced Data Rate II + 2148 BCM92046DG-CL1ROM Bluetooth 2.1 Adapter + 2150 BCM2046 Bluetooth Device + 2151 Bluetooth + 217f Bluetooth Controller + 219b Bluetooth 2.1 Device + 21b1 HP Bluetooth Module + 21b4 BCM2070 Bluetooth 2.1 + EDR + 21b9 BCM2070 Bluetooth 2.1 + EDR + 21ba BCM2070 Bluetooth 2.1 + EDR + 21bb BCM2070 Bluetooth 2.1 + EDR + 21bc BCM2070 Bluetooth 2.1 + EDR + 21bd BCM2070 Bluetooth 2.1 + EDR + 22be BCM2070 Bluetooth 3.0 + HS + 4500 BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth) + 4502 Keyboard (Boot Interface Subclass) + 4503 Mouse (Boot Interface Subclass) + 5800 BCM5880 Secure Applications Processor + 5801 BCM5880 Secure Applications Processor with fingerprint swipe sensor + 5802 BCM5880 Secure Applications Processor with fingerprint touch sensor + 5803 BCM5880 Secure Applications Processor with secure keyboard + 6300 Pirelli Remote NDIS Device + bd13 Arcadyan WN8522B [Broadcom BCM4323] + d11b Eminent EM4045 [Broadcom 4320 USB] +0a5d Diatrend Corp. +0a5f Zebra + 0009 LP2844 Printer + 0081 GK420t Label Printer + 008b HC100 wristbands Printer + 930a Printer +0a62 MPMan + 0010 MPMan MP-F40 MP3 Player +0a66 ClearCube Technology +0a67 Medeli Electronics Co., Ltd +0a68 Comaide Corp. +0a69 Chroma ate, Inc. +0a6b Green House Co., Ltd + 0001 Compact Flash R/W with MP3 player + 000f FlashDisk +0a6c Integrated Circuit Systems, Inc. +0a6d UPS Manufacturing +0a6e Benwin +0a6f Core Technology, Inc. + 0400 Xanboo +0a70 International Game Technology +0a71 VIPColor Technologies USA, Inc. + 0001 VP485 Printer +0a72 Sanwa Denshi +0a7d NSTL, Inc. +0a7e Octagon Systems Corp. +0a80 Rexon Technology Corp., Ltd +0a81 Chesen Electronics Corp. + 0101 Keyboard + 0103 Keyboard + 0203 Mouse + 0205 PS/2 Keyboard+Mouse Adapter + 0701 USB Missile Launcher +0a82 Syscan + 4600 TravelScan 460/464 +0a83 NextComm, Inc. +0a84 Maui Innovative Peripherals +0a85 Idexx Labs +0a86 NITGen Co., Ltd +0a8d Picturetel +0a8e Japan Aviation Electronics Industry, Ltd + 2011 Filter Driver For JAE XMC R/W +0a90 Candy Technology Co., Ltd +0a91 Globlink Technology, Inc. + 3801 Targus PAKP003 Mouse +0a92 EGO SYStems, Inc. + 0011 SYS WaveTerminal U2A + 0021 GIGAPort + 0031 GIGAPortAG + 0053 AudioTrak Optoplay + 0061 Waveterminal U24 + 0071 MAYA EX7 + 0091 Maya 44 + 00b1 MAYA EX5 + 1000 MIDI Mate + 1010 RoMI/O + 1020 M4U + 1030 M8U + 1090 KeyControl49 + 10a0 KeyControl25 +0a93 C Technologies AB + 0002 C-Pen 10 + 0005 MyPen Light + 000d Input Pen + 0010 C-Pen 20 + 0a93 PayPen +0a94 Intersense +0aa3 Lava Computer Mfg., Inc. +0aa4 Develco Elektronik +0aa5 First International Digital + 0002 irock! 500 Series + 0801 MP3 Player +0aa6 Perception Digital, Ltd + 0101 Hercules Jukebox + 1501 Store 'n' Go HD Drive +0aa7 Wincor Nixdorf International GmbH + 0100 POS Keyboard, TA58P-USB + 0101 POS Keyboard, TA85P-USB + 0102 POS Keyboard, TA59-USB + 0103 POS Keyboard, TA60-USB + 0104 SNIkey Keyboard, SNIKey-KB-USB + 0200 Operator Display, BA63-USB + 0201 Operator Display, BA66-USB + 0202 Operator Display & Scanner, XiCheck-BA63 + 0203 Operator Display & Scanner, XiCheck-BA66 + 0204 Graphics Operator Display, BA63GV + 0300 POS Printer (printer class mode), TH210 + 0301 POS Printer (native mode), TH210 + 0302 POS Printer (printer class mode), TH220 + 0303 POS Printer (native mode), TH220 + 0304 POS Printer, TH230 + 0305 Lottery Printer, XiPrintPlus + 0306 POS Printer (printer class mode), TH320 + 0307 POS Printer (native mode), TH320 + 0308 POS Printer (printer class mode), TH420 + 0309 POS Printer (native mode), TH420 + 030a POS Printer, TH200B + 0400 Lottery Scanner, Xiscan S + 0401 Lottery Scanner, Xiscan 3 + 0402 Programmable Magnetic Swipe Card Reader, MSRP-USB + 0500 IDE Adapter + 0501 Hub Printer Interface + 0502 Hub SNIKey Keyboard + 4304 Banking Printer TP07 + 4305 Banking Printer TP07c + 4500 WN Central Special Electronics +0aa8 TriGem Computer, Inc. + 0060 TG 11Mbps WLAN Mini Adapter + 1001 DreamComboM4100 + 3002 InkJet Color Printer + 8001 TG_iMON + 8002 TG_KLOSS + a001 TG_X2 + a002 TGVFD_KLOSS + ffda iMON_VFD +0aa9 Baromtec Co. + f01b Medion MD 6242 MP3 Player +0aaa Japan CBM Corp. +0aab Vision Shape Europe SA +0aac iCompression, Inc. +0aad Rohde & Schwarz GmbH & Co. KG +0aae NEC infrontia Corp. (Nitsuko) +0aaf Digitalway Co., Ltd +0ab0 Arrow Strong Electronics Co., Ltd +0ab1 FEIG ELECTRONIC GmbH + 0002 OBID RFID-Reader +0aba Ellisys + 8001 Tracker 110 Protocol Analyzer + 8002 Explorer 200 Protocol Analyzer +0abe Stereo-Link + 0101 SL1200 DAC +0abf Diolan + 3370 I2C/SPI Adapter - U2C-12 +0ac3 Sanyo Semiconductor Company Micro +0ac4 Leco Corp. +0ac5 I & C Corp. +0ac6 Singing Electrons, Inc. +0ac7 Panwest Corp. +0ac8 Z-Star Microelectronics Corp. + 0301 Web Camera + 0302 ZC0302 Webcam + 0321 Vimicro generic vc0321 Camera + 0323 Luxya WC-1200 USB 2.0 Webcam + 0328 A4Tech PK-130MG + 0336 Elecom UCAM-DLQ30 + 301b ZC0301 Webcam + 303b ZC0303 Webcam + 305b ZC0305 Webcam + 307b USB 1.1 Webcam + 332d Vega USB 2.0 Camera + 3343 Sirius USB 2.0 Camera + 3420 Venus USB2.0 Camera + c001 Sony embedded vimicro Camera + c002 Visual Communication Camera VGP-VCC1 + c302 Vega USB 2.0 Camera + c303 Saturn USB 2.0 Camera + c326 Namuga 1.3M Webcam + c33f Webcam +0ac9 Micro Solutions, Inc. + 0000 Backpack CD-ReWriter + 0001 BACKPACK 2 Cable + 0010 BACKPACK + 0011 Backpack 40GB Hard Drive + 0110 BACKPACK + 0111 BackPack + 1234 BACKPACK +0aca OPEN Networks Ltd + 1060 OPEN NT1 Plus II +0acc Koga Electronics Co. +0acd ID Tech + 0401 ID TECH Spectrum III Hybrid Smartcard Reader + 0630 ID TECH Spectrum III Mag-Only Insert Reader (SPT3-355 Series) USB-CDC +0ace ZyDAS + 1201 ZD1201 802.11b + 1211 ZEW 2501 802.11bg Wireless Adapter + 1215 ZD1211B 802.11g + 1221 ZD1221 802.11n + 1602 ZyXEL Omni FaxModem 56K + 1608 ZyXEL Omni FaxModem 56K UNO + 1611 ZyXEL Omni FaxModem 56K Plus + 2011 Virtual media for 802.11bg + 20ff Virtual media for 802.11bg + a211 ZD1211 802.11b/g Wireless Adapter + b215 802.11bg +0acf Intoto, Inc. +0ad0 Intellix Corp. +0ad1 Remotec Technology, Ltd +0ad2 Service & Quality Technology Co., Ltd +0ada Data Encryption Systems Ltd. + 0005 DK2 +0ae3 Allion Computer, Inc. +0ae4 Taito Corp. +0ae7 Neodym Systems, Inc. +0ae8 System Support Co., Ltd +0ae9 North Shore Circuit Design L.L.P. +0aea SciEssence, LLC +0aeb TTP Communications, Ltd +0aec Neodio Technologies Corp. + 2101 SmartMedia Card Reader + 2102 CompactFlash Card Reader + 2103 MMC/SD Card Reader + 2104 MemoryStick Card Reader + 2201 SmartMedia+CompactFlash Card Reader + 2202 SmartMedia+MMC/SD Card Reader + 2203 SmartMedia+MemoryStick Card Reader + 2204 CompactFlash+MMC/SD Card Reader + 2205 CompactFlash+MemoryStick Card Reader + 2206 MMC/SD+MemoryStick Card Reader + 2301 SmartMedia+CompactFlash+MMC/SD Card Reader + 2302 SmartMedia+CompactFlash+MemoryStick Card Reader + 2303 SmartMedia+MMC/SD+MemoryStick Card Reader + 2304 CompactFlash+MMC/SD+MemoryStick Card Reader + 3016 MMC/SD+Memory Stick Card Reader + 3050 ND3050 8-in-1 Card Reader + 3060 1.1 FS Card Reader + 3101 MMC/SD Card Reader + 3102 MemoryStick Card Reader + 3201 MMC/SD+MemoryStick Card Reader + 3216 HS Card Reader + 3260 7-in-1 Card Reader + 5010 ND5010 Card Reader +0af0 Option + 5000 UMTS Card + 6000 GlobeTrotter 3G datacard + 6300 GT 3G Quad UMTS/GPRS Card + 6600 GlobeTrotter 3G+ datacard + 6711 GlobeTrotter Express 7.2 v2 + 6971 Globetrotter HSDPA Modem + 7251 Globetrotter HSUPA Modem (aka iCON HSUPA E) + 7501 Globetrotter HSUPA Modem (icon 411 aka "Vodafone K3760") + 7601 Globetrotter MO40x 3G Modem (GTM 382) + 7701 Globetrotter HSUPA Modem (aka icon 451) +0af6 Silver I Co., Ltd +0af7 B2C2, Inc. + 0101 Digital TV USB Receiver (DVB-S/T/C / ATSC) +0af9 Hama, Inc. + 0010 USB SightCam 100 + 0011 Micro Innovations IC50C Webcam +0afc Zaptronix Ltd +0afd Tateno Dennou, Inc. +0afe Cummins Engine Co. +0aff Jump Zone Network Products, Inc. +0b00 INGENICO +0b05 ASUSTek Computer, Inc. + 1101 Mass Storage (UISDMC4S) + 1706 WL-167G v1 802.11g Adapter [Ralink RT2500USB] + 1707 WL-167G v1 802.11g Adapter [Ralink RT2500USB] + 1708 Mass Storage Device + 170b Mass Storage Device + 170c WL-159g 802.11bg + 170d 802.11b/g Wireless Network Adapter + 1712 BT-183 Bluetooth 2.0+EDR adapter + 1715 2045 Bluetooth 2.0 Device with trace filter + 1716 Bluetooth Device + 1717 WL169gE 802.11g Adapter [Broadcom 4320 USB] + 171b A9T wireless 802.11bg + 171c 802.11b/g Wireless Network Adapter + 171f My Cinema U3000 Mini [DiBcom DiB7700P] + 1723 WL-167G v2 802.11g Adapter [Ralink RT73] + 1724 RT2573 + 1726 Laptop OLED Display + 172a ASUS 802.11n Network Adapter + 172b 802.11n Network Adapter + 1731 802.11n Network Adapter + 1732 802.11n Network Adapter + 1734 ASUS AF-200 + 173c BT-183 Bluetooth 2.0 + 173f My Cinema U3100 Mini + 1742 802.11n Network Adapter + 1743 Xonar U1 Audio Station + 1751 BT-253 Bluetooth Adapter + 175b Laptop OLED Display + 1760 802.11n Network Adapter + 1761 802.11n Network Adapter + 1774 Gobi Wireless Modem (QDL mode) + 1776 Gobi Wireless Modem + 1779 My Cinema U3100 Mini Plus [AF9035A] + 1784 USB-N13 802.11n Network Adapter [Ralink RT2870] + 6101 Cable Modem + 620a Remote NDIS Device + b700 Broadcom Bluetooth 2.1 +0b0b Datamax-O'Neil + 106e Datamax E-4304 +0b0c Todos AB + 0009 Todos Argos Mini II Smart Card Reader + 001e e.dentifier2 (ABN AMRO electronic banking card reader NL) + 002e C200 smartcard controller (Nordea card reader) + 003f Todos C400 smartcard controller (Handelsbanken card reader) + 0050 Argos Mini II Smart Card Reader (CCID) +0b0d ProjectLab + 0000 CenturyCD +0b0e GN Netcom +0b0f AVID Technology +0b10 Pcally +0b11 I Tech Solutions Co., Ltd +0b1e Electronic Warfare Assoc., Inc. (EWA) +0b1f Insyde Software Corp. +0b20 TransDimension, Inc. +0b21 Yokogawa Electric Corp. +0b22 Japan System Development Co., Ltd +0b23 Pan-Asia Electronics Co., Ltd +0b24 Link Evolution Corp. +0b27 Ritek Corp. +0b28 Kenwood Corp. +0b2c Village Center, Inc. +0b30 PNY Technologies, Inc. + 0006 SM Media-Shuttle Card Reader +0b33 Contour Design, Inc. + 0020 ShuttleXpress +0b37 Hitachi ULSI Systems Co., Ltd +0b38 Gear Head + 0010 107-Key Keyboard +0b39 Omnidirectional Control Technology, Inc. + 0001 Composite USB PS2 Converter + 0109 USB TO Ethernet + 0421 Serial + 0801 USB-Parallel Bridge + 0901 OCT To Fast Ethernet Converter + 0c03 LAN DOCK Serial Converter +0b3a IPaxess +0b3b Tekram Technology Co., Ltd + 0163 TL-WN320G 1.0 WLAN Adapter + 1601 Allnet 0193 802.11b Adapter + 1602 ZyXEL ZyAIR B200 802.11b Adapter + 1612 AIR.Mate 2@net 802.11b Adapter + 1613 802.11b Wireless LAN Adapter + 1620 Allnet USB 2.0 Wireless Network Adapter + 1630 QuickWLAN 802.11bg + 5630 802.11bg + 6630 ZD1211 +0b3c Olivetti Techcenter + a010 Simple_Way Printer/Scanner/Copier + c000 Olicard 100 + c700 Olicard 100 (Mass Storage mode) +0b3e Kikusui Electronics Corp. +0b41 Hal Corp. + 0011 Crossam2+USB IR commander +0b43 Play.com, Inc. + 0003 PS2 Controller Converter +0b47 Sportbug.com, Inc. +0b48 TechnoTrend AG + 1003 Technotrend/Hauppauge USB-Nova + 1004 TT-PCline + 1005 Technotrend/Hauppauge USB-Nova + 1006 Technotrend/Hauppauge DEC3000-s + 1007 TT-micro plus Device + 1008 Technotrend/Hauppauge DEC2000-t + 1009 Technotrend/Hauppauge DEC2540-t + 3001 DVB-S receiver + 3002 DVB-C receiver + 3003 DVB-T receiver + 3004 TT TV-Stick + 3005 TT TV-Stick (8kB EEPROM) + 3006 TT-connect S-2400 DVB-S receiver + 3007 TT-connect S2-3600 + 3008 TT-connect + 3009 TT-connect S-2400 DVB-S receiver (8kB EEPROM) + 300a TT-connect S2-3650 CI + 300b TT-connect C-3650 CI + 300c TT-connect T-3650 CI + 300d TT-connect CT-3650 CI + 300e TT-connect C-2400 +0b49 ASCII Corp. + 064f Trance Vibrator +0b4b Pine Corp. Ltd. + 0100 D'music MP3 Player +0b4d Graphtec America, Inc. + 110a Graphtec CC200-20 +0b4e Musical Electronics, Ltd + 6500 MP3 Player + 8028 MP3 Player + 8920 MP3 Player +0b50 Dumpries Co., Ltd +0b51 Comfort Keyboard Co. + 0020 Comfort Keyboard +0b52 Colorado MicroDisplay, Inc. +0b54 Sinbon Electronics Co., Ltd +0b56 TYI Systems, Ltd +0b57 Beijing HanwangTechnology Co., Ltd +0b59 Lake Communications, Ltd +0b5a Corel Corp. +0b5f Green Electronics Co., Ltd +0b60 Nsine, Ltd +0b61 NEC Viewtechnology, Ltd +0b62 Orange Micro, Inc. + 000b Bluetooth Device + 0059 iBOT2 Webcam +0b63 ADLink Technology, Inc. +0b64 Wonderful Wire Cable Co., Ltd +0b65 Expert Magnetics Corp. +0b69 CacheVision +0b6a Maxim Integrated Products +0b6f Nagano Japan Radio Co., Ltd +0b70 PortalPlayer, Inc. + 00ba iRiver H10 20GB +0b71 SHIN-EI Sangyo Co., Ltd +0b72 Embedded Wireless Technology Co., Ltd +0b73 Computone Corp. +0b75 Roland DG Corp. +0b79 Sunrise Telecom, Inc. +0b7a Zeevo, Inc. + 07d0 Bluetooth Dongle +0b7b Taiko Denki Co., Ltd +0b7c ITRAN Communications, Ltd +0b7d Astrodesign, Inc. +0b81 id3 Semiconductors + 0001 Biothentic II smartcard reader with fingerprint sensor + 0002 DFU-Enabled Devices (DFU) + 0012 BioPAD biometric module (DFU + CDC) + 0102 Certis V1 fingerprint reader + 0103 Certis V2 fingerprint reader + 0200 CL1356T / CL1356T5 / CL1356A smartcard readers (CCID) + 0201 CL1356T / CL1356T5 / CL1356A smartcard readers (DFU + CCID) + 0220 CL1356A FFPJP smartcard reader (CCID + HID) + 0221 CL1356A smartcard reader (DFU + CCID + HID) +0b84 Rextron Technology, Inc. +0b85 Elkat Electronics, Sdn., Bhd. +0b86 Exputer Systems, Inc. + 5100 XMC5100 Zippy Drive + 5110 XMC5110 Flash Drive + 5200 XMC5200 Zippy Drive + 5201 XMC5200 Zippy Drive + 5202 XMC5200 Zippy Drive + 5280 XMC5280 Storage Drive + fff0 ISP5200 Debugger +0b87 Plus-One I & T, Inc. +0b88 Sigma Koki Co., Ltd, Technology Center +0b89 Advanced Digital Broadcast, Ltd +0b8c SMART Technologies Inc. + 00c3 Sympodium ID350 +0b95 ASIX Electronics Corp. + 1720 10/100 Ethernet + 1780 AX88178 + 7720 AX88772 +0b96 Sewon Telecom +0b97 O2 Micro, Inc. + 7732 Smart Card Reader + 7761 Oz776 1.1 Hub + 7762 Oz776 SmartCard Reader + 7772 OZ776 CCID Smartcard Reader +0b98 Playmates Toys, Inc. +0b99 Audio International, Inc. +0b9b Dipl.-Ing. Stefan Kunde + 4012 Reflex RC-controller Interface +0b9d Softprotec Co. +0b9f Chippo Technologies +0baf U.S. Robotics + 00e5 USR6000 + 00eb USR1120 802.11b Adapter + 00ec 56K Faxmodem + 00f1 SureConnect ADSL ATM Adapter + 00f2 SureConnect ADSL Loader + 00f5 SureConnect ADSL ATM Adapter + 00f6 SureConnect ADSL Loader + 00f7 SureConnect ADSL ATM Adapter + 00f8 SureConnect ADSL Loader + 00f9 SureConnect ADSL ATM Adapter + 00fa SureConnect ADSL Loader + 00fb SureConnect ADSL Ethernet/USB Router + 0111 USR5420 802.11g Adapter [Broadcom 4320 USB] + 0118 U5 802.11g Adapter + 011b Wireless MAXg Adapter [Broadcom 4320] + 0121 USR5423 802.11bg + 6112 FaxModem Model 5633 +0bb0 Concord Camera Corp. + 0100 Sound Vision Stream + 5007 3340z/Rollei DC3100 +0bb1 Infinilink Corp. +0bb2 Ambit Microsystems Corp. + 0302 U10H010 802.11b Wireless Adapter [Intersil PRISM 3] + 6098 USB Cable Modem +0bb3 Ofuji Technology +0bb4 High Tech Computer Corp. + 00ce mmO2 XDA GSM/GPRS Pocket PC + 00cf SPV C500 Smart Phone + 0a01 PocketPC Sync + 0a02 Himalaya GSM/GPRS Pocket PC + 0a03 PocketPC Sync + 0a04 PocketPC Sync + 0a05 PocketPC Sync + 0a06 PocketPC Sync + 0a07 Magician PocketPC SmartPhone / O2 XDA + 0a08 PocketPC Sync + 0a09 PocketPC Sync + 0a0a PocketPC Sync + 0a0b PocketPC Sync + 0a0c PocketPC Sync + 0a0d PocketPC Sync + 0a0e PocketPC Sync + 0a0f PocketPC Sync + 0a10 PocketPC Sync + 0a11 PocketPC Sync + 0a12 PocketPC Sync + 0a13 PocketPC Sync + 0a14 PocketPC Sync + 0a15 PocketPC Sync + 0a16 PocketPC Sync + 0a17 PocketPC Sync + 0a18 PocketPC Sync + 0a19 PocketPC Sync + 0a1a PocketPC Sync + 0a1b PocketPC Sync + 0a1c PocketPC Sync + 0a1d PocketPC Sync + 0a1e PocketPC Sync + 0a1f PocketPC Sync + 0a20 PocketPC Sync + 0a21 PocketPC Sync + 0a22 PocketPC Sync + 0a23 PocketPC Sync + 0a24 PocketPC Sync + 0a25 PocketPC Sync + 0a26 PocketPC Sync + 0a27 PocketPC Sync + 0a28 PocketPC Sync + 0a29 PocketPC Sync + 0a2a PocketPC Sync + 0a2b PocketPC Sync + 0a2c PocketPC Sync + 0a2d PocketPC Sync + 0a2e PocketPC Sync + 0a2f PocketPC Sync + 0a30 PocketPC Sync + 0a31 PocketPC Sync + 0a32 PocketPC Sync + 0a33 PocketPC Sync + 0a34 PocketPC Sync + 0a35 PocketPC Sync + 0a36 PocketPC Sync + 0a37 PocketPC Sync + 0a38 PocketPC Sync + 0a39 PocketPC Sync + 0a3a PocketPC Sync + 0a3b PocketPC Sync + 0a3c PocketPC Sync + 0a3d PocketPC Sync + 0a3e PocketPC Sync + 0a3f PocketPC Sync + 0a40 PocketPC Sync + 0a41 PocketPC Sync + 0a42 PocketPC Sync + 0a43 PocketPC Sync + 0a44 PocketPC Sync + 0a45 PocketPC Sync + 0a46 PocketPC Sync + 0a47 PocketPC Sync + 0a48 PocketPC Sync + 0a49 PocketPC Sync + 0a4a PocketPC Sync + 0a4b PocketPC Sync + 0a4c PocketPC Sync + 0a4d PocketPC Sync + 0a4e PocketPC Sync + 0a4f PocketPC Sync + 0a50 HTC SmartPhone Sync + 0a51 SPV C400 / T-Mobile SDA GSM/GPRS Pocket PC + 0a52 SmartPhone Sync + 0a53 SmartPhone Sync + 0a54 SmartPhone Sync + 0a55 SmartPhone Sync + 0a56 SmartPhone Sync + 0a57 SmartPhone Sync + 0a58 SmartPhone Sync + 0a59 SmartPhone Sync + 0a5a SmartPhone Sync + 0a5b SmartPhone Sync + 0a5c SmartPhone Sync + 0a5d SmartPhone Sync + 0a5e SmartPhone Sync + 0a5f SmartPhone Sync + 0a60 SmartPhone Sync + 0a61 SmartPhone Sync + 0a62 SmartPhone Sync + 0a63 SmartPhone Sync + 0a64 SmartPhone Sync + 0a65 SmartPhone Sync + 0a66 SmartPhone Sync + 0a67 SmartPhone Sync + 0a68 SmartPhone Sync + 0a69 SmartPhone Sync + 0a6a SmartPhone Sync + 0a6b SmartPhone Sync + 0a6c SmartPhone Sync + 0a6d SmartPhone Sync + 0a6e SmartPhone Sync + 0a6f SmartPhone Sync + 0a70 SmartPhone Sync + 0a71 SmartPhone Sync + 0a72 SmartPhone Sync + 0a73 SmartPhone Sync + 0a74 SmartPhone Sync + 0a75 SmartPhone Sync + 0a76 SmartPhone Sync + 0a77 SmartPhone Sync + 0a78 SmartPhone Sync + 0a79 SmartPhone Sync + 0a7a SmartPhone Sync + 0a7b SmartPhone Sync + 0a7c SmartPhone Sync + 0a7d SmartPhone Sync + 0a7e SmartPhone Sync + 0a7f SmartPhone Sync + 0a80 SmartPhone Sync + 0a81 SmartPhone Sync + 0a82 SmartPhone Sync + 0a83 SmartPhone Sync + 0a84 SmartPhone Sync + 0a85 SmartPhone Sync + 0a86 SmartPhone Sync + 0a87 SmartPhone Sync + 0a88 SmartPhone Sync + 0a89 SmartPhone Sync + 0a8a SmartPhone Sync + 0a8b SmartPhone Sync + 0a8c SmartPhone Sync + 0a8d SmartPhone Sync + 0a8e SmartPhone Sync + 0a8f SmartPhone Sync + 0a90 SmartPhone Sync + 0a91 SmartPhone Sync + 0a92 SmartPhone Sync + 0a93 SmartPhone Sync + 0a94 SmartPhone Sync + 0a95 SmartPhone Sync + 0a96 SmartPhone Sync + 0a97 SmartPhone Sync + 0a98 SmartPhone Sync + 0a99 SmartPhone Sync + 0a9a SmartPhone Sync + 0a9b SmartPhone Sync + 0a9c SmartPhone Sync + 0a9d SmartPhone Sync + 0a9e SmartPhone Sync + 0a9f SmartPhone Sync + 0b03 Ozone Mobile Broadband + 0b04 Hermes / TyTN / T-Mobile MDA Vario II / O2 Xda Trion + 0b05 P3600 + 0b06 Athena / Advantage x7500 / Dopod U1000 / T-Mobile AMEO + 0b0c Elf / Touch / P3450 / T-Mobile MDA Touch / O2 Xda Nova / Dopod S1 + 0b1f Sony Ericsson XPERIA X1 + 0b2f Rhodium + 0b51 Qtek 8310 mobile phone [Tornado Noble] + 0bce Vario MDA + 0c01 Dream / ADP1 / G1 / Magic / Tattoo + 0c02 Dream / ADP1 / G1 / Magic / Tattoo (Debug) + 0c13 Diamond + 0c1f Sony Ericsson XPERIA X1 + 0c5f Snap + 0c87 Desire (debug) + 0c8d EVO 4G (debug) + 0c91 Vision + 0c94 Vision + 0c97 Legend + 0c99 Desire (debug) + 0c9e Incredible + 0ca2 Desire HD (debug mode) + 0ff9 Desire / Desire HD / Hero + 0ffe Desire HD (modem mode) + 0fff Android Fastboot Bootloader +0bb5 Murata Manufacturing Co., Ltd +0bb6 Network Alchemy +0bb7 Joytech Computer Co., Ltd +0bb8 Hitachi Semiconductor and Devices Sales Co., Ltd +0bb9 Eiger M&C Co., Ltd +0bba ZAccess Systems +0bbb General Meters Corp. +0bbc Assistive Technology, Inc. +0bbd System Connection, Inc. +0bc0 Knilink Technology, Inc. +0bc1 Fuw Yng Electronics Co., Ltd +0bc2 Seagate RSS LLC + 2000 Storage Adapter V3 (TPP) + 2200 FreeAgent Go FW + 5021 FreeAgent GoFlex USB 2.0 + 5031 FreeAgent GoFlex USB 3.0 +0bc3 IPWireless, Inc. + 0001 UMTS-TDD (TD-CDMA) modem +0bc4 Microcube Corp. +0bc5 JCN Co., Ltd +0bc6 ExWAY, Inc. +0bc7 X10 Wireless Technology, Inc. + 0001 ActiveHome (ACPI-compliant) + 0002 Firecracker Interface (ACPI-compliant) + 0003 VGA Video Sender (ACPI-compliant) + 0004 X10 Receiver + 0005 Wireless Transceiver (ACPI-compliant) + 0006 Wireless Transceiver (ACPI-compliant) + 0007 Wireless Transceiver (ACPI-compliant) + 0008 Wireless Transceiver (ACPI-compliant) + 0009 Wireless Transceiver (ACPI-compliant) + 000a Wireless Transceiver (ACPI-compliant) + 000b Transceiver (ACPI-compliant) + 000c Transceiver (ACPI-compliant) + 000d Transceiver (ACPI-compliant) + 000e Transceiver (ACPI-compliant) + 000f Transceiver (ACPI-compliant) +0bc8 Telmax Communications +0bc9 ECI Telecom, Ltd +0bca Startek Engineering, Inc. +0bcb Perfect Technic Enterprise Co., Ltd +0bd7 Andrew Pargeter & Associates + a021 Amptek DP4 multichannel signal analyzer +0bda Realtek Semiconductor Corp. + 0103 USB 2.0 Card Reader + 0104 Mass Storage Device + 0106 Mass Storage Device + 0107 Mass Storage Device + 0108 Mass Storage Device + 0111 Card Reader + 0113 Mass Storage Device + 0115 Mass Storage Device (Multicard Reader) + 0116 Mass Storage Device + 0117 Mass Storage Device + 0118 Mass Storage Device + 0151 Mass Storage Device (Multicard Reader) + 0152 Mass Storage Device + 0153 Mass Storage Device + 0156 Mass Storage Device + 0157 Mass Storage Device + 0158 USB 2.0 multicard reader + 0159 Digital Media Card Reader + 0161 Mass Storage Device + 0168 Mass Storage Device + 0169 Mass Storage Device + 0171 Mass Storage Device + 0176 Mass Storage Device + 0178 Mass Storage Device + 2831 RTL2831U DVB-T + 2832 RTL2832U DVB-T + 8150 RTL8150 Fast Ethernet Adapter + 8151 RTL8151 Adapteon Business Mobile Networks BV + 8171 RTL8188SU 802.11n WLAN Adapter + 8172 RTL8191S WLAN Adapter + 8176 RTL8188CUS 802.11n WLAN + 8187 RTL8187 Wireless Adapter + 8189 RTL8187B Wireless 802.11g 54Mbps Network Adapter + 8192 RTL8192U 802.11n Wireless Adapter + 8197 RTL8187B Wireless Adapter + 8198 RTL8187B Wireless Adapter +0bdb Ericsson Business Mobile Networks BV + 1000 BV Bluetooth Device + 1002 Bluetooth Device 1.2 + 1049 C3607w Mobile Broadband Module + 1900 F3507g Mobile Broadband Module + 1902 F3507g v2 Mobile Broadband Module + 1904 F3607gw Mobile Broadband Module + 1905 F3607gw v2 Mobile Broadband Module + 1906 F3607gw v3 Mobile Broadband Module + 1909 F3307 v2 Mobile Broadband Module + 190a F3307 Mobile Broadband Module + 190b C3607w v2 Mobile Broadband Module +0bdc Y Media Corp. +0bdd Orange PCS +0be2 Kanda Tsushin Kogyo Co., Ltd +0be3 TOYO Corp. +0be4 Elka International, Ltd +0be5 DOME imaging systems, Inc. +0be6 Dong Guan Humen Wonderful Wire Cable Factory +0bed Silicon Labs + 1100 MEI (TM) Cashflow-SC Bill/Voucher Acceptor +0bee LTK Industries, Ltd +0bef Way2Call Communications +0bf0 Pace Micro Technology PLC +0bf1 Intracom S.A. + 0001 netMod Driver Ver 2.4.17 (CAPI) + 0002 netMod Driver Ver 2.4 (CAPI) + 0003 netMod Driver Ver 2.4 (CAPI) +0bf2 Konexx +0bf6 Addonics Technologies, Inc. + 0103 Storage Device + 1234 Storage Device + a000 Cable 205 (TPP) + a001 Cable 205 + a002 IDE Bridge +0bf7 Sunny Giken, Inc. +0bf8 Fujitsu Siemens Computers + 1001 Fujitsu Pocket Loox 600 PDA + 1006 SmartCard Reader 2A + 1007 Connect2Air E-5400 802.11g Wireless Adapter + 1009 Name: Connect2Air E-5400 D1700 802.11g Wireless Adapter [Intersil ISL3887] + 100f miniCard D2301 802.11bg Wireless Module [SiS 163U] +0c04 MOTO Development Group, Inc. +0c05 Appian Graphics +0c06 Hasbro Games, Inc. +0c07 Infinite Data Storage, Ltd +0c08 Agate + 0378 Q 16MB Storage Device +0c09 Comjet Information System + a5a5 Litto Version USB2.0 +0c0a Highpoint Technologies, Inc. +0c0b Dura Micro, Inc. (Acomdata) + 27cb 6-in-1 Flash Reader and Writer + 27d7 Multi Memory reader/writer MD-005 + 27da Multi Memory reader/writer MD-005 + 27dc Multi Memory reader/writer MD-005 + 27e7 3,5'' HDD case MD-231 + 27ee 3,5'' HDD case MD-231 + 2814 3,5'' HDD case MD-231 + 2815 3,5'' HDD case MD-231 + 281d 3,5'' HDD case MD-231 + 5fab Storage Adaptor + a109 CF/SM Reader and Writer + a10c SD/MS Reader and Writer + b001 USB 2.0 Mass Storage IDE adapter + b004 MMC/SD Reader and Writer +0c12 Zeroplus + 0005 PSX Vibration Feedback Converter + 0030 PSX Vibration Feedback Converter + 700e Logic Analyzer (LAP-C-16032) + 8801 Xbox Controller + 8802 Xbox Controller + 8809 Red Octane Ignition Xbox DDR Pad + 880a Pelican Eclipse PL-2023 + 8810 Xbox Controller + 9902 VibraX +0c15 Iris Graphics +0c16 Gyration, Inc. + 0002 RF Technology Receiver + 0003 RF Technology Receiver + 0008 RF Technology Receiver + 0080 eHome Infrared Receiver + 0081 eHome Infrared Receiver +0c17 Cyberboard A/S +0c18 SynerTek Korea, Inc. +0c19 cyberPIXIE, Inc. +0c1a Silicon Motion, Inc. +0c1b MIPS Technologies +0c1c Hang Zhou Silan Electronics Co., Ltd +0c22 Tally Printer Corp. +0c23 Lernout + Hauspie +0c24 Taiyo Yuden + 0001 Bluetooth Adaptor + 0002 Bluetooth Device2 + 0005 Bluetooth Device(BC04-External) + 000b Bluetooth Device(BC04-External) + 000c Bluetooth Adaptor + 000e Bluetooth Device(BC04-External) + 000f Bluetooth Device (V2.0+EDR) + 0010 Bluetooth Device(BC04-External) + 0012 Bluetooth Device(BC04-External) + 0018 Bluetooth Device(BC04-External) + 0019 Bluetooth Device + 0c24 Bluetooth Device(SAMPLE) + ffff Bluetooth module with BlueCore in DFU mode +0c25 Sampo Corp. + 0310 Scream Cam +0c26 Prolific Technology Inc. + 0018 USB-Serial Controller [Icom Inc. OPC-478UC] +0c27 RFIDeas, Inc + 3bfa pcProx Card Reader +0c2e Metro + 0007 Metrologic MS7120 Barcode Scanner (IBM SurePOS mode) + 0200 Metrologic Scanner + 0204 Metrologic MS7120 Barcode Scanner (keyboard mode) + 0700 Metrologic MS7120 Barcode Scanner (uni-directional serial mode) + 0720 Metrologic MS7120 Barcode Scanner (bi-directional serial mode) +0c35 Eagletron, Inc. +0c36 E Ink Corp. +0c37 e.Digital +0c38 Der An Electric Wire & Cable Co., Ltd +0c39 IFR +0c3a Furui Precise Component (Kunshan) Co., Ltd +0c3b Komatsu, Ltd +0c3c Radius Co., Ltd +0c3d Innocom, Inc. +0c3e Nextcell, Inc. +0c44 Motorola iDEN + 0021 iDEN P2k0 Device + 0022 iDEN P2k1 Device + 03a2 iDEN Smartphone + 41d9 i1 phone +0c45 Microdia + 0011 EBUDDY + 1020 Mass Storage Reader + 1028 Mass Storage Reader + 1030 Mass Storage Reader + 1031 Sonix Mass Storage Device + 1032 Mass Storage Reader + 1033 Sonix Mass Storage Device + 1034 Mass Storage Reader + 1035 Mass Storage Reader + 1036 Mass Storage Reader + 1037 Sonix Mass Storage Device + 1050 CF Card Reader + 1058 HDD Reader + 1060 iFlash SM-Direct Card Reader + 1061 Mass Storage Reader + 1062 Mass Storage Reader + 1063 Sonix Mass Storage Device + 1064 Mass Storage Reader + 1065 Mass Storage Reader + 1066 Mass Storage Reader + 1067 Mass Storage Reader + 1158 A56AK + 184c VoIP Phone + 6001 Genius VideoCAM NB + 6005 Sweex Mini Webcam + 6007 VideoCAM Eye + 6009 VideoCAM ExpressII + 600d TwinkleCam USB camera + 6011 PC Camera (SN9C102) + 6019 PC Camera (SN9C102) + 6024 VideoCAM ExpressII + 6025 VideoCAM ExpressII + 6028 Typhoon Easycam USB 330K (older) + 6029 Triplex i-mini PC Camera + 602a Meade ETX-105EC Camera + 602b VideoCAM NB 300 + 602c Clas Ohlson TWC-30XOP Webcam + 602d VideoCAM ExpressII + 602e VideoCAM Messenger + 6030 VideoCAM ExpressII + 603f VideoCAM ExpressII + 6040 CCD PC Camera (PC390A) + 606a CCD PC Camera (PC390A) + 607a CCD PC Camera (PC390A) + 607b Win2 PC Camera + 607c CCD PC Camera (PC390A) + 607e CCD PC Camera (PC390A) + 6080 Audio (Microphone) + 6082 VideoCAM Look + 6083 VideoCAM Look + 608c VideoCAM Look + 608e VideoCAM Look + 608f PC Camera (SN9C103 + OV7630) + 60a8 VideoCAM Look + 60aa VideoCAM Look + 60ab PC Camera + 60af VideoCAM Look + 60b0 Genius VideoCam Look + 60c0 PC Camera with Mic (SN9C105) + 60c8 Win2 PC Camera + 60cc PC Camera with Mic (SN9C105) + 60ec PC Camera with Mic (SN9C105) + 60ef Win2 PC Camera + 60fa PC Camera with Mic (SN9C105) + 60fb Composite Device + 60fc PC Camera with Mic (SN9C105) + 60fe Audio (Microphone) + 6108 Win2 PC Camera + 6122 PC Camera (SN9C110) + 6123 PC Camera (SN9C110) + 6128 PC Camera (SN9C325 + OM6802) + 612a PC Camera (SN9C325) + 612c PC Camera (SN9C110) + 612e PC Camera (SN9C110) + 612f PC Camera (SN9C110) + 6130 PC Camera (SN9C120) + 6138 Win2 PC Camera + 613a PC Camera (SN9C120) + 613b Win2 PC Camera + 613c PC Camera (SN9C120) + 613e PC Camera (SN9C120) + 6143 PC Camera (SN9C120 + SP80708) + 6240 PC Camera (SN9C201 + MI1300) + 6242 PC Camera (SN9C201 + MI1310) + 6243 PC Camera (SN9C201 + S5K4AAFX) + 6248 PC Camera (SN9C201 + OV9655) + 624b PC Camera (SN9C201 + CX1332) + 624c PC Camera (SN9C201 + MI1320) + 624e PC Camera (SN9C201 + SOI968) + 624f PC Camera (SN9C201 + OV9650) + 6251 PC Camera (SN9C201 + OV9650) + 6253 PC Camera (SN9C201 + OV9650) + 6260 PC Camera (SN9C201 + OV7670ISP) + 6262 PC Camera (SN9C201 + OM6802) + 6270 PC Camera (SN9C201 + MI0360/MT9V011 or MI0360SOC/MT9V111) U-CAM PC Camera NE878, Whitcom WHC017, ... + 627a PC Camera (SN9C201 + S5K53BEB) + 627b PC Camera (SN9C201 + OV7660) + 627c PC Camera (SN9C201 + HV7131R) + 627f PC Camera (SN9C201 + OV965x + EEPROM) + 6280 PC Camera with Microphone (SN9C202 + MI1300) + 6282 PC Camera with Microphone (SN9C202 + MI1310) + 6283 PC Camera with Microphone (SN9C202 + S5K4AAFX) + 6288 PC Camera with Microphone (SN9C202 + OV9655) + 628a PC Camera with Microphone (SN9C202 + ICM107) + 628b PC Camera with Microphone (SN9C202 + CX1332) + 628c PC Camera with Microphone (SN9C202 + MI1320) + 628e PC Camera with Microphone (SN9C202 + SOI968) + 628f PC Camera with Microphone (SN9C202 + OV9650) + 62a0 PC Camera with Microphone (SN9C202 + OV7670ISP) + 62a2 PC Camera with Microphone (SN9C202 + OM6802) + 62b0 PC Camera with Microphone (SN9C202 + MI0360/MT9V011 or MI0360SOC/MT9V111) + 62b3 PC Camera with Microphone (SN9C202 + OV9655) + 62ba PC Camera with Microphone (SN9C202 + S5K53BEB) + 62bb PC Camera with Microphone (SN9C202 + OV7660) + 62bc PC Camera with Microphone (SN9C202 + HV7131R) + 62be PC Camera with Microphone (SN9C202 + OV7663) + 62c0 Sonix USB 2.0 Camera + 62e0 MSI Starcam Racer + 6310 Sonix USB 2.0 Camera + 63e0 Sonix Integrated Webcam + 63f1 Integrated Webcam + 63f8 Sonix Integrated Webcam + 6409 Webcam + 6417 Integrated Webcam + 8000 DC31VC + 8006 Dual Mode Camera (8006 VGA) + 800a Vivitar Vivicam3350B +0c46 WaveRider Communications, Inc. +0c4b Reiner SCT Kartensysteme GmbH + 0100 cyberJack e-com/pinpad + 0300 cyberJack pinpad(a) + 9102 cyberJack RFID basis contactless smartcard reader +0c52 Sealevel Systems, Inc. + 2101 Serial Converter +0c53 ViewPLUS, Inc. +0c54 Glory, Ltd +0c55 Spectrum Digital, Inc. + 0510 Spectrum Digital XDS510 JTAG Debugger + 0540 SPI540 + 5416 TMS320C5416 DSK + 6416 TMS320C6416 DDB +0c56 Billion Bright, Ltd +0c57 Imaginative Design Operation Co., Ltd +0c58 Vidar Systems Corp. +0c59 Dong Guan Shinko Wire Co., Ltd +0c5a TRS International Mfg., Inc. +0c5e Xytronix Research & Design +0c60 Apogee Electronics Corp. +0c62 Chant Sincere Co., Ltd +0c63 Toko, Inc. +0c64 Signality System Engineering Co., Ltd +0c65 Eminence Enterprise Co., Ltd +0c66 Rexon Electronics Corp. +0c67 Concept Telecom, Ltd +0c70 MCT Elektronikladen + 0000 USB08 Development board +0c74 Optronic Laboratories Inc. + 0002 OL 700-30 Goniometer +0c76 JMTek, LLC. + 0001 Mass Storage Controller + 0002 Mass Storage Controller + 0003 USBdisk + 0004 Mass Storage Controller + 0005 Transcend Flash disk + 0006 Transcend JetFlash + 0007 Mass Storage Device + 1605 SSS Headphone Set + 1607 audio controller +0c77 Sipix Group, Ltd + 1001 SiPix Web2 + 1002 SiPix SC2100 + 1010 SiPix Snap + 1011 SiPix Blink 2 + 1015 SiPix CAMeleon +0c78 Detto Corp. +0c79 NuConnex Technologies Pte., Ltd +0c7a Wing-Span Enterprise Co., Ltd +0c86 NDA Technologies, Inc. +0c88 Kyocera Wireless Corp. + 0021 Handheld + 17da Qualcomm Kyocera CDMA Technologies MSM +0c89 Honda Tsushin Kogyo Co., Ltd +0c8a Pathway Connectivity, Inc. +0c8b Wavefly Corp. +0c8c Coactive Networks +0c8d Tempo +0c8e Cesscom Co., Ltd + 6000 Luxian Series +0c8f Applied Microsystems +0c98 Berkshire Products, Inc. + 1140 USB PC Watchdog +0c99 Innochips Co., Ltd +0c9a Hanwool Robotics Corp. +0c9b Jobin Yvon, Inc. +0c9d SemTek + 0170 3873 Manual Insert card reader +0ca2 Zyfer +0ca3 Sega Corp. +0ca4 ST&T Instrument Corp. +0ca5 BAE Systems Canada, Inc. +0ca6 Castles Technology Co., Ltd + 0010 EZUSB PC/SC Smart Card Reader + 0050 EZ220PU Reader Controller + 1077 Bludrive Family Smart Card Reader + 107e Reader Controller + 2010 myPad110 PC/SC Smart Card Reader + 3050 EZ710 Smart Card Reader +0ca7 Information Systems Laboratories +0cad Motorola CGISS + 9001 PowerPad Pocket PC Device +0cae Ascom Business Systems, Ltd +0caf Buslink + 2507 Hi-Speed USB-to-IDE Bridge Controller + 2515 Flash Disk Embedded Hub + 2516 Flash Disk Security Device + 2517 Flash Disk Mass Storage Device + 25c7 Hi-Speed USB-to-IDE Bridge Controller + 3a00 Hard Drive + 3a20 Mass Storage Device + 3acd Mass Storage Device +0cb0 Flying Pig Systems +0cb1 Innovonics, Inc. +0cb6 Celestix Networks, Pte., Ltd +0cb7 Singatron Enterprise Co., Ltd +0cb8 Opticis Co., Ltd +0cba Trust Electronic (Shanghai) Co., Ltd +0cbb Shanghai Darong Electronics Co., Ltd +0cbc Palmax Technology Co., Ltd + 0101 Pocket PC P6C + 0201 Personal Digital Assistant + 0301 Personal Digital Assistant P6M+ + 0401 Pocket PC +0cbd Pentel Co., Ltd (Electronics Equipment Div.) +0cbe Keryx Technologies, Inc. +0cbf Union Genius Computer Co., Ltd +0cc0 Kuon Yi Industrial Corp. +0cc1 Given Imaging, Ltd +0cc2 Timex Corp. +0cc3 Rimage Corp. +0cc4 emsys GmbH +0cc5 Sendo +0cc6 Intermagic Corp. +0cc7 Kontron Medical AG +0cc8 Technotools Corp. +0cc9 BroadMAX Technologies, Inc. +0cca Amphenol +0ccb SKNet Co., Ltd +0ccc Domex Technology Corp. +0ccd TerraTec Electronic GmbH + 0012 PHASE 26 + 0013 PHASE 26 + 0014 PHASE 26 + 0015 Flash Update for TerraTec PHASE 26 + 0021 Cameo Grabster 200 + 0023 Mystify Claw + 0028 Aureon 5.1 MkII + 0032 MIDI HUBBLE + 0035 Miditech Play'n Roll + 0036 Cinergy 250 Audio + 0037 Cinergy 250 Audio + 0038 Cinergy T² DVB-T Receiver + 0039 Grabster AV 400 + 003b Cinergy 400 + 003c Grabster AV 250 + 0042 Cinergy Hybrid T XS + 0043 Cinergy T XS + 004e Cinergy T XS + 004f Cinergy Analog XS + 0055 Cinergy T XE (Version 1, AF9005) + 005c Cinergy T² + 0069 Cinergy T XE (Version 2, AF9015) + 0072 Cinergy Hybrid T + 0077 Aureon Dual USB + 0086 Cinergy Hybrid XE + 0097 Cinergy T RC MKII + 00a5 Cinergy Hybrid Stick + 00a9 RTL2838 DVB-T COFDM Demodulator [TerraTec Cinergy T Stick Black] +0cd4 Bang Olufsen + 0101 BeolinkPC2 +0cd5 LabJack Corporation + 0003 U3 + 0009 UE9 +0cd7 NewChip S.r.l. +0cd8 JS Digitech, Inc. + 2007 Smart Card Reader/JSTU-9700 +0cd9 Hitachi Shin Din Cable, Ltd +0cde Z-Com + 0001 XI-750 802.11b Wireless Adapter [Atmel AT76C503A] + 0002 XI-725/726 Prism2.5 802.11b Adapter + 0003 Sagem 802.11b Dongle + 0004 Sagem 802.11b Dongle + 0005 XI-735 Prism3 802.11b Adapter + 0006 XG-300 802.11b Adapter + 0008 XG-703A 802.11g Wireless Adapter [Intersil ISL3887] + 0009 (ZD1211)IEEE 802.11b+g Adapter + 0011 ZD1211 + 0012 AR5523 + 0013 AR5523 driver (no firmware) + 0014 NB 802.11g Wireless LAN Adapter(3887A) + 0015 XG-705A 802.11g Wireless Adapter [Intersil ISL3887] + 0016 NB 802.11g Wireless LAN Adapter(3887A) + 0018 NB 802.11a/b/g Wireless LAN Adapter(3887A) + 001a 802.11bg + 001c 802.11b/g Wireless Network Adapter + 0020 AG-760A 802.11abg Wireless Adapter [ZyDAS ZD1211B] + 0022 802.11b/g/n Wireless Network Adapter + 0023 UB81 802.11bgn + 0025 802.11b/g/n USB Wireless Network Adapter + 0026 UB82 802.11abgn +0ce5 Validation Technologies International + 0003 Matrix +0ce9 pico Technology + 1001 PicoScope3204 +0cf1 e-Conn Electronic Co., Ltd +0cf2 ENE Technology, Inc. + 6220 SD Card Reader (SG361) + 6225 SD card reader (UB6225) + 6250 SD card reader (UB6250) +0cf3 Atheros Communications, Inc. + 0001 AR5523 + 0002 AR5523 (no firmware) + 0003 AR5523 + 0004 AR5523 (no firmware) + 0005 AR5523 + 0006 AR5523 (no firmware) + 1001 Thomson TG121N [Atheros AR9001U-(2)NG] + 1002 TP-Link TL-WN821N v2 [Atheros AR9001U-(2)NG] + 1006 TP-Link TL-WN322G v3 / TL-WN422G v2 802.11g [Atheros AR9271] + 1010 3Com 3CRUSBN275 802.11abgn Wireless Adapter [Atheros AR9170] + 3000 AR3011 + 7015 TP-Link TL-WN821N + 9170 AR9170 802.11n + 9271 AR9271 802.11n + b002 Ubiquiti WiFiStation 802.11n [Atheros AR9271] + b003 Ubiquiti WiFiStationEXT 802.11n [Atheros AR9271] +0cf4 Fomtex Corp. +0cf5 Cellink Co., Ltd +0cf6 Compucable Corp. +0cf7 ishoni Networks +0cf8 Clarisys, Inc. + 0750 Claritel-i750 - vp +0cf9 Central System Research Co., Ltd +0cfa Inviso, Inc. +0cfc Minolta-QMS, Inc. + 2301 Magicolor 2300 DL + 2350 Magicolor 2350EN/3300 + 3100 Magicolor 3100 + 7300 Magicolor 5450/5550 +0cff SAFA MEDIA Co., Ltd. + 0320 SR-380N +0d06 telos EDV Systementwicklung GmbH +0d08 UTStarcom + 0602 DV007 [serial] + 0603 DV007 [storage] +0d0b Contemporary Controls +0d0c Astron Electronics Co., Ltd +0d0d MKNet Corp. +0d0e Hybrid Networks, Inc. +0d0f Feng Shin Cable Co., Ltd +0d10 Elastic Networks + 0001 StormPort (WDM) +0d11 Maspro Denkoh Corp. +0d12 Hansol Electronics, Inc. +0d13 BMF Corp. +0d14 Array Comm, Inc. +0d15 OnStream b.v. +0d16 Hi-Touch Imaging Technologies Co., Ltd + 0001 PhotoShuttle + 0002 Photo Printer 730 series + 0004 Photo Printer 63xPL/PS + 0100 Photo Printer 63xPL/PS + 0102 Photo Printer 64xPS + 0103 Photo Printer 730 series + 0104 Photo Printer 63xPL/PS + 0105 Photo Printer 64xPS + 0200 Photo Printer 64xDL +0d17 NALTEC, Inc. +0d18 coaXmedia +0d19 Hank Connection Industrial Co., Ltd +0d28 NXP + 0204 LPC1768 +0d32 Leo Hui Electric Wire & Cable Co., Ltd +0d33 AirSpeak, Inc. +0d34 Rearden Steel Technologies +0d35 Dah Kun Co., Ltd +0d3a Posiflex Technologies, Inc. +0d3c Sri Cable Technology, Ltd +0d3d Tangtop Technology Co., Ltd + 0001 HID Keyboard +0d3e Fitcom, inc. +0d3f MTS Systems Corp. +0d40 Ascor, Inc. +0d41 Ta Yun Terminals Industrial Co., Ltd +0d42 Full Der Co., Ltd +0d46 Kobil Systems GmbH + 2012 KAAN Standard Plus (Smartcard reader) + 3003 mIDentity Light / KAAN SIM III + 4000 mIDentity (mass storage) + 4001 mIDentity Basic/Classic (composite device) + 4081 mIDentity Basic/Classic (installationless) +0d49 Maxtor + 3000 Drive + 3010 3000LE Drive + 3100 Hi-Speed USB-IDE Bridge Controller + 3200 Personal Storage 3200 + 5000 5000XT Drive + 5010 5000LE Drive + 5020 Mobile Hard Disk Drive + 7000 OneTouch + 7010 OneTouch + 7410 Mobile Hard Disk Drive (1TB) + 7450 Basics Portable USB Device +0d4a NF Corp. +0d4b Grape Systems, Inc. +0d4c Tedas AG +0d4d Coherent, Inc. +0d4e Agere Systems Netherland BV + 047a WLAN Card + 1000 Wireless Card Model 0801 + 1001 Wireless Card Model 0802 +0d4f EADS Airbus France +0d50 Cleware GmbH + 0011 USB-Temp2 Thermometer +0d51 Volex (Asia) Pte., Ltd +0d53 HMI Co., Ltd +0d54 Holon Corp. +0d55 ASKA Technologies, Inc. +0d56 AVLAB Technology, Inc. +0d57 Solomon Microtech, Ltd +0d5c SMC Networks, Inc. + a001 SMC2662W (v1) EZ Connect 802.11b Wireless Adapter [Atmel AT76C503A] + a002 SMC2662W v2 / SMC2662W-AR / Belkin F5D6050 [Atmel at76c503a] +0d5e Myacom, Ltd + 2346 BT Digital Access adapter +0d5f CSI, Inc. +0d60 IVL Technologies, Ltd +0d61 Meilu Electronics (Shenzhen) Co., Ltd +0d62 Darfon Electronics Corp. + 0003 Smartcard Reader + 0004 Filter Driver + 001c Benq X120 Internet Keyboard Pro + 0306 M530 Mouse + 0800 Magic Wheel + 2021 AM805 Keyboard + 2026 TECOM Bluetooth Device + 2050 Mouse + 2106 Dell L20U Multimedia Keyboard + a100 Optical Mouse +0d63 Fritz Gegauf AG +0d64 DXG Technology Corp. + 0105 Dual Mode Digital Camera 1.3M + 0107 Horus MT-409 Camera + 0108 Dual Mode Digital Camera + 0202 Dual Mode Video Camera Device + 0303 DXG-305V Camera + 1001 SiPix Stylecam/UMAX AstraPix 320s + 1002 Fashion Cam 01 Dual-Mode DSC (Video Camera) + 1003 Fashion Cam Dual-Mode DSC (Controller) + 1021 D-Link DSC 350F + 1208 Dual Mode Still Camera Device + 2208 Mass Storage + 3105 Dual Mode Digital Camera Disk + 3108 Digicam Mass Storage Device +0d65 KMJP Co., Ltd +0d66 TMT +0d67 Advanet, Inc. +0d68 Super Link Electronics Co., Ltd +0d69 NSI +0d6a Megapower International Corp. +0d6b And-Or Logic +0d70 Try Computer Co., Ltd +0d71 Hirakawa Hewtech Corp. +0d72 Winmate Communication, Inc. +0d73 Hit's Communications, Inc. +0d76 MFP Korea, Inc. +0d77 Power Sentry/Newpoint +0d78 Japan Distributor Corp. +0d7a MARX Datentechnik GmbH +0d7b Wellco Technology Co., Ltd +0d7c Taiwan Line Tek Electronic Co., Ltd +0d7d Phison Electronics Corp. + 0100 PS1001/1011/1006/1026 Flash Disk + 0110 Gigabyte FlexDrive + 0120 Disk Pro 64MB + 0124 GIGABYTE Disk + 0240 I/O-Magic/Transcend 6-in-1 Card Reader + 110e NEC uPD720121/130 USB-ATA/ATAPI Bridge + 1240 Apacer 6-in-1 Card Reader 2.0 + 1270 Wolverine SixPac 6000 + 1300 Flash Disk + 1320 PS2031 Flash Disk + 1400 Attache 256MB USB 2.0 Flash Drive + 1420 PS2044 Pen Drive + 1470 Vosonic X's-Drive II+ VP2160 + 1620 USB Disk Pro + 1900 USB Thumb Drive +0d7e American Computer & Digital Components + 2507 Hi-Speed USB-to-IDE Bridge Controller + 2517 Hi-Speed Mass Storage Device + 25c7 Hi-Speed USB-to-IDE Bridge Controller +0d7f Essential Reality LLC + 0100 P5 Glove glove controller +0d80 H.R. Silvine Electronics, Inc. +0d81 TechnoVision +0d83 Think Outside, Inc. +0d87 Dolby Laboratories Inc. +0d89 Oz Software +0d8a King Jim Co., Ltd + 0101 TEPRA PRO +0d8b Ascom Telecommunications, Ltd +0d8c C-Media Electronics, Inc. + 0001 Audio Device + 0002 Composite Device + 0003 Sound Device + 0006 Storm HP-USB500 5.1 Headset + 000c Audio Adapter + 000d Composite Device + 000e Audio Adapter (Planet UP-100, Genius G-Talk) + 001f CM108 Audio Controller + 0102 CM106 Like Sound Device + 0103 CM102-A+/102S+ Audio Controller + 0104 CM103+ Audio Controller + 0105 CM108 Audio Controller + 0107 CM108 Audio Controller + 010f CM108 Audio Controller + 0115 CM108 Audio Controller + 0201 CM6501 + 5000 Mass Storage Controller + 5200 Mass Storage Controller(0D8C,5200) + b213 USB Phone CM109 (aka CT2000,VPT1000) +0d8d Promotion & Display Technology, Ltd + 0234 V-234 Composite Device + 0550 V-550 Composite Device + 0551 V-551 Composite Device + 0552 V-552 Composite Device + 0651 V-651 Composite Device + 0652 V-652 Composite Device + 0653 V-653 Composite Device + 0654 V-654 Composite Device + 0655 V-655 Composite Device + 0656 V-656 Composite Device + 0657 V-657 Composite Device + 0658 V-658 Composite Device + 0659 V-659 Composite Device + 0660 V-660 Composite Device + 0661 V-661 Composite Device + 0662 V-662 Composite Device + 0850 V-850 Composite Device + 0851 V-851 Composite Device + 0852 V-852 Composite Device + 0901 V-901 Composite Device + 0902 V-902 Composite Device + 0903 V-903 Composite Device + 4754 Voyager DMP Composite Device + bb00 Bloomberg Composite Device + bb01 Bloomberg Composite Device + bb02 Bloomberg Composite Device + bb03 Bloomberg Composite Device + bb04 Bloomberg Composite Device + bb05 Bloomberg Composite Device + fffe Global Tuner Composite Device + ffff Voyager DMP Composite Device +0d8e Global Sun Technology, Inc. + 0163 802.11g 54 Mbps Wireless Dongle + 1621 802.11b Wireless Adapter + 3762 Cohiba 802.11g Wireless Mini adapter [Intersil ISL3887] + 3763 802.11g Wireless dongle + 7100 802.11b Adapter + 7110 WL-210 / WU210P 802.11b Wireless Adapter [Atmel AT76C503A] + 7605 TRENDnet TEW-224UB 802.11b Wireless Adapter [Atmel AT76C503A] + 7801 AR5523 + 7802 AR5523 (no firmware) + 7811 AR5523 + 7812 AR5523 (no firmware) + 7a01 PRISM25 802.11b Adapter +0d8f Pitney Bowes +0d90 Sure-Fire Electrical Corp. +0d96 Skanhex Technology, Inc. + 0000 Jenoptik JD350 video + 3300 SX330z Camera + 4100 SX410z Camera + 4102 MD 9700 Camera + 4104 Jenoptik JD-4100z3s + 410a Medion 9801/Novatech SX-410z + 5200 SX-520z Camera +0d97 Santa Barbara Instrument Group + 0001 SBIG Astronomy Camera (without firmware) + 0101 SBIG Astronomy Camera (with firmware) +0d98 Mars Semiconductor Corp. + 0300 Avaya Wireless Card +0d99 Trazer Technologies, Inc. +0d9a RTX Telecom AS + 0001 Bluetooth Device +0d9b Tat Shing Electrical Co. +0d9c Chee Chen Hi-Technology Co., Ltd +0d9d Sanwa Supply, Inc. +0d9e Avaya + 0300 Wireless Card +0d9f Powercom Co., Ltd + 0001 Uninterruptible Power Supply + 0002 Black Knight PRO / WOW Uninterruptible Power Supply (Cypress HID->COM RS232) + 00a2 Imperial Uninterruptible Power Supply (HID PDC) + 00a3 Smart King PRO Uninterruptible Power Supply (HID PDC) + 00a4 WOW Uninterruptible Power Supply (HID PDC) + 00a5 Vanguard Uninterruptible Power Supply (HID PDC) + 00a6 Black Knight PRO Uninterruptible Power Supply (HID PDC) +0da0 Danger Research +0da1 Suzhou Peter's Precise Industrial Co., Ltd +0da2 Land Instruments International, Ltd +0da3 Nippon Electro-Sensory Devices Corp. +0da4 Polar Electro OY + 0001 Interface +0da7 IOGear, Inc. +0da8 softDSP Co., Ltd + 0001 SDS 200A Oscilloscope +0dab Cubig Group + 0100 DVR/CVR-M140 MP3 Player +0dad Westover Scientific +0db0 Micro Star International + 1020 PC2PC WLAN Card + 1967 Bluetooth Dongle + 3801 Motorola Bluetooth 2.1+EDR Device + 4011 Medion Flash XL V2.0 Card Reader + 4600 802.11b/g Turbo Wireless Adapter + 5501 Mass Storage Device + 5502 Mass Storage Device + 5513 MP3 Player + 5515 MP3 Player + 5516 MP3 Player + 5580 Mega Sky 580 DVB-T Tuner [M902x] + 5581 Mega Sky 580 DVB-T Tuner [GL861] + 6823 UB11B/MS-6823 802.11b Wi-Fi adapter + 6826 IEEE 802.11g Wireless Network Adapter + 6855 Bluetooth Device + 6861 MSI-6861 802.11g WiFi adapter + 6865 RT2570 + 6869 RT2570 + 6874 RT2573 + 6877 RT2573 + 6881 Bluetooth Class I EDR Device + 688a Bluetooth Class I EDR Device + 6899 802.11bgn 1T1R Mini Card Wireless Adapter + 6970 MS-6970 BToes Bluetooth adapter + 697a Bluetooth Dongle + 6982 Medion Flash XL Card Reader + a861 RT2573 + a874 RT2573 + a970 Bluetooth dongle + a97a Bluetooth EDR Device + b970 Bluetooth EDR Device + b97a Bluetooth EDR Device +0db1 Wen Te Electronics Co., Ltd +0db2 Shian Hwi Plug Parts, Plastic Factory +0db3 Tekram Technology Co., Ltd +0db4 Chung Fu Chen Yeh Enterprise Corp. +0db7 ELCON Systemtechnik + 0002 Goldpfeil P-LAN +0dbc A&D Medical + 0003 AND Serial Cable [AND Smart Cable] +0dbe Jiuh Shiuh Precision Industry Co., Ltd +0dbf Quik Tech Solutions + 0002 SmartDongle Security Key + 0200 HDD Storage Solution + 021b USB-2.0 IDE Adapter + 0300 Storage Adapter + 0333 Storage Adapter + 0707 ZIV Drive +0dc0 G7 Solutions (formerly Great Notions) +0dc1 Tamagawa Seiki Co., Ltd +0dc3 Athena Smartcard Solutions, Inc. + 0801 ASEDrive III + 0802 ASEDrive IIIe + 1104 ASEDrive IIIe KB + 1701 ASEKey + 1702 ASEKey +0dc4 Macpower Peripherals, Ltd + 0040 Mass Storage Device + 0041 Mass Storage Device + 0042 Mass Storage Device + 0101 Hi-Speed Mass Storage Device +0dc5 SDK Co., Ltd +0dc6 Precision Squared Technology Corp. + 2301 Wireless Touchpad Keyboard +0dc7 First Cable Line, Inc. +0dcd NetworkFab Corp. + 0001 Remote Interface Adapter + 0002 High Bandwidth Codec +0dd0 Access Solutions + 1002 Triple Talk Speech Synthesizer +0dd1 Contek Electronics Co., Ltd +0dd2 Power Quotient International Co., Ltd + 0003 Mass Storage (P) +0dd3 MediaQ +0dd4 Custom Engineering SPA +0dd5 California Micro Devices +0dd7 Kocom Co., Ltd +0dd8 Netac Technology Co., Ltd + 1060 USB-CF-Card + e007 OnlyDisk U222 Pendrive + f607 OnlyDisk U208 1G flash drive [U-SAFE] +0dd9 HighSpeed Surfing +0dda Integrated Circuit Solution, Inc. + 0001 Multi-Card Reader 6in1 + 0002 Multi-Card Reader 7in1 + 0003 Flash Disk + 0005 Internal Multi-Card Reader 6in1 + 0008 SD single card reader + 0009 MS single card reader + 000a MS+SD Dual Card Reader + 000b SM single card reader + 0101 All-In-One Card Reader + 0102 All-In-One Card Reader + 0301 MP3 Player + 0302 Multi-Card MP3 Player + 1001 Multi-Flash Disk + 2001 Multi-Card Reader + 2002 Q018 default PID + 2003 Multi-Card Reader + 2005 Datalux DLX-1611 16in1 Card Reader + 2006 All-In-One Card Reader + 2007 USB to ATAPI bridge + 2008 All-In-One Card Reader + 2013 SD/MS Combo Card Reader + 2014 SD/MS Single Card Reader + 2023 card reader SD/MS DEMO board with ICSI brand name (MaskROM version) + 2024 card reader SD/MS DEMO board with Generic brand name (MaskROM version) + 2026 USB2.0 Card Reader + 2027 USB 2.0 Card Reader + 2315 UFD MP3 player (model 2) + 2318 UFD MP3 player (model 1) + 2321 UFD MP3 player +0ddb Tamarack, Inc. +0ddd Datelink Technology Co., Ltd +0dde Ubicom, Inc. +0de0 BD Consumer Healthcare +0dea UTECH Electronic (D.G.) Co., Ltd. +0ded Novasonics +0dee Lifetime Memory Products + 4010 Storage Adapter +0def Full Rise Electronic Co., Ltd +0df4 NET&SYS + 0201 MNG-2005 +0df6 Sitecom Europe B.V. + 0001 C-Media VOIP Device + 0004 Bluetooth 2.0 Adapter 100m + 0007 Bluetooth 2.0 Adapter 10m + 000b Bluetooth 2.0 Adapter DFU + 000d WL-168 Wireless Network Adapter 54g + 0017 WL-182 Wireless-N Network USB Card + 0019 Bluetooth 2.0 adapter 10m CN-512v2 001 + 001a Bluetooth 2.0 adapter 100m CN-521v2 001 + 002b WL-188 Wireless Network 300N USB Adapter + 002c WL-301 Wireless Network 300N USB Adapter + 002d WL-302 Wireless Network 300N USB dongle + 0036 WL-603 Wireless Adapter + 0039 WL-315 Wireless-N USB Adapter + 003b WL-321 Wireless USB Gaming Adapter 300N + 003c WL-323 Wireless-N USB Adapter + 003d WL-324 Wireless USB Adapter 300N + 003e WL-343 Wireless USB Adapter 150N X1 + 003f WL-608 Wireless USB Adapter 54g + 0040 WL-344 Wireless USB Adapter 300N X2 + 0041 WL-329 Wireless Dualband USB adapter 300N + 0042 WL-345 Wireless USB adapter 300N X3 + 0045 WL-353 Wireless USB Adapter 150N Nano + 0047 WL-352v1 Wireless USB Adapter 300N 002 + 0048 WL-349v1 Wireless USB Adapter 150N 002 + 004a WL-358v1 Wireless Micro USB Adapter 300N X3 002 + 004b WL-349v3 Wireless Micro Adapter 150N X1 [Realtek RTL8192SU] + 004c WL-352 802.11n Adapter [realtek rtl8191s] + 0050 WL-349v4 Wireless Micro Adapter 150N X1 [Ralink RT3370] + 061c LN-028 Network USB 2.0 Adapter + 21f4 44 St Bluetooth Device + 2200 Sitecom bluetooth2.0 class 2 dongle CN-512 + 2208 Sitecom bluetooth2.0 class 2 dongle CN-520 + 2209 Sitecom bluetooth2.0 class 1 dongle CN-521 + 9071 WL-113 rev 1 Wireless Network USB Adapter + 9075 WL-117 Hi-Speed USB Adapter + 90ac WL-172 Wireless Network USB Adapter 54g Turbo + 9712 WL-113 rev 2 Wireless Network USB Adapter +0df7 Mobile Action Technology, Inc. + 0620 MA-620 Infrared Adapter + 0700 MA-700 Bluetooth Adapter + 0720 MA-720 Bluetooth Adapter + 0722 Bluetooth Dongle + 0730 MA-730/MA-730G Bluetooth Adapter + 0800 Data Cable + 0820 Data Cable + 0900 MA i-gotU Travel Logger GPS + 1800 Generic Card Reader + 1802 Card Reader +0dfa Toyo Communication Equipment Co., Ltd +0dfc GeneralTouch Technology Co., Ltd + 0001 Touchscreen +0e03 Nippon Systemware Co., Ltd +0e08 Winbest Technology Co., Ltd +0e0b Amigo Technology Inc. + 9031 802.11n Wireless USB Card + 9041 802.11n Wireless USB Card +0e0c Gesytec + 0101 LonUSB LonTalk Network Adapter +0e0f VMware, Inc. + 0001 Device + 0002 Virtual USB Hub + 0003 Virtual Mouse + 0004 Virtual CCID + 0005 Virtual Mass Storage + 0006 Virtual Keyboard + f80a Smoker FX2 +0e16 JMTek, LLC +0e17 Walex Electronic, Ltd +0e1b Crewave +0e20 Pegasus Technologies Ltd. + 0101 NoteTaker +0e21 Cowon Systems, Inc. + 0300 iAudio CW200 + 0400 MP3 Player + 0500 iAudio M3 + 0510 iAudio X5, subpack USB port + 0513 iAudio X5, side USB port + 0520 iAudio M5, side USB port + 0601 iAudio G3 + 0700 iAudio U3 + 0751 iAudio 7 + 0760 iAUDIO U5 / iAUDIO G2 + 0800 Cowon D2 (UMS mode) + 0801 Cowon D2 (MTP mode) + 0910 iAUDIO 9 + 0920 J3 +0e22 Symbian Ltd. +0e23 Liou Yuane Enterprise Co., Ltd +0e25 VinChip Systems, Inc. +0e26 J-Phone East Co., Ltd +0e30 HeartMath LLC +0e34 Micro Computer Control Corp. +0e35 3Pea Technologies, Inc. +0e36 TiePie engineering + 0008 Handyscope HS3 + 0009 Handyscope HS3 (br) + 000a Handyscope HS4 + 000b Handyscope HS4 (br) + 000e Handyscope HS4-DIFF + 000f Handyscope HS4-DIFF (br) + 0010 Handyscope HS2 + 0011 TiePieSCOPE HS805 (br) + 0012 TiePieSCOPE HS805 + 0018 Handyprobe HP2 + 0042 TiePieSCOPE HS801 + 00fd USB To Parallel adapter + 00fe USB To Parallel adapter +0e38 Stratitec, Inc. +0e39 Smart Modular Technologies, Inc. + 0137 Bluetooth Device +0e3a Neostar Technology Co., Ltd + 1100 CW-1100 Wireless Network Adapter +0e3b Mansella, Ltd +0e41 Line6, Inc. + 4147 TonePort GX + 4250 BassPODxt + 4252 BassPODxt Pro + 4642 BassPODxt Live + 4650 PODxt Live + 4750 GuitarPort + 5044 PODxt + 5050 PODxt Pro + 534d SeaMonkey +0e44 Sun-Riseful Technology Co., Ltd. +0e48 Julia Corp., Ltd + 0100 CardPro SmartCard Reader +0e4a Shenzhen Bao Hing Electric Wire & Cable Mfr. Co. +0e4c Radica Games, Ltd + 1097 Gamester Controller + 2390 Games Jtech Controller + 7288 funkey reader +0e55 Speed Dragon Multimedia, Ltd + 110a Tanic S110-SG1 + ISSC IS1002N [Slow Infra-Red (SIR) & Bluetooth 1.2 (Class 2) Adapter] + 110b MS3303H USB-to-Serial Bridge +0e56 Kingston Technology Company, Inc. + 6021 K-PEX 100 +0e5a Active Co., Ltd +0e5b Union Power Information Industrial Co., Ltd +0e5c Bitland Information Technology Co., Ltd + 6118 LCD Device + 6119 remote receive and control device + 6441 C-Media Sound Device +0e5d Neltron Industrial Co., Ltd +0e5e Conwise Technology Co., Ltd. + 6622 CW6622 +0e66 Hawking Technologies + 0001 HWUN1 Hi-Gain Wireless-300N Adapter w/ Upgradable Antenna [Ralink RT2870] + 0003 HWDN1 Hi-Gain Wireless-300N Dish Adapter [Ralink RT2870] + 0009 HWUN2 Hi-Gain Wireless-150N Adapter w/ Upgradable Antenna [Ralink RT2770] + 000b HWDN2 Hi-Gain Wireless-150N Dish Adapter [Ralink RT2770] + 0013 HWUN3 Hi-Gain Wireless-N Adapter [Ralink RT3070] + 0017 HAWNU1 Hi-Gain Wireless-150N Network Adapter with Range Amplifier [Ralink RT3070] + 0018 Wireless-N Network Adapter [Ralink RT2870] + 400b UF100 10/100 Network Adapter + 400c UF100 Ethernet [pegasus2] +0e67 Fossil, Inc. + 0002 Wrist PDA +0e6a Megawin Technology Co., Ltd + 0101 MA100 [USB-UART Bridge IC] + 6001 GEMBIRD Flexible keyboard KB-109F-B-DE +0e6f Logic3 + 0003 Freebird wireless Controller + 0005 Eclipse wireless Controller + 0006 Edge wireless Controller +0e70 Tokyo Electronic Industry Co., Ltd +0e72 Hsi-Chin Electronics Co., Ltd +0e75 TVS Electronics, Ltd +0e79 Archos, Inc. + 1106 Pocket Media Assistant - PMA400 + 1204 Gmini XS 200 + 1306 504 Portable Multimedia Player + 1330 5 Tablet + 1332 5 IMT + 1416 32 IT +0e7b On-Tech Industry Co., Ltd +0e7e Gmate, Inc. + 0001 Yopy 3000 PDA + 1001 YP3X00 PDA +0e82 Ching Tai Electric Wire & Cable Co., Ltd +0e83 Shin An Wire & Cable Co. +0e8c Well Force Electronic Co., Ltd +0e8d MediaTek Inc. + 0003 MT6227 phone + 0004 MT6227 phone +0e8f GreenAsia Inc. + 0003 MaxFire Blaze2 + 0012 USB Wireless 2.4GHz Gamepad + 0016 4 port USB 1.1 hub UH-174 + 0020 USB to PS/2 Adapter + 0021 Multimedia Keyboard Controller + 0201 SmartJoy Frag Xpad/PS2 adaptor +0e90 WiebeTech, LLC + 0100 Storage Adapter V1 +0e91 VTech Engineering Canada, Ltd +0e92 C's Glory Enterprise Co., Ltd +0e93 eM Technics Co., Ltd +0e95 Future Technology Co., Ltd +0e96 Aplux Communications, Ltd + c001 TRUST 380 USB2 SPACEC@M +0e97 Fingerworks, Inc. + 0908 Composite HID (Keyboard and Mouse) +0e98 Advanced Analogic Technologies, Inc. +0e99 Parallel Dice Co., Ltd +0e9a TA HSING Industries, Ltd +0e9b ADTEC Corp. +0e9c Streamzap, Inc. + 0000 Streamzap Remote Control +0e9f Tamura Corp. +0ea0 Ours Technology, Inc. + 2126 7-in-1 Card Reader + 2153 SD Card Reader Key + 2168 Transcend JetFlash 2.0 / Astone USB Drive + 6803 OTI-6803 Flash Disk + 6808 OTI-6808 Flash Disk + 6828 OTI-6828 Flash Disk +0ea6 Nihon Computer Co., Ltd +0ea7 MSL Enterprises Corp. +0ea8 CenDyne, Inc. +0ead Humax Co., Ltd +0eb0 NovaTech + 9020 NovaTech NV-902W + 9021 RT2573 +0eb1 WIS Technologies, Inc. + 6666 WinFast WalkieTV TV Loader + 6668 WinFast WalkieTV TV Loader + 7007 WinFast WalkieTV WDM Capture +0eb2 Y-S Electronic Co., Ltd +0eb3 Saint Technology Corp. +0eb7 Endor AG +0ebe VWeb Corp. +0ebf Omega Technology of Taiwan, Inc. +0ec0 LHI Technology (China) Co., Ltd +0ec1 Abit Computer Corp. +0ec2 Sweetray Industrial, Ltd +0ec3 Axell Co., Ltd +0ec4 Ballracing Developments, Ltd +0ec5 GT Information System Co., Ltd +0ec6 InnoVISION Multimedia, Ltd +0ec7 Theta Link Corp. + 1008 So., Show 301 Digital Camera +0ecd Lite-On IT Corp. + 1400 CD\RW 40X + a100 LDW-411SX DVD/CD Rewritable Drive +0ece TaiSol Electronics Co., Ltd +0ecf Phogenix Imaging, LLC +0ed1 WinMaxGroup + 6660 Flash Disk 64M-C + 6680 Flash Disk 64M-B + 7634 MP3 Player +0ed2 Kyoto Micro Computer Co., Ltd +0ed3 Wing-Tech Enterprise Co., Ltd +0ed5 Fiberbyte + e000 USB-inSync Device + f000 Fiberbyte USB-inSync Device + f201 Fiberbyte USB-inSync DAQ-2500X +0eda Noriake Itron Corp. +0edf e-MDT Co., Ltd + 2060 FID irock! 100 Series +0ee0 Shima Seiki Mfg., Ltd +0ee1 Sarotech Co., Ltd +0ee2 AMI Semiconductor, Inc. +0ee3 ComTrue Technology Corp. + 1000 Image Tank 1.5 +0ee4 Sunrich Technology, Ltd +0eee Digital Stream Technology, Inc. + 8810 Mass Storage Drive +0eef D-WAV Scientific Co., Ltd + 0001 eGalax TouchScreen + 0002 Touchscreen Controller(Professional) +0ef0 Hitachi Cable, Ltd +0ef1 Aichi Micro Intelligent Corp. +0ef2 I/O Magic Corp. +0ef3 Lynn Products, Inc. +0ef4 DSI Datotech +0ef5 PointChips + 2202 Flash Disk + 2366 Flash Disk +0ef6 Yield Microelectronics Corp. +0ef7 SM Tech Co., Ltd (Tulip) +0efd Oasis Semiconductor +0efe Wem Technology, Inc. +0f06 Visual Frontier Enterprise Co., Ltd +0f08 CSL Wire & Plug (Shen Zhen) Co. +0f0c CAS Corp. +0f0d Hori Co., Ltd + 0011 Real Arcade Pro 3 +0f0e Energy Full Corp. +0f11 LD Didactic GmbH + 1000 CASSY-S + 1010 Pocket-CASSY + 1020 Mobile-CASSY + 1080 Joule and Wattmeter + 1081 Digital Multimeter P + 1090 UMI P + 1100 X-Ray Apparatus + 1101 X-Ray Apparatus + 1200 VideoCom + 2000 COM3LAB + 2010 Terminal Adapter + 2020 Network Analyser + 2030 Converter Control Unit + 2040 Machine Test System +0f12 Mars Engineering Corp. +0f13 Acetek Technology Co., Ltd +0f18 Finger Lakes Instrumentation + 0002 CCD + 0006 Focuser + 0007 Filter Wheel + 000a ProLine CCD + 000b Color Filter Wheel 4 + 000c PDF2 + 000d Guider +0f19 Oracom Co., Ltd +0f1b Onset Computer Corp. +0f1c Funai Electric Co., Ltd +0f1d Iwill Corp. +0f21 IOI Technology Corp. +0f22 Senior Industries, Inc. +0f23 Leader Tech Manufacturer Co., Ltd +0f24 Flex-P Industries, Snd., Bhd. +0f2d ViPower, Inc. +0f2e Geniality Maple Technology Co., Ltd +0f2f Priva Design Services +0f30 Jess Technology Co., Ltd + 001c PS3 Guitar Controller Dongle + 0110 Dual Analog Rumble Pad + 0111 Colour Rumble Pad + 0208 Xbox & PC Gamepad +0f31 Chrysalis Development +0f32 YFC-BonEagle Electric Co., Ltd +0f37 Kokuyo Co., Ltd +0f38 Nien-Yi Industrial Corp. +0f3d Airprime, Incorporated + 0112 CDMA 1xEVDO PC Card, PC 5220 +0f41 RDC Semiconductor Co., Ltd +0f42 Nital Consulting Services, Inc. +0f44 Polhemus + ef11 Patriot (firmware not loaded) + ef12 Patriot + ff11 Liberty (firmware not loaded) + ff12 Liberty +0f4b St. John Technology Co., Ltd +0f4c WorldWide Cable Opto Corp. +0f4d Microtune, Inc. + 1000 Bluetooth Dongle +0f4e Freedom Scientific +0f52 Wing Key Electrical Co., Ltd +0f53 Dongguan White Horse Cable Factory, Ltd +0f54 Kawai Musical Instruments Mfg. Co., Ltd +0f55 AmbiCom, Inc. +0f5c Prairiecomm, Inc. +0f5d NewAge International, LLC + 9455 Compact Drive +0f5f Key Technology Corp. +0f60 NTK, Ltd +0f61 Varian, Inc. +0f62 Acrox Technologies Co., Ltd + 1001 Targus Mini Trackball Optical Mouse +0f63 LeapFrog Enterprises + 0010 Leapster Explorer + 0500 Fly Fusion + 0600 Leap Port Turbo + 0700 POGO + 0800 Didj + 0900 TAGSchool + 0a00 Leapster 2 + 0b00 Crammer + 0c00 Tag Jr + 0d00 My Pal Scout + 0e00 Tag32 + 0f00 Tag64 + 1000 Kiwi16 + 1100 Leapster L2x + 1111 Fly Fusion + 1300 Didj UK/France (Leapster Advance) +0f68 Kobe Steel, Ltd +0f69 Dionex Corp. +0f6a Vibren Technologies, Inc. +0f6e INTELLIGENT SYSTEMS + 0100 GameBoy Color Emulator + 0201 GameBoy Advance Flash Gang Writer + 0202 GameBoy Advance Capture + 0300 Gamecube DOL Viewer + 0400 NDS Emulator + 0401 NDS UIC + 0402 NDS Writer + 0403 NDS Capture + 0404 NDS Emulator (Lite) +0f73 DFI +0f7c DQ Technology, Inc. +0f7d NetBotz, Inc. +0f7e Fluke Corp. +0f88 VTech Holdings, Ltd + 3012 RT2570 + 3014 ZD1211B +0f8b Yazaki Corp. +0f8c Young Generation International Corp. +0f8d Uniwill Computer Corp. +0f8e Kingnet Technology Co., Ltd +0f8f Soma Networks +0f97 CviLux Corp. +0f98 CyberBank Corp. +0f9c Hyun Won, Inc. + 0301 M-Any Premium DAH-610 MP3/WMA Player + 0332 mobiBLU DAH-1200 MP3/Ogg Player +0f9e Lucent Technologies +0fa3 Starconn Electronic Co., Ltd +0fa4 ATL Technology +0fa5 Sotec Co., Ltd +0fa7 Epox Computer Co., Ltd +0fa8 Logic Controls, Inc. +0faf Winpoint Electronic Corp. +0fb0 Haurtian Wire & Cable Co., Ltd +0fb1 Inclose Design, Inc. +0fb2 Juan-Chern Industrial Co., Ltd +0fb8 Wistron Corp. + 0002 eHome Infrared Receiver +0fb9 AACom Corp. +0fba San Shing Electronics Co., Ltd +0fbb Bitwise Systems, Inc. +0fc1 Mitac Internatinal Corp. +0fc2 Plug and Jack Industrial, Inc. +0fc5 Delcom Engineering + 1222 I/O Development Board +0fc6 Dataplus Supplies, Inc. +0fca Research In Motion, Ltd. + 0001 Blackberry Handheld + 0004 Blackberry Handheld + 0006 Blackberry Pearl + 0008 Blackberry Pearl + 8001 Blackberry Handheld + 8004 Blackberry Handheld + 8007 Blackberry Handheld +0fce Sony Ericsson Mobile Communications AB + 0076 W910i (Multimedia mode) + 00af V640i Phone [PTP Camera] + 00d4 C902 [MTP] + 00d9 C702 Phone + 0112 W995 Walkman Phone + 1010 WMC Modem + 10af V640i Phone [PictBridge] + 10d4 C902 Phone [PictBridge] + 2105 W715 Phone + 2137 Xperia X10 mini (USB debug) + 2138 Xperia X10 mini pro (Debug) + 2149 Xperia X8 (debug) + 3137 Xperia X10 mini + 3138 Xperia X10 mini pro + 3149 Xperia X8 + 8004 9000 Phone [Mass Storage] + d008 V800-Vodafone 802SE Phone + d016 K750i Phone + d017 K608i Phone + d019 VDC EGPRS Modem + d025 520 WMC Data Modem + d028 W800i + d038 W850i Phone + d039 K800i (phone mode) + d041 K510i Phone + d042 W810i Phone + d043 V630i Phone + d046 K610i Phone + d065 W960i Phone (PC Suite) + d076 W910i (Phone mode) + d089 W580i Phone (mass storage) + d0af V640i Phone + d0cf MD300 Mobile Broadband Modem + d0d4 C902 Phone [Modem] + d0e1 MD400 Mobile Broadband Modem + d12e Xperia X10 + e039 K800i (msc mode) + e042 W810i Phone + e043 V630i Phone [Mass Storage] + e075 K850i + e076 W910i (Mass storage) + e089 W580i Phone + e090 W200 Phone (Mass Storage) + e0a3 W660i + e0af V640i Phone [Mass Storage] + e0d4 C902 Phone [Mass Storage] + e0ef C905 Phone [Mass Storage] + e0f3 W595 + e112 W995 Phone (Mass Storage) + e12e X10i Phone +0fcf Dynastream Innovations, Inc. +0fd0 Tulip Computers B.V. +0fd1 Giant Electronics Ltd. +0fd4 Tenovis GmbH & Co., KG +0fd5 Direct Access Technology, Inc. +0fdc Micro Plus +0fe4 IN-Tech Electronics, Ltd +0fe5 Greenconn (U.S.A.), Inc. +0fe6 Kontron (Industrial Computer Source / ICS Advent) + 8101 DM9601 Fast Ethernet Adapter + 811e Parallel Adapter + 9700 DM9601 Fast Ethernet Adapter +0fe9 DVICO + 4020 TViX M-6500 + db00 FusionHDTV DVB-T (MT352+LgZ201) (uninitialized) + db01 FusionHDTV DVB-T (MT352+LgZ201) (initialized) + db10 FusionHDTV DVB-T (MT352+Thomson7579) (uninitialized) + db11 FusionHDTV DVB-T (MT352+Thomson7579) (initialized) + db78 FusionHDTV DVB-T Dual Digital 4 (ZL10353+xc2028/xc3028) (initialized) +0fea United Computer Accessories +0feb CRS Electronic Co., Ltd +0fec UMC Electronics Co., Ltd +0fed Access Co., Ltd +0fee Xsido Corp. +0fef MJ Research, Inc. +0ff6 Core Valley Co., Ltd +0ff7 CHI SHING Computer Accessories Co., Ltd +0fff Aopen, Inc. +1000 Speed Tech Corp. +1001 Ritronics Components (S) Pte., Ltd +1003 Sigma Corp. + 0100 Sigma SD10 +1004 LG Electronics, Inc. + 1fae U8120 3G Cellphone + 6000 KU330/KU990/VX4400/VX6000 + 6005 T5100 + 6018 GM360/GD510/GW520/KP501 + 618e Ally/Optimus One/Vortex (debug mode) + 618f Ally/Optimus One + 61c6 Vortex (msc) + 6800 CDMA Modem + 7000 LG LDP-7024D(LD)USB + a400 Renoir (KC910) +1005 Apacer Technology, Inc. + 1001 MP3 Player + 1004 MP3 Player + 1006 MP3 Player + b113 Handy Steno 2.0/HT203 + b223 CD-RW + 6in1 Card Reader Digital Storage / Converter +1006 iRiver, Ltd. + 3001 iHP-100 + 3002 iHP-120/140 MP3 Player + 3003 H320/H340 + 3004 H340 (mtp) +1009 Emuzed, Inc. + 000e eHome Infrared Receiver + 0013 Angel MPEG Device + 0015 Lumanate Wave PAL SECAM DVBT Device + 0016 Lumanate Wave NTSC/ATSC Combo Device +100a AV Chaseway, Ltd + 2402 MP3 Player + 2404 MP3 Player + 2405 MP3 Player + 2406 MP3 Player + a0c0 MP3 Player +100b Chou Chin Industrial Co., Ltd +100d Netopia, Inc. + 3342 Cayman 3352 DSL Modem + 3382 3380 Series Network Interface + 6072 DSL Modem + 9031 Motorola 802.11n Dualband USB Wireless Adapter + 9032 Motorola 802.11n 5G USB Wireless Adapter + cb01 Cayman 3341 Ethernet DSL Router +1010 Fukuda Denshi Co., Ltd +1011 Mobile Media Tech. + 0001 AccFast Mp3 +1012 SDKM Fibres, Wires & Cables Berhad +1013 TST-Touchless Sensor Technology AG +1014 Densitron Technologies PLC +1015 Softronics Pty., Ltd +1016 Xiamen Hung's Enterprise Co., Ltd +1017 Speedy Industrial Supplies, Pte., Ltd +1019 Elitegroup Computer Systems (ECS) + 0c55 Flash Reader, Desknote UCR-61S2B + 0f38 Infrared Receiver +1020 Labtec + 0006 Wireless Keyboard + 000a Wireless Optical Mouse + 0106 Wireless Optical Mouse +1022 Shinko Shoji Co., Ltd +1025 Hyper-Paltek + 005e USB DVB-T device + 005f USB DVB-T device + 0300 MP3 Player + 0350 MP3 Player +1026 Newly Corp. +1027 Time Domain +1028 Inovys Corp. +1029 Atlantic Coast Telesys +102a Ramos Technology Co., Ltd +102b Infotronic America, Inc. +102c Etoms Electronics Corp. + 6151 Q-Cam Sangha CIF + 6251 Q-Cam VGA +102d Winic Corp. +1031 Comax Technology, Inc. +1032 C-One Technology Corp. +1033 Nucam Corp. + 0068 3,5'' HDD case MD-231 +1038 Ideazon, Inc. + 0100 Zboard +1039 devolo AG + 2140 dsl+ 1100 duo +103d Stanton + 0100 ScratchAmp + 0101 ScratchAmp +1043 iCreate Technologies Corp. + 160f Wireless Network Adapter + 4901 AV-836 Video Capture Device + 8006 Flash Disk 32-256 MB + 8012 Flash Disk 256 MB +1044 Chu Yuen Enterprise Co., Ltd + 7001 Gigabyte U7000 DVB-T tuner + 7002 Gigabyte U8000 DVB-T tuner + 7004 Gigabyte U7100 DVB-T tuner + 7005 Gigabyte U7200 DVB-T tuner [AF9035] + 7006 Gigabyte U6000 DVB-T tuner [em2863] + 8001 GN-54G + 8002 GN-BR402W + 8003 GN-WLBM101 + 8004 GN-WLBZ101 802.11b Adapter + 8005 GN-WLBZ201 802.11b Adapter + 8006 GN-WBZB-M 802.11b Adapter + 8007 GN-WBKG + 8008 GN-WB01GS + 800a GN-WI05GS + 800b GN-WB30N 802.11n WLAN Card + 800c GN-WB31N 802.11n USB WLAN Card + 800d GN-WB32L 802.11n USB WLAN Card +1046 Winbond Electronics Corp. [hex] + 6694 Generic W6694 USB + 8901 Bluetooth Device + 9967 W9967CF/W9968CF Webcam IC +1048 Targus Group International +104b Mylex / Buslogic +104c AMCO TEC International, Inc. +104d Newport Corporation + 1003 Model-52 LED Light Source Power Supply and Driver +104f WB Electronics + 0001 Infinity Phoenix + 0002 Smartmouse + 0003 FunProgrammer + 0004 Infinity Unlimited + 0006 Infinity Smart + 0007 Infinity Smart module + 0008 Infinity CryptoKey + 0009 RE-BL PlayStation 3 IR-to-Bluetooth converter +1050 Yubico.com + 0010 Yubikey +1053 Immanuel Electronics Co., Ltd +1054 BMS International Beheer N.V. + 5004 DSL 7420 Loader + 5005 DSL 7420 LAN Modem +1055 Complex Micro Interconnection Co., Ltd +1056 Hsin Chen Ent Co., Ltd +1057 ON Semiconductor +1058 Western Digital Technologies, Inc. + 0200 Firewire USB Combo + 0400 External HDD + 0500 hub + 0702 Passport External HDD + 0704 Passport External HDD + 070a My Passport Essential SE + 071a My Passport 1TB + 0900 MyBook Essential External HDD + 0901 MyBook External HDD + 0910 MyBook Essential External HDD + 1001 External Hard Disk [Elements] + 1021 Elements 2TB + 1104 MyBook Mirror Edition External HDD + 1123 My Book 3.0 +1059 Giesecke & Devrient GmbH + 000b StarSign Bio Token 3.0 +105c Hong Ji Electric Wire & Cable (Dongguan) Co., Ltd +105d Delkin Devices, Inc. +105e Valence Semiconductor Design, Ltd +105f Chin Shong Enterprise Co., Ltd +1060 Easthome Industrial Co., Ltd +1063 Motorola Electronics Taiwan, Ltd [hex] + 1555 MC141555 Hub + 4100 SB4100 USB Cable Modem +1065 CCYU Technology + 0020 USB-DVR2 Dev Board + 2136 EasyDisk ED1064 +106a Loyal Legend, Ltd +106c Curitel Communications, Inc. + 1101 CDMA 2000 1xRTT USB modem (HX-550C) + 1102 Packet Service + 1103 Packet Service Diagnostic Serial Port (WDM) + 1104 Packet Service Diagnostic Serial Port (WDM) + 1105 Composite Device + 1106 Packet Service Diagnostic Serial Port (WDM) + 1301 Composite Device + 1302 Packet Service Diagnostic Serial Port (WDM) + 1303 Packet Service + 1304 Packet Service + 1401 Composite Device + 1402 Packet Service + 1403 Packet Service Diagnostic Serial Port (WDM) + 1501 Packet Service + 1502 Packet Service Diagnostic Serial Port (WDM) + 1503 Packet Service + 1601 Packet Service + 1602 Packet Service Diagnostic Serial Port (WDM) + 1603 Packet Service + 2101 AudioVox 8900 Cell Phone + 2102 Packet Service + 2103 Packet Service Diagnostic Serial Port (WDM) + 2301 Packet Service + 2302 Packet Service Diagnostic Serial Port (WDM) + 2303 Packet Service + 2401 Packet Service Diagnostic Serial Port (WDM) + 2402 Packet Service + 2403 Packet Service Diagnostic Serial Port (WDM) + 2501 Packet Service + 2502 Packet Service Diagnostic Serial Port (WDM) + 2503 Packet Service + 2601 Packet Service + 2602 Packet Service Diagnostic Serial Port (WDM) + 2603 Packet Service + 3701 Broadband Wireless modem + 3702 Pantech PX-500 + 3714 PANTECH USB MODEM [UM175] + 3eb4 Packet Service Diagnostic Serial Port (WDM) + 4101 Packet Service Diagnostic Serial Port (WDM) + 4102 Packet Service + 4301 Composite Device + 4302 Packet Service Diagnostic Serial Port (WDM) + 4401 Composite Device + 4402 Packet Service + 4501 Packet Service + 4502 Packet Service Diagnostic Serial Port (WDM) + 4601 Composite Device + 4602 Packet Service Diagnostic Serial Port (WDM) + 5101 Packet Service + 5102 Packet Service Diagnostic Serial Port (WDM) + 5301 Packet Service Diagnostic Serial Port (WDM) + 5302 Packet Service + 5401 Packet Service + 5402 Packet Service Diagnostic Serial Port (WDM) + 5501 Packet Service Diagnostic Serial Port (WDM) + 5502 Packet Service + 5601 Packet Service Diagnostic Serial Port (WDM) + 5602 Packet Service + 7101 Composite Device + 7102 Packet Service + a000 Packet Service + a001 Packet Service Diagnostic Serial Port (WDM) + c100 Packet Service + c200 Packet Service + c500 Packet Service Diagnostic Serial Port (WDM) + e200 Packet Service +106d San Chieh Manufacturing, Ltd +106e ConectL +106f Money Controls +1076 GCT Semiconductor, Inc. + 0031 Bluetooth Device + 0032 Bluetooth Device +107b Gateway, Inc. + 3009 eHome Infrared Transceiver + 55b2 WBU-110 802.11b Wireless Adapter [Intersil PRISM 3] + 55f2 WGU-210 802.11g Adapter [Intersil ISL3886] +107d Arlec Australia, Ltd +107e Midoriya Electric Co., Ltd +107f KidzMouse, Inc. +1082 Shin-Etsukaken Co., Ltd +1083 Canon Electronics, Inc. + 162c P-150 Scanner +1084 Pantech Co., Ltd +108a Chloride Power Protection +108b Grand-tek Technology Co., Ltd +108c Robert Bosch GmbH +108e Lotes Co., Ltd. +1099 Surface Optics Corp. +109a DATASOFT Systems GmbH +109f eSOL Co., Ltd + 3163 Trigem Mobile SmartDisplay84 + 3164 Trigem Mobile SmartDisplay121 +10a0 Hirotech, Inc. +10a3 Mitsubishi Materials Corp. +10a9 SK Teletech Co., Ltd + 1102 Sky Love Actually IM-U460K + 1104 Sky Vega IM-A650S + 6021 SIRIUS alpha +10aa Cables To Go +10ab USI Co., Ltd + 1002 Bluetooth Device + 1003 BC02-EXT in DFU + 1005 Bluetooth Adptr + 1006 BC04-EXT in DFU + 10c5 Sony-Ericsson / Samsung DataCable +10ac Honeywell, Inc. +10ae Princeton Technology Corp. +10af Liebert Corp. + 0000 UPS + 0001 PowerSure PSA UPS + 0002 PowerSure PST UPS + 0003 PowerSure PSP UPS + 0004 PowerSure PSI UPS + 0005 UPStation GXT 2U UPS + 0006 UPStation GXT UPS + 0007 Nfinity Power Systems UPS + 0008 PowerSure Interactive UPS +10b5 Comodo (PLX?) + 9060 Test Board +10b8 DiBcom + 0bb8 DiBcom USB DVB-T reference design (MOD300) (cold) + 0bb9 DiBcom USB DVB-T reference design (MOD300) (warm) + 0bc6 DiBcom USB2.0 DVB-T reference design (MOD3000P) (cold) + 0bc7 DiBcom USB2.0 DVB-T reference design (MOD3000P) (warm) +10bb TM Technology, Inc. +10bc Dinging Technology Co., Ltd +10bd TMT Technology, Inc. + 1427 Ethernet +10bf SmartHome + 0001 SmartHome PowerLinc +10c4 Cygnal Integrated Products, Inc. + 0002 F32x USBXpress Device + 0003 CommandIR + 8044 USB Debug Adapter + 804e Software Bisque Paramount ME + 80a9 CP210x to UART Bridge Controller + 80ca ATM2400 Sensor Device + 818a Silicon Labs FM Radio Reference Design + 8461 Sangoma U100 + ea60 CP210x Composite Device +10c5 Sanei Electric, Inc. + 819a FM Radio +10c6 Intec, Inc. +10cb Eratech +10cc GBM Connector Co., Ltd + 1101 MP3 Player +10cd Kycon, Inc. +10ce Silicon Labs + ea6a MobiData EDGE USB Modem +10cf Velleman Components, Inc. + 2011 R-Engine MPEG2 encoder/decoder + 5500 8055 Experiment Interface Board (address=0) + 5501 8055 Experiment Interface Board (address=1) + 5502 8055 Experiment Interface Board (address=2) + 5503 8055 Experiment Interface Board (address=3) +10d1 Hottinger Baldwin Measurement + 0101 USB-Module for Spider8, CP32 + 0202 CP22 - Communication Processor + 0301 CP42 - Communication Processor +10d4 Man Boon Manufactory, Ltd +10d5 Uni Class Technology Co., Ltd + 5552 KVM Human Interface Composite Device (Keyboard/Mouse ports) + 55a2 2Port KVMSwitcher +10d6 Actions Semiconductor Co., Ltd + 1000 MP3 Player + 1100 MPMan MP-Ki 128 MP3 Player/Recorder + 1101 D-Wave 2GB MP4 Player / AK1025 MP3/MP4 Player + 2200 Acer MP-120 MP3 player + 8888 ADFU Device + ff51 ADFU Device + ff61 MP4 Player + ff66 Craig 2GB MP3/Video Player +10de Authenex, Inc. +10df In-Win Development, Inc. + 0500 iAPP CR-e500 Card reader +10e0 Post-Op Video, Inc. +10e1 CablePlus, Ltd +10e2 Nada Electronics, Ltd +10ec Vast Technologies, Inc. +10f0 Nexio Co., Ltd + 2002 iNexio Touchscreen controller +10f1 Importek + 1a08 Internal Webcam + 1a1e Laptop Integrated Webcam 1.3M +10f5 Turtle Beach + 0200 Audio Advantage Roadie +10fb Pictos Technologies, Inc. +10fd Anubis Electronics, Ltd + 7e50 FlyCam Usb 100 + 804d Typhoon Webshot II Webcam [zc0301] + 8050 FlyCAM-USB 300 XP2 + de00 WinFast WalkieTV WDM Capture Driver. +1100 VirTouch, Ltd + 0001 VTPlayer VTP-1 Braille Mouse +1101 EasyPass Industrial Co., Ltd + 0001 FSK Electronics Super GSM Reader +1108 Brightcom Technologies, Ltd +110a Moxa Technologies Co., Ltd. + 1250 UPort 1250 2-Port RS-232/422/485 + 1251 UPort 1250I 2-Port RS-232/422/485 with Isolation + 1410 UPort 1410 4-Port RS-232 + 1450 UPort 1450 4-Port RS-232/422/485 + 1451 UPort 1450I 4-Port RS-232/422/485 with Isolation + 1613 UPort 1610-16 16-Port RS-232 + 1618 UPort 1610-8 8-Port RS-232 + 1653 UPort 1650-16 16-Port RS-232/422/485 + 1658 UPort 1650-8 8-Port RS-232/422/485 +1110 Analog Devices Canada, Ltd (Allied Telesyn) + 5c01 Huawei MT-882 Remote NDIS Network Device + 6489 ADSL ETH/USB RTR + 9000 ADSL LAN Adapter + 9001 ADSL Loader + 900f AT-AR215 DSL Modem + 9010 AT-AR215 DSL Modem + 9021 ADSL WAN Adapter + 9022 ADSL Loader + 9023 ADSL WAN Adapter + 9024 ADSL Loader + 9031 ADSL LAN Adapter + 9032 ADSL Loader +1111 Pandora International Ltd. + 8888 Evolution Device +1112 YM ELECTRIC CO., Ltd +1113 Medion AG + a0a2 Active Sync device +111e VSO Electric Co., Ltd +112a RedRat + 0001 RedRat3 IR Transceiver + 0005 RedRat3II IR Transceiver +112e Master Hill Electric Wire and Cable Co., Ltd +112f Cellon International, Inc. +1130 Tenx Technology, Inc. + 0002 iBuddy + 6604 MCE IR-Receiver + 660c Foot Pedal/Thermometer + 6806 Keychain photo frame + f211 TP6911 Audio Headset +1131 Integrated System Solution Corp. + 1001 KY-BT100 Bluetooth Adapter + 1002 Bluetooth Device + 1003 Bluetooth Device + 1004 Bluetooth Device +1132 Toshiba Corp., Digital Media Equipment [hex] + 4331 PDR-M4/M5/M70 Digital Camera + 4332 PDR-M60 Digital Camera + 4333 PDR-M2300/PDR-M700 + 4334 PDR-M65 + 4335 PDR-M61 + 4337 PDR-M11 + 4338 PDR-M25 +1136 CTS Electronincs + 3131 CTS LS515 +113c Arin Tech Co., Ltd +113d Mapower Electronics Co., Ltd +1141 V One Multimedia, Pte., Ltd +1142 CyberScan Technologies, Inc. +1145 Japan Radio Company + 0001 AirH PHONE AH-J3001V/J3002V +1146 Shimane SANYO Electric Co., Ltd. +1147 Ever Great Electric Wire and Cable Co., Ltd +114b Sphairon Access Systems GmbH + 0110 Turbolink UB801R WLAN Adapter + 0150 Turbolink UB801RE Wireless 802.11g 54Mbps Network Adapter [RTL8187] +114c Tinius Olsen Testing Machine Co., Inc. +114d Alpha Imaging Technology Corp. +114f Wavecom +115b Salix Technology Co., Ltd. +1162 Secugen Corp. +1163 DeLorme Publishing, Inc. + 0100 Earthmate GPS (orig) + 0200 Earthmate GPS (LT-20, LT-40) + 2020 Earthmate GPS (PN-40) +1164 YUAN High-Tech Development Co., Ltd + 0300 ELSAVISION 460D + 0601 Analog TV Tuner + 0900 TigerBird BMP837 USB2.0 WDM Encoder + 0bc7 Digital TV Tuner + 521b MC521A mini Card ATSC Tuner + 6601 Digital TV Tuner Card [RTL2832U] +1165 Telson Electronics Co., Ltd +1166 Bantam Interactive Technologies +1167 Salient Systems Corp. +1168 BizConn International Corp. +116e Gigastorage Corp. +116f Silicon 10 Technology Corp. + 0005 Flash Card Reader + c108 Flash Card Reader + c109 Flash Card Reader +1175 Shengyih Steel Mold Co., Ltd +117d Santa Electronic, Inc. +117e JNC, Inc. +1182 Venture Corp., Ltd +1183 Compaq Computer Corp. [hex] (Digital Dream ??) + 0001 DigitalDream l'espion XS + 19c7 ISDN TA + 4008 56k FaxModem + 504a PJB-100 Personal Jukebox +1184 Kyocera Elco Corp. +1188 Bloomberg L.P. +1189 Acer Communications & Multimedia + 0893 EP-1427X-2 Ethernet Adapter +118f You Yang Technology Co., Ltd +1190 Tripace +1191 Loyalty Founder Enterprise Co., Ltd +1196 Yankee Robotics, LLC + 0010 Trifid Camera without code + 0011 Trifid Camera +1197 Technoimagia Co., Ltd +1198 StarShine Technology Corp. +1199 Sierra Wireless, Inc. + 0019 AC595U + 0021 AC597E + 0024 MC5727 CDMA modem + 0110 Composite Device + 0112 CDMA 1xEVDO PC Card, AirCard 580 + 0120 AC595U + 0218 MC5720 Wireless Modem + 6467 MP Series Network Adapter + 6468 MP Series Network Adapter + 6469 MP Series Network Adapter + 6802 MC8755 Device + 6803 MC8765 Device + 6804 MC8755 Device + 6805 MC8765 Device + 6812 MC8775 Device + 6820 AC875 Device + 6832 MC8780 Device + 6833 MC8781 Device + 683a MC8785 Device + 6850 AirCard 880 Device + 6851 AirCard 881 Device + 6852 AirCard 880E Device + 6853 AirCard 881E Device + 6854 AirCard 885 Device + 6856 ATT "USB Connect 881" + 6870 MC8780 Device + 6871 MC8781 Device + 6893 MC8777 Device + 9000 Gobi 2000 Wireless Modem (QDL mode) + 9001 Gobi 2000 Wireless Modem + 9002 Gobi 2000 Wireless Modem + 9003 Gobi 2000 Wireless Modem + 9004 Gobi 2000 Wireless Modem + 9005 Gobi 2000 Wireless Modem + 9006 Gobi 2000 Wireless Modem + 9007 Gobi 2000 Wireless Modem + 9008 Gobi 2000 Wireless Modem + 9009 Gobi 2000 Wireless Modem + 900a Gobi 2000 Wireless Modem +119a ZHAN QI Technology Co., Ltd +119b ruwido austria GmbH + 0400 Infrared Keyboard V2.01 +11a0 Chipcon AS + eb11 CC2400EB 2.0 ZigBee Sniffer +11a3 Technovas Co., Ltd + 8031 MP3 Player + 8032 MP3 Player +11aa GlobalMedia Group, LLC + 1518 iREZ K2 +11ab Exito Electronics Co., Ltd +11b0 ATECH FLASH TECHNOLOGY +11c5 Inmax + 0521 IMT-0521 Smartcard Reader +11db Topfield Co., Ltd. + 1000 PVR + 1100 PVR +11e6 K.I. Technology Co. Ltd. +11f5 Siemens AG + 0001 SX1 + 0003 Mobile phone USB cable + 0004 X75 + 0005 SXG75/EF81 + 0008 UMTS/HSDPA Data Card +11f6 Prolific + 2001 Willcom WSIM +11f7 Alcatel (?) + 02df TD10 Mobile phone USB cable +1203 TSC Auto ID Technology Co., Ltd + 0140 TTP-245C +1209 InterBiometrics + 1001 USB Hub + 1002 USB Relais + 1003 IBSecureCam-P + 1004 IBSecureCam-O + 1005 IBSecureCam-N +120e Hudson Soft Co., Ltd +120f Magellan + 5260 Triton Handheld GPS Receiver (300/400/500/1500/2000) +1210 DigiTech + 001b RP155 Guitar Multi-Effects Processor + 001c RP255 Guitar Multi-Effects Processor +121e Jungsoft Co., Ltd + 3403 Muzio JM250 Audio Player +1223 SKYCABLE ENTERPRISE. CO., LTD. +1230 Chipidea-Microelectronica, S.A. +1233 Denver Electronics + 5677 FUSB200 mp3 player +1234 Unknown + ed02 Emotiv EPOC Developer Headset Wireless Dongle +1235 Novation EMS + 0001 ReMOTE Audio/XStation + 0002 Speedio + 0003 ReMOTE ZeRO SL + 4661 ReMOTE25 +1241 Belkin + 1111 Mouse + 1122 Typhoon Stream Optical Mouse USB+PS/2 + 1155 PS2/USB Browser Combo Mouse + 1166 MI-2150 Trust Mouse + 1177 F8E842-DL Mouse + 1503 Keyboard + 1603 Keyboard +124a AirVast + 168b PRISM3 WLAN Adapter + 4017 PC-Chips 802.11b Adapter +124b Nyko (Honey Bee) + 4d01 Airflo EX Joystick +124c MXI - Memory Experts International, Inc. + 3200 Stealth MXP 1GB +125c Apogee Inc. + 0010 Alta series CCD +125f A-DATA Technology Co., Ltd. + c81a Flash drive +1260 Standard Microsystems Corp. + ee22 SMC2862W-G v3 EZ Connect 802.11g Adapter [Intersil ISL3887] +1264 Covidien Energy-based Devices +1266 Pirelli Broadband Solutions + 6302 Fastweb DRG A226M ADSL Router +1267 Logic3 / SpectraVideo plc + 0103 G-720 Keyboard + 0201 A4Tech SWOP-3 Mouse + a001 JP260 PC Game Pad + c002 Wireless Optical Mouse +126c Aristocrat Technologies +126d Bel Stewart +126e Strobe Data, Inc. +126f TwinMOS + 1325 Mobile Disk + 2168 Mobile Disk III + a006 G240 802.11bg +1274 Ensoniq +1275 Xaxero Marine Software Engineering, Ltd. + 0002 WeatherFax 2000 Demodulator + 0080 SkyEye Weather Satellite Receiver +1283 zebris Medical GmbH + 0100 USB-RS232 Adaptor + 0110 CMS20 + 0111 CMS 10 + 0112 CMS 05 + 0114 ARCUS digma PC-Interface + 0115 SAM Axioquick recorder + 0116 SAM Axioquick recorder + 0120 emed-X + 0121 emed-AT + 0130 PDM + 0150 CMS10GI (Golf) +1286 Marvell Semiconductor, Inc. + 1fab 88W8338 [Libertas] 802.11g + 2001 88W8388 802.11a/b/g WLAN + 2006 88W8360 802.11n WLAN + 8001 BLOB boot loader firmware +1291 Qualcomm Flarion Technologies, Inc. / Leadtek Research, Inc. + 0010 FDM 2xxx Flash-OFDM modem + 0011 LR7F06/LR7F14 Flash-OFDM modem +1292 Innomedia + 0258 Creative Labs VoIP Blaster +1293 Belkin Components [hex] + 0002 F5U002 Parallel Port [uss720] + 2101 104-key keyboard +1294 RISO KAGAKU CORP. +129b CyberTAN Technology + 160b Siemens S30853-S1031-R351 802.11g Wireless Adapter [Atheros AR5523] + 160c Siemens S30853-S1038-R351 802.11g Wireless Adapter [Atheros AR5523] + 1666 TG54USB 802.11bg + 1667 802.11bg + 1828 Gigaset USB Adapter 300 +12a7 Trendchip Technologies Corp. +12ab Honey Bee Electronic International Ltd. +12b8 Zhejiang Xinya Electronic Technology Co., Ltd. +12ba Licensed by Sony Computer Entertainment America + 0100 RedOctane Guitar for PlayStation(R)3 + 0120 RedOctane Drum Kit for PlayStation(R)3 + 0200 Harmonix Guitar for PlayStation(R)3 + 0210 Harmonix Drum Kit for PlayStation(R)3 +12c4 Autocue Group Ltd + 0006 Teleprompter Two-button Hand Control (v1) + 0008 Teleprompter Foot Control (v1) +12d1 Huawei Technologies Co., Ltd. + 1001 E620 USB Modem + 1003 E220 HSDPA Modem / E230/E270 HSDPA/HSUPA Modem + 1009 U120 + 1010 ETS2252+ CDMA Fixed Wireless Terminal + 1037 Ideos + 1038 Ideos (debug mode) + 1406 E1750 + 140b EC1260 Wireless Data Modem HSD USB Card + 1446 E1552 (HSPA modem) + 1501 Pulse + 380b WiMAX USB modem(s) +12d2 LINE TECH INDUSTRIAL CO., LTD. +12d6 EMS Dr. Thomas Wuensche + 0444 CPC-USB/ARM7 + 0888 CPC-USB/M16C +12d7 BETTER WIRE FACTORY CO., LTD. +12e6 Waldorf Music GmbH + 0013 Blofeld +12ef Tapwave, Inc. + 0100 Tapwave Handheld [Tapwave Zodiac] +12f5 Dynamic System Electronics Corp. +12f7 Memorex Products, Inc. + 1a00 TD Classic 003B + 1e23 TravelDrive 2007 Flash Drive +12fd AIN Comm. Technology Co., Ltd + 1001 AWU2000b 802.11b Stick +12ff Fascinating Electronics, Inc. + 0101 Advanced RC Servo Controller +1307 Transcend Information, Inc. + 0163 256MB/512MB/1GB Flash Drive + 0165 2GB/4GB Flash Drive + 0361 CR-75: 51-in-1 Card Reader/Writer + 1169 TS2GJF210 JetFlash 210 2GB + 1171 Fingerprint Reader +1308 Shuttle, Inc. + 0003 VFD Module + c001 eHome Infrared Transceiver +1310 Roper + 0001 Class 1 Bluetooth Dongle +1312 ICS Electronics +131d Natural Point + 0155 TrackIR 3 Pro Head Tracker + 0156 TrackIR 4 Pro Head Tracker +132a Envara Inc. + 1502 WiND 802.11abg / 802.11bg WLAN +132b Konica Minolta + 0000 Dimage A2 Camera + 0001 Minolta DiMAGE A2 (ptp) + 0003 Dimage Xg Camera + 0006 Dimage Z2 Camera + 0007 Minolta DiMAGE Z2 (PictBridge mode) + 0008 Dimage X21 Camera + 000a Dimage Scan Dual IV + 000b Dimage Z10 Camera + 000d Dimage X50 Camera [storage?] + 000f Dimage X50 Camera [p2p?] + 0010 Dimage G600 Camera + 0012 Dimage Scan Elite5400 2 + 0013 Dimage X31 Camera + 0015 Dimage G530 Camera + 0017 Dimage Z3 Camera + 0018 Minolta DiMAGE Z3 (PictBridge mode) + 0019 Dimage A200 Camera + 0021 Dimage Z5 Camera + 0022 Minolta DiMAGE Z5 (PictBridge mode) + 002c Dynax 5D camera + 2001 Magicolor 2400w + 2004 Magicolor 5430DL + 2005 Magicolor 2430 DL + 2029 Magicolor 5440DL + 2030 PagePro 1350E(N) + 2033 PagePro 1400W + 2043 Magicolor 2530DL + 2045 Magicolor 2500W + 2049 Magicolor 2490MF +1342 Mobility + 0200 EasiDock 200 Hub + 0201 EasiDock 200 Keyboard and Mouse Port + 0202 EasiDock 200 Serial Port + 0203 EasiDock 200 Printer Port + 0204 Ethernet + 0304 EasiDock Ethernet +1345 Sino Lite Technology Corp. + 001c Xbox Controller Hub +1347 Moravian Instruments + 0400 G2CCD USB 1.1 obsolete + 0401 G2CCD-S with Sony ICX285 CCD + 0402 G2CCD2 + 0403 G2/G3CCD-I KAI CCD + 0404 G2/G3CCD-F KAF CCD + 0410 G1-0400 CCD + 0411 G1-0800 CCD + 0412 G1-0300 CCD + 0413 G1-2000 CCD + 0414 G1-1400 CCD +1348 Katsuragawa Electric Co., Ltd. +134c PanJit International Inc. + 0001 Touch Panel Controller + 0002 Touch Panel Controller + 0003 Touch Panel Controller + 0004 Touch Panel Controller +134e Digby's Bitpile, Inc. DBA D Bit +1357 P&E Microcomputer Systems + 0503 USB-ML-12 HCS08/HCS12 Multilink + 0504 DEMOJM +1366 SEGGER + 0101 J-Link ARM +136b STEC +1370 Swissbit + 0323 Swissmemory cirrusWHITE + 6828 Victorinox Flash Drive +1371 CNet Technology Inc. + 0001 CNUSB-611AR Wireless Adapter-G [AT76C503] + 0002 CNUSB-611AR Wireless Adapter-G [AT76C503] (FiberLine WL-240U) + 0013 CNUSB-611 Wireless Adapter [AT76C505] + 0014 CNUSB-611 Wireless Adapter [AT76C505] (FiberLine WL-240U) + 5743 CNUSB-611 (D) Wireless Adapter [AT76C503] + 9022 CWD-854 [RT2573] + 9032 CWD-854 rev F + 9401 CWD-854 Wireless 802.11g 54Mbps Network Adapter [RTL8187] +1376 Vimtron Electronics Co., Ltd. +137b SCAPS GmbH + 0002 SCAPS USC-2 Scanner Controller +1385 Netgear, Inc + 4250 WG111T + 4251 WG111T (no firmware) + 5f00 WPN111 RangeMax(TM) Wireless USB 2.0 Adapter + 5f01 WPN111 (no firmware) + 6e00 WPNT121 802.11g 240Mbps Wireless Adapter [Airgo AGN300] +138a Validity Sensors, Inc. + 0001 VFS101 Fingeprint Reader + 0005 VFS301 Fingerprint Reader + 0007 VFS451 Fingeprint Reader + 0008 VFS300 Fingeprint Reader +138e Jungo LTD + 9000 Raisonance S.A. STM32 ARM evaluation board +1390 TOMTOM B.V. + 0001 GO 520 T +1391 IdealTEK, Inc. + 1000 URTC-1000 +1395 Sennheiser Communications + 3556 USB Headset +1397 BEHRINGER International GmbH + 00bc BCF2000 +1398 Q-tec + 2103 USB 2.0 Storage Device +13ad Baltech + 9999 Card reader +13b0 PerkinElmer Optoelectronics + 000a Alesis Photon X25 MIDI Controller +13b1 Linksys + 000a WUSB54G v2 802.11g Adapter [Intersil ISL3887] + 000b WUSB11 v4.0 802.11b Adapter [ALi M4301] + 000c WUSB54AG 802.11a/g Adapter [Intersil ISL3887] + 000d WUSB54G v4 802.11g Adapter [Ralink RT2500USB] + 000e WUSB54GS v1 802.11g Adapter [Broadcom 4320 USB] + 0011 WUSB54GP v4.0 802.11g Adapter [Ralink RT2500USB] + 0014 WUSB54GS v2 802.11g Adapter [Broadcom 4320 USB] + 0018 USB200M 10/100 Ethernet Adapter + 001a HU200TS Wireless Adapter + 001e WUSBF54G 802.11bg + 0020 WUSB54GC v1 802.11g Adapter [Ralink RT73] + 0022 WUSB54GX4 802.11g 240Mbps Wireless Adapter [Airgo AGN300] + 0023 WUSB54GR + 0024 WUSBF54G v1.1 802.11bg + 0026 WUSB54GSC v1 802.11g Adapter [Broadcom 4320 USB] + 002f AE1000 v1 802.11n [Ralink RT2870] + 0031 AM10 v1 802.11n [Ralink RT2870] + 13b1 WUSB200: Wireless-G Business Network Adapter with Rangebooster +13b2 Alesis + 0030 Multimix 8 +13b3 Nippon Dics Co., Ltd. +13ba Unknown + 0017 PS/2 Keyboard+Mouse Adapter +13be Ricoh Printing Systems, Ltd. +13ca JyeTai Precision Industrial Co., Ltd. +13cf Wisair Ltd. + 1200 Olidata Wireless Multimedia Adapter +13d0 Techsan Electronics Co., Ltd. + 2282 TechniSat DVB-PC TV Star 2 +13d1 A-Max Technology Macao Commercial Offshore Co. Ltd. + 7019 MD 82288 + abe6 Wireless 802.11g 54Mbps Network Adapter [RTL8187] +13d2 Shark Multimedia + 0400 Pocket Ethernet [klsi] +13d3 IMC Networks + 3201 VisionDTV USB-Ter/HAMA USB DVB-T device cold + 3202 VisionDTV USB-Ter/HAMA USB DVB-T device warm + 3203 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) + 3204 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) + 3205 DNTV Live! Tiny USB2 BDA (No Remote) + 3206 DNTV Live! Tiny USB2 BDA (No Remote) + 3207 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) + 3208 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) + 3209 DTV-DVB UDST7022BDA DVB-S Box(Without HID) + 3211 DTV-DVB Hybrid Analog/Capture / Pinnacle PCTV 310e + 3212 DTV-DVB UDTT704C - DVBT/NTSC/PAL Driver(PCM4) + 3213 DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver (PCM4) + 3214 DTV-DVB UDTT704F -(MiniCard) DVBT/NTSC/PAL Driver(Without HID) + 3215 DTV-DVB UDAT7240 - ATSC/NTSC/PAL Driver(PCM4) + 3216 DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver + 3217 Digital-TV Receiver. + 3219 DTV-DVB UDTT7049 - DVB-T Driver(Without HID) + 3220 DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver + 3223 DNTV Live! Tiny USB2 BDA (No Remote) + 3224 DNTV Live! Tiny USB2 BDA (No Remote) + 3226 DigitalNow TinyTwin DVB-T Receiver + 3234 DVB-T FTA Half Minicard [RTL2832U] + 3236 DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver + 3237 DTV-DVB UDTT 704J - dual DVB-T Driver + 3239 DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver(Without HID) + 3240 DTV-DVB UDXTTM6010 - A/D Driver(Without HID) + 3241 DTV-DVB UDXTTM6010 - A/D Driver(Without HID) + 3242 DTV-DVB UDAT7240LP - ATSC/NTSC/PAL Driver(Without HID) + 3243 DTV-DVB UDXTTM6010 - A/D Driver(Without HID) + 3244 DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver + 3247 802.11 n/g/b Wireless LAN Adapter + 3249 Internal Bluetooth + 3262 802.11 n/g/b Wireless LAN USB Adapter + 3273 802.11 n/g/b Wireless LAN USB Mini-Card + 3274 DVB-T Dongle [RTL2832U] + 3282 DVB-T + GPS Minicard [RTL2832U] + 3284 Wireless LAN USB Mini-Card + 3306 WLAN [RTL8191S] + 5070 Webcam + 5111 Integrated Webcam + 5115 Integrated Webcam + 5116 Integrated Webcam + 7020 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) + 7022 DTV-DVB UDST7022BDA DVB-S Box(Without HID) +13dc ALEREON, INC. +13dd i.Tech Dynamic Limited +13e1 Kaibo Wire & Cable (Shenzhen) Co., Ltd. +13e5 Rane + 0001 SL-1 +13e6 TechnoScope Co., Ltd. +13ec Zydacron + 0006 HID Remote Control +13ee MosArt + 0003 Optical Mouse +13fd Initio Corporation + 0841 Samsung SE-T084M DVD-RW + 1340 Hi-Speed USB to SATA Bridge + 160f RocketFish SATA Bridge [INIC-1611] + 1640 ASUS SDRW-08D1S-U DVD-RW + 1840 Shintaro SH23SDOCK Hard Drive Docker [INIC-1608L] +13fe Kingston Technology Company Inc. + 1a00 512MB/1GB Flash Drive + 1a23 512MB Flash Drive + 1d00 DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive + 1e00 Flash Drive 2 GB [ICIDU 2 GB] + 1f00 DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive + 2240 microSD card reader + 3100 2/4 GB stick +1400 Axxion Group Corp. +1402 Bowe Bell & Howell +1403 Sitronix + 0001 Digital Photo Frame +140e Telechips, Inc. + b011 TCC780X-based player (USB Boot mode) + b021 TCC77X-based players (USB Boot mode) +1410 Novatel Wireless + 1110 Merlin S620 + 1120 Merlin EX720 + 1130 Merlin S720 + 1400 Merlin U730/U740 (Vodafone) + 1410 Merlin U740 (non-Vodafone) + 1430 Merlin XU870 + 1450 Merlin X950D + 2110 Ovation U720/MCD3000 + 2410 Expedite EU740 + 2420 Expedite EU850D/EU860D/EU870D + 4100 U727 + 4400 Ovation MC930D/MC950D + a001 Gobi Wireless Modem + a008 Gobi Wireless Modem (QDL mode) +1415 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. + 0000 Sony SingStar USBMIC + 0020 Sony Wireless SingStar + 2000 Sony Playstation Eye +1419 ABILITY ENTERPRISE CO., LTD. +1429 Vega Technologies Industrial (Austria) Co. +142a Thales E-Transactions + 0003 Artema Hybrid + 0005 Artema Modular + 0043 medCompact +142b Arbiter Systems, Inc. + 03a5 933A Portable Power Sentinel +1430 RedOctane + 4734 Guitar Hero4 hub + 474b Guitar Hero MIDI interface +1431 Pertech Resources, Inc. +1435 Wistron NeWeb + 0427 UR054g 802.11g Wireless Adapter [Intersil ISL3887] + 0711 UR055G 802.11bg + 0804 AR9170+AR9104 802.11abgn Wireless Adapter + 0826 AR5523 + 0827 AR5523 (no firmware) + 0828 AR5523 + 0829 AR5523 (no firmware) +1436 Denali Software, Inc. +143c Altek Corporation +1443 Digilent + 0007 CoolRunner-II CPLD Starter Kit +1453 Radio Shack + 4026 26-183 Serial Cable +1456 Extending Wire & Cable Co., Ltd. +1457 First International Computer, Inc. + 5117 OpenMoko Neo1973 kernel usbnet (g_ether, CDC Ethernet) mode + 5118 OpenMoko Neo1973 Debug board (V2+) + 5119 OpenMoko Neo1973 u-boot cdc_acm serial port + 5120 OpenMoko Neo1973 u-boot usbtty generic serial + 5121 OpenMoko Neo1973 kernel mass storage (g_storage) mode + 5122 OpenMoko Neo1973 / Neo Freerunner kernel cdc_ether USB network + 5123 OpenMoko Neo1973 internal USB CSR4 module + 5124 OpenMoko Neo1973 Bluetooth Device ID service +145f Trust + 0106 Trust K56 V92 USB Modem + 013d PC Camera (SN9C201 + OV7660) + 013f Megapixel Auto Focus Webcam + 0142 WB-6250X Webcam + 015a WB-8300X 2MP Webcam +1460 Tatung Co. + 9150 eHome Infrared Transceiver +1461 Staccato Communications +1462 Micro Star International + 5512 MegaStick-1 Flash Stick + 8807 DIGIVOX mini III [af9015] +1472 Huawei-3Com + 0007 Aolynk WUB300g [ZyDAS ZD1211] + 0009 Aolynk WUB320g +147a Formosa Industrial Computing, Inc. + e015 eHome Infrared Receiver + e016 eHome Infrared Receiver + e017 eHome Infrared Receiver + e018 eHome Infrared Receiver + e03a eHome Infrared Receiver + e03c eHome Infrared Receiver + e03e Infrared Receiver [IR605A/Q] +147e Upek + 1000 Biometric Touchchip/Touchstrip Fingerprint Sensor + 2016 Biometric Touchchip/Touchstrip Fingerprint Sensor +147f Hama GmbH & Co., KG +1482 Vaillant + 1005 VRD PC-Interface +1484 Elsa AG [hex] + 1746 Ecomo 19H99 Monitor + 7616 Elsa Hub +1485 Silicom + 0001 U2E + 0002 Psion Gold Port Ethernet +1487 DSP Group, Ltd. +148e EVATRONIX SA +148f Ralink Technology, Corp. + 1706 RT2500USB Wireless Adapter + 2070 RT2070 Wireless Adapter + 2570 RT2570 Wireless Adapter + 2573 RT2501/RT2573 Wireless Adapter + 2671 RT2601/RT2671 Wireless Adapter + 2770 RT2770 Wireless Adapter + 2870 RT2870 Wireless Adapter + 3070 RT2870/RT3070 Wireless Adapter + 3071 RT3071 Wireless Adapter + 3072 RT3072 Wireless Adapter + 3572 RT3572 Wireless Adapter + 9020 RT2500USB Wireless Adapter + 9021 RT2501USB Wireless Adapter +1497 Panstrong Company Ltd. +1498 Microtek International Inc. + a090 DVB-T Tuner +149a Imagination Technologies + 2107 DBX1 DSP core +14aa WideView Technology Inc. + 0001 Avermedia AverTV DVBT USB1.1 (cold) + 0002 Avermedia AverTV DVBT USB1.1 (warm) + 0201 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (cold) + 0221 WT-220U DVB-T dongle + 022b WT-220U DVB-T dongle + 0301 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (warm) +14ad CTK Corporation +14ae Printronix Inc. +14af ATP Electronics Inc. +14b0 StarTech.com Ltd. +14b2 Ralink Technology, Corp. + 3a95 Toshiba WUS-G06G-JT 802.11bg Wireless Adapter + 3a98 Airlink101 AWLL4130 802.11bg Wireless Adapter [Atheros AR5523] + 3c02 rt2500 802.11g WLAN + 3c05 rt2570 802.11g WLAN + 3c06 Conceptronic C300RU v1 802.11bgn Wireless Adapter [Ralink RT2870] + 3c07 802.11n adapter + 3c09 802.11n adapter + 3c22 Conceptronic C54RU 802.11bg Wireless Adapter [Ralink RT73] + 3c23 Airlink101 AWLL6080 802.11bgn Wireless Adapter [Ralink RT2870] + 3c25 DrayTek Vigor N61 802.11bgn Wireless Adapter [Ralink RT2870] + 3c27 Airlink101 AWLL6070 802.11bgn Wireless Adapter [Ralink RT2770] + 3c28 Conceptronic C300RU v2 802.11bgn Wireless Adapter [Ralink RT2770] + 3c2c Keebox W150NU 802.11bgn Wireless Adapter [Ralink RT3070] +14c0 Rockwell Automation, Inc. +14c2 Gemlight Computer, Ltd + 0250 Storage Adapter V2 + 0350 Storage Adapter V2 +14cd Super Top + 121c microSD card reader + 123a SD/MMC/RS-MMC Card Reader + 127b SDXC Reader + 6600 USB 2.0 IDE DEVICE + 6700 Card Reader + 6900 Card Reader + 8123 SD MMC Reader + 8125 SD MMC Reader +14d8 JAMER INDUSTRIES CO., LTD. +14dd Raritan Computer, Inc. +14e1 Dialogue Technology Corp. + 5000 PenMount 5000 Touch Controller +14e5 SAIN Information & Communications Co., Ltd. +14ea Planex Communications + ab10 GW-US54GZ + ab11 GU-1000T + ab13 GW-US54Mini 802.11bg +14ed Shure Inc. +14f7 TechniSat Digital GmbH + 0001 SkyStar 2 HD CI + 0002 SkyStar 2 HD CI + 0003 CableStar Combo HD CI + 0004 AirStar TeleStick 2 + 0500 DVB-PC TV Star HD +1500 Ellisys +1501 Pine-Tum Enterprise Co., Ltd. +1509 First International Computer, Inc. + 9242 eHome Infrared Transceiver +1513 medMobile + 0444 medMobile +1514 Actel + 2003 FlashPro3 Programmer + 2004 FlashPro3 Programmer + 2005 FlashPro3 Programmer +1516 CompUSA + 1603 Flash Drive + 8628 Pen Drive +1518 Cheshire Engineering Corp. + 0001 HDReye High Dynamic Range Camera + 0002 HDReye (before firmware loads) +1520 Bitwire Corp. +1524 ENE Technology Inc + 6680 UTS 6680 +1527 Silicon Portals + 0200 YAP Phone (no firmware) + 0201 YAP Phone +1529 UBIQUAM Co., Ltd. + 3100 CDMA 1xRTT USB Modem (U-100/105/200/300/520) +152d JMicron Technology Corp. / JMicron USA Technology Corp. + 2329 JM20329 SATA Bridge + 2335 ATA/ATAPI Bridge + 2336 Hard Disk Drive + 2337 ATA/ATAPI Bridge + 2338 JM20337 Hi-Speed USB to SATA & PATA Combo Bridge + 2352 ATA/ATAPI Bridge + 2509 JMS539 SuperSpeed SATA II 3.0G Bridge +152e LG (HLDS) + 2507 PL-2507 IDE Controller + e001 GSA-5120D DVD-RW +1532 Razer USA, Ltd + 0001 RZ01-020300 Optical Mouse [Diamondback] + 0003 Krait Mouse + 0007 DeathAdder Mouse + 001c RZ01-0036 Optical Gaming Mouse [Abyssus] + 0101 Copperhead Mouse + 0102 Tarantula Keyboard + 0109 Lycosa Keyboard +1546 U-Blox AG +154a Celectronic GmbH + 8180 CARD STAR/medic2 +154b PNY + 0010 USB 2.0 Flash Drive + 6545 FD Device +154d ConnectCounty Holdings Berhad +154e D&M Holdings, Inc. (Denon/Marantz) + 3000 Marantz RC9001 Remote Control +1554 Prolink Microsystems Corp. +1557 OQO + 0002 model 01 WiFi interface + 0003 model 01 Bluetooth interface + 0a80 Gobi Wireless Modem (QDL mode) + 7720 model 01+ Ethernet + 8150 model 01 Ethernet interface +1568 Sunf Pu Technology Co., Ltd +156f Quantum Corporation +1570 ALLTOP TECHNOLOGY CO., LTD. +157b Ketron SRL +157e TRENDnet + 3006 TEW-444UB EU + 3007 TEW-444UB EU (no firmware) + 300a TEW-429UB 802.11bg + 300b TEW-429UB 802.11bg + 300d TEW-429UB C1 802.11bg + 3204 Allnet ALL0298 v2 802.11bg + 3205 Allnet ALL0283 [AR5523] + 3206 Allnet ALL0283 [AR5523](no firmware) +1582 Fiberline + 6003 WL-430U 802.11bg +1587 SMA Technologie AG +158d Oakley Inc. +158e JDS Uniphase Corporation (JDSU) + 0820 SmartPocket Class Device +1598 Kunshan Guoji Electronics Co., Ltd. +15a2 Freescale Semiconductor, Inc. +15a4 Afatech Technologies, Inc. + 1000 AF9015/AF9035 DVB-T stick + 1001 AF9015/AF9035 DVB-T stick + 1336 SDHC/MicroSD/MMC/MS/M2/CF/XD Flash Card Reader + 9015 AF9015 DVB-T USB2.0 stick + 9016 AF9015 DVB-T USB2.0 stick +15a8 Teams Power Limited +15a9 Gemtek + 0004 WUBR177G + 0006 Wireless 11n USB Adapter + 0010 802.11n USB Wireless Card + 0012 WUBR-208N 802.11abgn Wireless Adapter [Ralink RT2870] +15aa Gearway Electronics (Dong Guan) Co., Ltd. +15ad VMware Inc. +15ba Olimex Ltd. + 0003 OpenOCD JTAG + 0004 OpenOCD JTAG TINY +15c0 XL Imaging + 0001 2M pixel Microscope Camera + 0002 3M pixel Microscope Camera + 0003 1.3M pixel Microscope Camera (mono) + 0004 1.3M pixel Microscope Camera (colour) + 0005 3M pixel Microscope Camera (Mk 2) + 0006 2M pixel Microscope Camera (with capture button) + 0007 3M pixel Microscope Camera (with capture button) + 0008 1.3M pixel Microscope Camera (colour, with capture button) + 0009 1.3M pixel Microscope Camera (colour, with capture button) + 000a 2M pixel Microscope Camera (Mk 2) + 0010 1.3M pixel "Tinycam" + 0101 3M pixel Microscope Camera +15c2 SoundGraph Inc. + 0036 LC16M VFD Display/IR Receiver + 0038 GD01 MX VFD Display/IR Receiver + ffda iMON PAD Remote Controller + ffdc iMON PAD Remote Controller +15c5 Advance Multimedia Internet Technology Inc. (AMIT) + 0008 WL532U 802.11g Adapter +15c6 Laboratoires MXM + 1000 DigistimSP (cold) + 1001 DigistimSP (warm) + 1002 DigimapSP USB (cold) + 1003 DigimapSP USB (warm) +15c8 KTF Technologies + 3201 EVER EV-W100/EV-W250 +15c9 D-Box Technologies +15ca Textech International Ltd. + 00c3 Mini Optical Mouse + 0101 MIDI Interface cable + 1806 MIDI Interface cable +15d5 Coulomb Electronics Ltd. +15d9 Trust International B.V. + 0a33 Optical Mouse + 0a37 Mouse + 0a41 MI-2540D [Optical mouse] + 0a4c USB+PS/2 Optical Mouse +15dc Hynix Semiconductor Inc. +15e0 Seong Ji Industrial Co., Ltd. +15e1 RSA + 2007 RSA SecurID (R) Authenticator +15e8 SohoWare + 9100 NUB100 Ethernet [pegasus] + 9110 10/100 USB Ethernet +15e9 Pacific Digital Corp. + 04ce MemoryFrame MF-570 + 1968 MemoryFrame MF-570 + 1969 Digital Frame +15ec Belcarra Technologies Corp. +15f4 HanfTek + 0001 HanfTek UMT-010 USB2.0 DVB-T (cold) + 0025 HanfTek UMT-010 USB2.0 DVB-T (warm) +1604 Tascam + 8000 US-428 Audio/Midi Controller (without fw) + 8001 US-428 Audio/Midi Controller + 8004 US-224 Audio/Midi Controller (without fw) + 8005 US-224 Audio/Midi Controller + 8006 US-122 Audio/Midi Interface (without fw) + 8007 US-122 Audio/Midi Interface +1606 Umax + 0002 Astra 1236U Scanner + 0010 Astra 1220U + 0030 Astra 1600U/2000U + 0050 Scanner + 0060 Astra 3400/3450 + 0070 Astra 4400/4450 + 0130 Astra 2100U + 0160 Astra 5400U + 0170 Uniscan D50 + 0230 Astra 2200/2200SU + 0350 Astra 4800/4850 Scanner + 1030 Astra 4000U + 1220 Genesys Logic Scanner Controller NT5.0 + 2010 AstraCam Digital Camera + 2020 AstraCam 1000 + 2030 AstraCam 1800 Digital Camera +1608 Inside Out Networks [hex] + 0001 EdgePort/4 Serial Port + 0002 Edgeport/8 + 0003 Rapidport/4 + 0004 Edgeport/4 + 0005 Edgeport/2 + 0006 Edgeport/4i + 0007 Edgeport/2i + 0008 Edgeport/8 + 000c Edgeport/421 + 000d Edgeport/21 + 000e Edgeport/4 + 000f Edgeport/8 + 0010 Edgeport/2 + 0011 Edgeport/4 + 0012 Edgeport/416 + 0014 Edgeport/8i + 0018 Edgeport/412 + 0019 Edgeport/412 + 001a Edgeport/2+2i + 0101 Edgeport/4 + 0105 Edgeport/2 + 0106 Edgeport/4i + 0107 Edgeport/2i + 010c Edgeport/421 + 010d Edgeport/21 + 0110 Edgeport/2 + 0111 Edgeport/4 + 0112 Edgeport/416 + 0114 Edgeport/8i + 0201 Edgeport/4 + 0203 Rapidport/4 + 0204 Edgeport/4 + 0205 Edgeport/2 + 0206 Edgeport/4i + 0207 Edgeport/2i + 020c Edgeport/421 + 020d Edgeport/21 + 020e Edgeport/4 + 020f Edgeport/8 + 0210 Edgeport/2 + 0211 Edgeport/4 + 0212 Edgeport/416 + 0214 Edgeport/8i + 0215 Edgeport/1 + 0216 EPOS/44 + 0217 Edgeport/42 + 021a Edgeport/2+2i + 021b Edgeport/2c + 021c Edgeport/221c + 021d Edgeport/22c + 021e Edgeport/21c + 021f Edgeport/62 + 0240 Edgeport/1 + 0241 Edgeport/1i + 0242 Edgeport/4s + 0243 Edgeport/8s + 0244 Edgeport/8 + 0245 Edgeport/22c + 0301 Watchport/P + 0302 Watchport/M + 0303 Watchport/W + 0304 Watchport/T + 0305 Watchport/H + 0306 Watchport/E + 0307 Watchport/L + 0308 Watchport/R + 0309 Watchport/A + 030a Watchport/D + 030b Watchport/D + 030c Power Management Port + 030e Power Management Port + 030f Watchport/G + 0310 Watchport/Tc + 0311 Watchport/Hc + 1403 MultiTech Systems MT4X56 Modem + 1a17 Agilent Technologies (E6473) +160a VIA Technologies, Inc. + 3184 VIA VNT-6656 [WiFi 802.11b/g USB Dongle] +1614 Amoi Electronics + 0404 WMA9109 UMTS Phone + 0600 Vodafone VDA GPS / Toschiba Protege G710 + 0804 WP-S1 Phone +1619 L & K Precision Technology Co., Ltd. +1621 Wionics Research +1628 Stonestreet One, Inc. +162a Airgo Networks Inc. +162f WiQuest Communications, Inc. +1630 2Wire, Inc. + 0005 802.11g Wireless Adapter [Intersil ISL3886] + ff81 802.11b Wireless Adapter [Lucent/Agere Hermes I] +1631 Good Way Technology + 6200 GWUSB2E + c019 RT2573 +1645 Cross Match Technologies GmbH + 0001 1S Serial Port + 0002 2S Serial Port + 0003 1S25 Serial Port + 0004 4S Serial Port + 0005 E45 Ethernet [klsi] + 0006 Parallel Port + 0007 U1-SC25 SCSI + 0008 Ethernet + 0016 Bi-directional to Parallel Printer Converter + 0080 1 port to Serial Converter + 0081 1 port to Serial Converter + 0093 1S9 Serial Port + 8000 EZ-USB + 8001 1 port to Serial + 8002 2x Serial Port + 8003 1 port to Serial + 8004 2U4S serial/usb hub + 8005 Ethernet + 8080 1 port to Serial + 8081 1 port to Serial + 8093 PortGear Serial Port +1649 SofTec Microsystems + 0102 uDART In-Circuit Debugger + 0200 SpYder USBSPYDER08 +164a ChipX +164c Matrix Vision GmbH + 0101 mvBlueFOX camera (no firmware) + 0103 mvBlueFOX camera +1657 Struck Innovative Systeme GmbH + 3150 SIS3150 USB2.0 to VME interface +165b Frontier Design Group + 8101 Tranzport Control Surface + fad1 Alphatrack Control Surface +1660 Creatix Polymedia GmbH +1668 Actiontec Electronics, Inc. [hex] + 0009 Gateway + 0333 Modem + 0358 InternetPhoneWizard + 0405 Gateway + 0408 Prism2.5 802.11b Adapter + 0413 Gateway + 0421 Prism2.5 802.11b Adapter + 0441 IBM Integrated Bluetooth II + 0500 BTM200B BlueTooth Adapter + 1050 802UIG-1 802.11g Wireless Mini Adapter [Intersil ISL3887] + 1200 802AIN Wireless N Network Adapter [Atheros AR9001U] + 1441 IBM Integrated Bluetooth II + 2441 BMDC-2 IBM Bluetooth III w.56k + 3441 IBM Integrated Bluetooth III + 6010 Gateway + 6097 802.11b Wireless Adapter + 6106 ROPEX FreeLan 802.11b + 7605 UAT1 Wireless Ethernet Adapter +1669 PiKRON Ltd. [hex] + 1001 uLan2USB Converter - PS1 protocol +1677 China Huada Integrated Circuit Design (Group) Co., Ltd. (CIDC Group) + 0103 Token +1679 Total Phase + 2001 Beagle Protocol Analyzer + 2002 Cheetah SPI Host Adapter +1680 Golden Bridge Electech Inc. + a332 DVB-T Dongle [RTL2832U] +1681 Prevo Technologies, Inc. + 0001 Tuner's Dashboard +1682 Maxwise Production Enterprise Ltd. +1684 Godspeed Computer Corp. +1685 Delock + 0200 Infrared adapter +1686 ZOOM Corporation + 0045 H4 Digital Recorder +1687 Kingmax Digital Inc. + 5289 FlashDisk + 6211 FlashDisk +1688 Saab AB +168c Atheros Communications + 0001 AR5523 + 0002 AR5523 (no firmware) +1690 Askey Computer Corp. [hex] + 0101 Creative Modem Blaster DE5670 + 0102 V1456 VQE-R2 Modem [conexant] + 0103 1456 VQE-R3 Modem [conexant] + 0104 HCF V90 Data Fax RTAD Modem + 0107 HCF V.90 Data,Fax,RTAD Modem + 0109 MagicXpress V.90 Pocket Modem [conexant] + 0203 Voyager ADSL Modem Loader + 0204 Voyager ADSL Modem + 0205 DSL Modem + 0206 GlobeSpan ADSL WAN Modem + 0208 DSL Modem + 0209 Voyager 100 ADSL Modem + 0211 Globespan Virata ADSL LAN Modem + 0212 DSL Modem + 0213 HM121d DSL Modem + 0214 HM121d DSL Modem + 0215 Voyager 105 ADSL Modem + 0701 WLAN + 0710 SMCWUSBT-G + 0711 SMCWUSBT-G (no firmware) + 0712 AR5523 + 0713 AR5523 (no firmware) + 0715 Name: Voyager 1055 Laptop 802.11g Adapter [Broadcom 4320] + 0722 RT2573 + 0726 Wi-Fi Wireless LAN Adapter + 0740 802.11n Wireless LAN Card + 0901 Voyager 205 ADSL Router +1696 Hitachi Video and Information System, Inc. +1697 VTec Test, Inc. +16a5 Shenzhen Zhengerya Cable Co., Ltd. +16a6 Unigraf + 3000 VTG-3xxx Video Test Generator family + 4000 VTG-4xxx Video Test Generator family + 5000 VTG-5xxx Video Test Generator family + 5001 VTG-5xxx Special (update) mode of VTG-5xxx family +16ab Global Sun Technology + 7801 AR5523 + 7802 AR5523 (no firmware) + 7811 AR5523 + 7812 AR5523 (no firmware) +16ac Dongguan ChingLung Wire & Cable Co., Ltd. +16b4 iStation + 0801 U43 +16b5 Persentec, Inc. + 0002 Otto driving companion +16c0 VOTI + 03e8 free for internal lab use 1000 + 03e9 free for internal lab use 1001 + 03ea free for internal lab use 1002 + 03eb free for internal lab use 1003 + 03ec free for internal lab use 1004 + 03ed free for internal lab use 1005 + 03ee free for internal lab use 1006 + 03ef free for internal lab use 1007 + 03f0 free for internal lab use 1008 + 03f1 free for internal lab use 1009 + 05dc shared ID for use with libusb + 05dd BlackcatUSB2 + 05e1 CDC-ACM class devices (modems) + 05e4 MIDI class devices + 076b OpenPCD 13.56MHz RFID Reader + 076c OpenPICC 13.56MHz RFID Simulator (native) + 08ac OpenBeacon USB stick + 08ca Alpermann+Velte Universal Display + 08cb Alpermann+Velte Studio Clock + 08cc Alpermann+Velte SAM7S MT Boot Loader + 08cd Alpermann+Velte SAM7X MT Boot Loader + 27da Mouse + 27db Keyboard + 27dc Joystick + 27dd CDC-ACM class devices (modems) + 27de MIDI class devices +16ca Wireless Cables, Inc. + 1502 Bluetooth Dongle +16cc silex technology, Inc. +16d0 GrauTec + 054b ReelBox OLED Display (external) +16d3 Frontline Test Equipment, Inc. +16d5 AnyDATA Corporation + 6202 CDMA/UMTS/GPRS modem + 6501 CDMA 2000 1xRTT/EV-DO Modem + 6502 CDMA/UMTS/GPRS modem +16d6 JABLOCOM s.r.o. + 8000 GDP-04 desktop phone + 8001 EYE-02 + 8003 GDP-04 modem + 8004 Bootloader + 8005 GDP-04i + 8007 BTP-06 modem +16d8 CMOTECH Co., Ltd. + 5141 CMOTECH CDMA Technologies modem + 5533 CCU-550 CDMA EV-DO modem + 5543 CDMA 2000 1xRTT/1xEVDO modem + 6280 CMOTECH CDMA Technologies modem + 6803 CNU-680 CDMA EV-DO modem + 8001 Gobi 2000 Wireless Modem (QDL mode) + 8002 Gobi 2000 Wireless Modem +16dc Wiener, Plein & Baus + 0001 CC + 000b VM +16df King Billion Electronics Co., Ltd. +16f0 GN ReSound A/S + 0003 Airlink Wireless Programming Interface +16f5 Futurelogic Inc. +1706 BlueView Technologies, Inc. +1707 ARTIMI +170b Swissonic + 0011 MIDI-USB 1x1 +170d Avnera +1725 Vitesse Semiconductor +1726 Axesstel, Inc. + 1000 wireless modem + 2000 wireless modem + 3000 wireless modem +172f Waltop International Corp. + 0022 Tablet + 0024 Tablet + 0025 Tablet + 0026 Tablet + 0031 Slim Tablet 12.1" + 0032 Slim Tablet 5.8" + 0034 Slim Tablet 12.1" + 0038 Genius G-Pen F509 + 0500 Media Tablet 14.1" + 0501 Media Tablet 10.6" + 0502 Sirius Battery Free Tablet +1733 Cellink Technology Co., Ltd + 0101 RF Wireless Optical Mouse OP-701 +1736 CANON IMAGING SYSTEM TECHNOLOGIES INC. +1737 Linksys + 0039 USB1000 + 0070 WUSB100 v1 RangePlus Wireless Network Adapter [Ralink RT2870] + 0071 WUSB600N v1 Dual-Band Wireless-N Network Adapter [Ralink RT2870] + 0073 WUSB54GC v2 802.11g Adapter [Realtek RTL8187B] + 0075 WUSB54GSC v2 802.11g Adapter + 0077 WUSB54GC v3 802.11g Adapter [Ralink RT2070L] + 0078 WUSB100 v2 RangePlus Wireless Network Adapter [Ralink RT3070] + 0079 WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572] +1740 Senao + 0605 LevelOne WUA-0605 N_Max Wireless USB Adapter + 0615 LevelOne WUA-0615 N_Max Wireless USB Adapter + 2000 NUB-8301 802.11bg + 3701 EUB-3701 EXT 802.11g Wireless Adapter [Ralink RT2571W] + 9701 EnGenius 802.11n Wireless USB Adapter + 9702 EnGenius 802.11n Wireless USB Adapter + 9703 EnGenius 802.11n Wireless USB Adapter + 9705 EnGenius 802.11n Wireless USB Adapter + 9706 EUB9706 802.11n Wireless Adapter [Ralink RT3072] + 9801 EUB9801 802.11abgn Wireless Adapter [Ralink RT3572] +1743 General Atomics +174c ASMedia Technology Inc. +174f Syntek + 1105 SM-MS/Pro-MMC-XD Card Reader + 1403 Integrated Webcam + 1404 USB Camera device, 1.3 MPixel Web Cam + 5212 USB 2.0 UVC PC Camera + 5a11 PC Camera + 5a31 Sonix USB 2.0 Camera + 5a35 Sonix 1.3MPixel USB 2.0 Camera + 6a31 Web Cam - Asus A8J, F3S, F5R, VX2S, V1S + 6a33 Web Cam - Asus F3SA, F9J, F9S + 6a51 2.0MPixel Web Cam - Asus Z96J, Z96S, S96S + 6a54 Web Cam + 6d51 2.0Mpixel Web Cam - Eurocom D900C + 8a12 Syntek 0.3MPixel USB 2.0 UVC PC Camera + 8a33 Syntek USB 2.0 UVC PC Camera + a311 1.3MPixel Web Cam - Asus A3A, A6J, A6K, A6M, A6R, A6T, A6V, A7T, A7sv, A7U + a312 1.3MPixel Web Cam + a821 Web Cam - Packard Bell BU45, PB Easynote MX66-208W + aa11 Web Cam +1753 GERTEC Telecomunicacoes Ltda. + c901 PPC900 Pinpad Terminal +1759 LucidPort Technology, Inc. +1761 ASUSTek Computer, Inc. (wrong ID) + 0b05 802.11n Network Adapter (wrong ID - swapped vendor and device) +1772 System Level Solutions, Inc. +1776 Arowana + 501c 300K CMOS Camera +177f Sweex + 0153 LW153 802.11n Adapter [ralink rt3070] + 0313 LW313 802.11n Adapter [ralink rt2770 + rt2720] +1781 Multiple Vendors + 083e MetaGeek Wi-Spy + 083f MetaGeek Wi-Spy 2.4x + 0938 Iguanaworks USB IR Transceiver + 0c9f USBtiny +1782 Spreadtrum Communications Inc. +1784 TopSeed Technology Corp. + 0001 eHome Infrared Transceiver + 0004 RF Combo Device + 0006 eHome Infrared Transceiver + 0007 eHome Infrared Transceiver + 0008 eHome Infrared Transceiver + 000a eHome Infrared Transceiver +1787 ATI AIB +1788 ShenZhen Litkconn Technology Co., Ltd. +1796 Printrex, Inc. +1797 JALCO CO., LTD. +1799 Belkin Components + 7051 F5D7051 802.11g Adapter v1000 [Broadcom 4320] +179d Ricavision International, Inc. + 0010 Internal Infrared Transceiver +17a0 Samson Technologies Corp. + 0001 C01U condenser microphone + 0002 Q1U dynamic microphone + 0100 C03U multi-pattern microphone + 0101 UB1 boundary microphone + 0200 StudioDock monitors (internal hub) + 0201 StudioDock monitors (audio) + 0301 Q2U handheld microphone with XLR + 0302 GoMic compact condenser microphone +17a4 Concept2 + 0001 Performance Monitor 3 + 0002 Performance Monitor 4 +17a5 Advanced Connection Technology Inc. +17a7 MICOMSOFT CO., LTD. +17b3 Grey Innovation + 0004 Linux-USB Midi Gadget +17c3 Singim International Corp. +17cc Native Instruments + 041c Audio 2 DJ + 0808 Maschine Controller + 0815 Audio Kontrol 1 + 0839 Audio 4 DJ + 0d8d Guitarrig Mobile + 1915 Session I/O + 1940 RigKontrol3 + 1969 RigKontrol2 + 1978 Audio 8 DJ + 2305 Traktor Kontrol X1 + 4711 Kore Controller + 4712 Kore Controller 2 + baff Traktor Kontrol S4 +17cf Hip Hing Cable & Plug Mfy. Ltd. +17d0 Sanford L.P. +17d3 Korea Techtron Co., Ltd. +17e9 Newnham Research + 0051 USB VGA Adaptor +17eb Cornice, Inc. +17ef Lenovo + 1003 Integrated Smart Card Reader + 1004 Integrated Webcam + 100a ThinkPad Mini Dock Plus Series 3 + 3815 ChipsBnk 2GB USB Stick + 4802 Lenovo Vc0323+MI1310_SOC Camera + 4807 UVC Camera + 480c Integrated Webcam + 480d Integrated Webcam [R5U877] + 480e Integrated Webcam [R5U877] + 480f Integrated Webcam [R5U877] + 4810 Integrated Webcam [R5U877] + 4811 Integrated Webcam [R5U877] + 4812 Integrated Webcam [R5U877] + 4813 Integrated Webcam [R5U877] + 4814 Integrated Webcam [R5U877] + 4815 Integrated Webcam [R5U877] + 481c Integrated Webcam + 6009 ThinkPad Keyboard with TrackPoint +17f5 K.K. Rocky +17f6 Unicomp, Inc + 0709 Model M Keyboard +1809 Advantech + 4761 USB-4761 Portable Data Acquisition Module +1822 Twinhan + 3201 VisionDTV USB-Ter/HAMA USB DVB-T device cold + 3202 VisionDTV USB-Ter/HAMA USB DVB-T device warm +1831 Gwo Jinn Industries Co., Ltd. +1832 Huizhou Shenghua Industrial Co., Ltd. +183d VIVOphone + 0010 VoiceKey +1843 Vaisala +1849 ASRock Incorporation +1852 GYROCOM C&C Co., LTD + 7922 Audiotrak DR.DAC2 DX +1854 Memory Devices Ltd. +185b Compro + 3020 K100 Infrared Receiver + 3082 K100 Infrared Receiver v2 + d000 Compro Videomate DVB-U2000 - DVB-T USB cold + d001 Compro Videomate DVB-U2000 - DVB-T USB warm +1861 Tech Technology Industrial Company +1862 Teridian Semiconductor Corp. +1870 Nexio Co., Ltd + 0001 iNexio Touchscreen controller +1871 Aveo Technology Corp. + 0d01 USB2.0 Camera +187c Alienware Corporation + 0600 Dual Compatible Game Pad +187f Siano Mobile Silicon + 0010 Stallar Board + 0100 Stallar Board + 0200 Nova A + 0201 Nova B + 0202 Nice + 0300 Vega + 0301 VeNice +1892 Vast Technologies, Inc. +1894 Topseed + 5632 Atek Tote Remote + 5641 TSAM-004 Presentation Remote +1897 Evertop Wire Cable Co. +18a5 Verbatim, Ltd + 0214 Portable Hard Drive + 0216 External Hard Drive + 0218 External Hard Drive +18b1 Petalynx + 0037 Maxter Remote Control +18b4 e3C Technologies + 1001 DUTV007 + 1002 EC168 (v5) based USB DVB-T receiver + 1689 DUTV009 + fffa EC168 (v2) based USB DVB-T receiver + fffb EC168 (v3) based USB DVB-T receiver +18b6 Mikkon Technology Limited +18b7 Zotek Electronic Co., Ltd. +18c5 AMIT Technology, Inc. + 0002 CG-WLUSB2GO + 0008 CG-WLUSB2GNR Corega Wireless USB Adapter + 0012 CG-WLUSB10 Corega Wireless USB Adapter +18cd Ecamm + cafe Pico iMage +18d1 Google Inc. + 4e11 Nexus One + 4e12 Nexus One (debug) + 4e13 Nexus One (tether) + 4e21 Nexus S + 4e22 Nexus S (debug) +18d5 Starline International Group Limited +18d9 Kaba + 01a0 B-Net 91 07 +18dd Planon System Solutions Inc. + 1000 DocuPen RC800 +18e3 Fitipower Integrated Technology Inc + 7102 Multi Card Reader (Internal) + 9101 All-in-1 Card Reader + 9102 Multi Card Reader + 9512 Webcam +18e8 Qcom + 6196 RT2573 + 6229 RT2573 + 6232 Wireless 802.11g 54Mbps Network Adapter [RTL8187] +18ea Matrox Graphics, Inc. + 0002 DualHead2Go [Analog Edition] + 0004 TripleHead2Go [Digital Edition] +18ec Arkmicro Technologies Inc. + 3118 USB to IrDA adapter [ARK3116T] + 3188 ARK3188 UVC Webcam +18fd FineArch Inc. +1908 GEMBIRD + 1320 PhotoFrame PF-15-1 +190d Motorola GSG +1914 Alco Digital Devices Limited +1915 Nordic Semiconductor ASA + 2233 Linksys WUSB11 v2.8 802.11b Adapter [Atmel AT76C505] + 2234 Linksys WUSB54G v1 OEM 802.11g Adapter [Intersil ISL3886] + 2235 Linksys WUSB54GP v1 OEM 802.11g Adapter [Intersil ISL3886] + 2236 Linksys WUSB11 v3.0 802.11b Adapter [Intersil PRISM 3] +1926 NextWindow + 0003 1900 HID Touchscreen + 0006 1950 HID Touchscreen + 0064 1950 HID Touchscreen + 0065 1950 HID Touchscreen + 0066 1950 HID Touchscreen + 0067 1950 HID Touchscreen + 0068 1950 HID Touchscreen + 0069 1950 HID Touchscreen + 0071 1950 HID Touchscreen + 0072 1950 HID Touchscreen + 0073 1950 HID Touchscreen + 0074 1950 HID Touchscreen + 0075 1950 HID Touchscreen + 0076 1950 HID Touchscreen + 0077 1950 HID Touchscreen + 0078 1950 HID Touchscreen + 0079 1950 HID Touchscreen + 007a 1950 HID Touchscreen + 007e 1950 HID Touchscreen + 007f 1950 HID Touchscreen + 0080 1950 HID Touchscreen + 0081 1950 HID Touchscreen + 0082 1950 HID Touchscreen + 0083 1950 HID Touchscreen + 0084 1950 HID Touchscreen + 0085 1950 HID Touchscreen + 0086 1950 HID Touchscreen + 0087 1950 HID Touchscreen +192f Avago Technologies, Pte. + 0000 Mouse +1930 Shenzhen Xianhe Technology Co., Ltd. +1931 Ningbo Broad Telecommunication Co., Ltd. +1934 Feature Integration Technology Inc. (Fintek) + 0602 F71610 or F71612 Consumer Infrared Receiver/Transceiver + 0702 Integrated Consumer Infrared Receiver/Transceiver + 5168 F71610A or F71612A Consumer Infrared Receiver/Transceiver +1941 Dream Link + 8021 WH1080 Weather Station / USB Missile Launcher +1943 Sensoray Co., Inc. + 2250 Model 2250 MPEG and JPEG Capture Card + 2253 Model 2253 Audio/Video Codec Card + 2255 Model 2255 4 Channel Capture Card + 2257 Model 2257 4 Channel Capture Card + a250 Model 2250 MPEG and JPEG Capture Card (cold) + a253 Model 2253 Audio/Video Codec Card (cold) +1949 Lab126 + 0002 Amazon Kindle + 0004 Amazon Kindle 3 +1951 Hyperstone AG +1953 Ironkey Inc. +1954 Radiient Technologies +195d Itron Technology iONE + 7002 Libra-Q11 IR remote + 7006 Libra-Q26 / 1.0 Remote + 7777 Scorpius wireless keyboard + 7779 Scorpius-P20MT +1967 CASIO HITACHI Mobile Communications Co., Ltd. +196b Wispro Technology Inc. +1970 Dane-Elec Corp. USA +1975 Dongguan Guneetal Wire & Cable Co., Ltd. +1976 Chipsbrand Microelectronics (HK) Co., Ltd. +1977 T-Logic + 0111 TL203 MP3 Player and Voice Recorder +1989 Nuconn Technology Corp. +198f Beceem Communications Inc. + 0210 BCS200 WiMAX Adapter +1990 Acron Precision Industrial Co., Ltd. +1995 Trillium Technology Pty. Ltd. + 3202 REC-ADPT-USB (recorder) + 3203 REC-A-ADPT-USB (recorder) +199e The Imaging Source Europe GmbH + 8101 DFx 21BU04 Camera +199f Benica Corporation +19a8 Biforst Technology Inc. +19ab Bodelin + 1000 ProScope HR +19af S Life + 6611 Celestia VoIP Phone +19b2 Batronix + 0010 BX32 Batupo + 0011 BX32P Barlino + 0012 BX40 Bagero + 0013 BX48 Batego +19b4 Celestron + 0002 SkyScout Personal Planetarium + 0101 Handheld Digital Microscope 44302 +19b5 B & W Group +19b6 Infotech Logistic, LLC +19b9 Data Robotics + 8d20 Drobo Elite +19ca Mindtribe + 0001 Sandio 3D HID Mouse +19cf Parrot SA +19d2 ONDA Communication S.p.A. + 0002 ET502HS/MT505UP ZTE MF632 + 0007 ZTE TU25 WiMAX Adapter [Beceem BCS200] + 0031 ZTE MF110/MF636 + 0063 ZTE K3565-Z HSDPA + 0064 ZTE MF627 AU + 0083 ZTE MF190 + 0103 ZTE MF112 + 2000 ZTE MF627/MF628/MF628+/MF636+ HSDPA/HSUPA + fff2 Gobi Wireless Modem (QDL mode) + fff3 Gobi Wireless Modem +19e1 WeiDuan Electronic Accessory (S.Z.) Co., Ltd. +19e8 Industrial Technology Research Institute +19ef Pak Heng Technology (Shenzhen) Co., Ltd. +19f7 RODE Microphones + 0001 Podcaster +19fa Gampaq Co.Ltd + 0703 Steering Wheel +19ff Dynex + 0102 1.3MP Webcam + 0201 Rocketfish Wireless 2.4G Laser Mouse +1a08 Bellwood International, Inc. +1a0a USB-IF non-workshop + badd USB OTG Compliance test device +1a12 KES Co., Ltd. +1a25 Amphenol East Asia Ltd. +1a2a Seagate Branded Solutions +1a32 Quanta Microsystems, Inc. + 0304 802.11n Wireless LAN Card +1a36 Biwin Technology Ltd. +1a40 TERMINUS TECHNOLOGY INC. + 0101 USB-2.0 4-Port HUB +1a41 Action Electronics Co., Ltd. +1a44 VASCO Data Security International + 0001 Digipass 905 SmartCard Reader +1a4a Silicon Image +1a4b SafeBoot International B.V. +1a61 Abbott Diabetes Care +1a6a Spansion Inc. +1a6d SamYoung Electronics Co., Ltd +1a6e Global Unichip Corp. +1a6f Sagem Orga GmbH +1a79 Bayer Health Care LLC +1a7b Lumberg Connect GmbH & Co. KG +1a7c Evoluent + 0068 VerticalMouse 3 + 0168 VerticalMouse 3 Wireless + 0191 VerticalMouse 4 +1a86 QinHeng Electronics + 5523 CH341 in serial mode, usb to serial port converter + 5584 CH341 in parallel mode, usb to printer port converter + 7523 HL-340 USB-Serial adapter + 752d CH345 MIDI adapter + 7584 CH340S + e008 HID-based USB-serial converter, full-speed, similar to HE2325U +1a89 Dynalith Systems Co., Ltd. +1a8b SGS Taiwan Ltd. +1a8d BandRich, Inc. + 1002 BandLuxe 3.5G HSDPA Adapter + 1009 BandLuxe 3.5G HSPA Adapter +1a90 Corsair Voyager GT 16GB +1a98 Leica Camera AG +1aa4 Data Drive Thru, Inc. +1aa5 UBeacon Technologies, Inc. +1aa6 eFortune Technology Corp. +1acb Salcomp Plc +1ad1 Desay Wire Co., Ltd. +1ae4 ic-design Reinhard Gottinger GmbH +1ae7 X-TENSIONS + 0381 VS-DVB-T 380U (af9015 based) + 2001 SpeedLink SL-6825 +1aed High Top Precision Electronic Co., Ltd. +1aef Conntech Electronic (Suzhou) Corporation +1b04 Meilhaus Electronic GmBH + 0630 ME-630 + 0940 ME-94 + 0950 ME-95 + 0960 ME-96 + 1000 ME-1000 + 100a ME-1000 + 100b ME-1000 + 1400 ME-1400 + 140a ME-1400A + 140b ME-1400B + 140c ME-1400C + 140d ME-1400D + 140e ME-1400E + 14ea ME-1400EA + 14eb ME-1400EB + 1604 ME-1600/4U + 1608 ME-1600/8U + 160c ME-1600/12U + 160f ME-1600/16U + 168f ME-1600/16U8I + 4610 ME-4610 + 4650 ME-4650 + 4660 ME-4660 + 4661 ME-4660I + 4662 ME-4660 + 4663 ME-4660I + 4670 ME-4670 + 4671 ME-4670I + 4672 ME-4670S + 4673 ME-4670IS + 4680 ME-4680 + 4681 ME-4680I + 4682 ME-4680S + 4683 ME-4680IS + 6004 ME-6000/4 + 6008 ME-6000/8 + 600f ME-6000/16 + 6014 ME-6000I/4 + 6018 ME-6000I/8 + 601f ME-6000I/16 + 6034 ME-6000ISLE/4 + 6038 ME-6000ISLE/8 + 603f ME-6000ISLE/16 + 6044 ME-6000/4/DIO + 6048 ME-6000/8/DIO + 604f ME-6000/16/DIO + 6054 ME-6000I/4/DIO + 6058 ME-6000I/8/DIO + 605f ME-6000I/16/DIO + 6074 ME-6000ISLE/4/DIO + 6078 ME-6000ISLE/8/DIO + 607f ME-6000ISLE/16/DIO + 6104 ME-6100/4 + 6108 ME-6100/8 + 610f ME-6100/16 + 6114 ME-6100I/4 + 6118 ME-6100I/8 + 611f ME-6100I/16 + 6134 ME-6100ISLE/4 + 6138 ME-6100ISLE/8 + 613f ME-6100ISLE/16 + 6144 ME-6100/4/DIO + 6148 ME-6100/8/DIO + 614f ME-6100/16/DIO + 6154 ME-6100I/4/DIO + 6158 ME-6100I/8/DIO + 615f ME-6100I/16/DIO + 6174 ME-6100ISLE/4/DIO + 6178 ME-6100ISLE/8/DIO + 617f ME-6100ISLE/16/DIO + 6259 ME-6200I/9/DIO + 6359 ME-6300I/9/DIO + 810a ME-8100A + 810b ME-8100B + 820a ME-8200A + 820b ME-8200B +1b20 MStar Semiconductor, Inc. +1b22 WiLinx Corp. +1b26 Cellex Power Products, Inc. +1b27 Current Electronics Inc. +1b28 NAVIsis Inc. +1b32 Ugobe Life Forms, Inc. + 0064 Pleo robotic dinosaur +1b36 ViXS Systems, Inc. +1b3b iPassion Technology Inc. + 2933 PC Camera/Webcam controller + 2935 PC Camera/Webcam controller + 2936 PC Camera/Webcam controller + 2937 PC Camera/Webcam controller + 2938 PC Camera/Webcam controller + 2939 PC Camera/Webcam controller + 2950 PC Camera/Webcam controller + 2951 PC Camera/Webcam controller + 2952 PC Camera/Webcam controller + 2953 PC Camera/Webcam controller + 2955 PC Camera/Webcam controller + 2956 PC Camera/Webcam controller + 2957 PC Camera/Webcam controller + 2958 PC Camera/Webcam controller + 2959 PC Camera/Webcam controller + 2960 PC Camera/Webcam controller + 2961 PC Camera/Webcam controller + 2962 PC Camera/Webcam controller + 2963 PC Camera/Webcam controller + 2965 PC Camera/Webcam controller + 2966 PC Camera/Webcam controller + 2967 PC Camera/Webcam controller + 2968 PC Camera/Webcam controller + 2969 PC Camera/Webcam controller +1b3f Generalplus Technology Inc. +1b47 Energizer Holdings, Inc. + 0001 CHUSB Duo Charger (NiMH AA/AAA USB smart charger) +1b48 Plastron Precision Co., Ltd. +1b59 K.S. Terminals Inc. +1b5a Chao Zhou Kai Yuan Electric Co., Ltd. +1b65 The Hong Kong Standards and Testing Centre Ltd. +1b72 ATERGI TECHNOLOGY CO., LTD. +1b73 Fresco Logic + 1000 xHC1 Controller +1b75 Ovislink Corp. + 3072 AirLive WN-360USB adapter +1b76 Legend Silicon Corp. +1b80 Afatech + c810 MC810 [af9015] + d393 DVB-T receiver [RTL2832U] + d396 UB396-T [RTL2832U] + d397 DVB-T receiver [RTL2832U] + d398 DVB-T receiver [RTL2832U] + d700 FM Radio SnapMusic Mobile 700 (FM700) + e383 DVB-T UB383-T [af9015] + e385 DVB-T UB385-T [af9015] + e386 DVB-T UB385-T [af9015] + e39a DVB-T395U [af9015] + e39b DVB-T395U [af9015] + e409 IT9137FN Dual DVB-T [KWorld UB499-2T] +1b86 Dongguan Guanshang Electronics Co., Ltd. +1b88 ShenMing Electron (Dong Guan) Co., Ltd. +1b8c Altium Limited +1b8d e-MOVE Technology Co., Ltd. +1b8e Amlogic, Inc. +1b8f MA LABS, Inc. +1b96 N-Trig + 0001 Duosense Transparent Electromagnetic Digitizer +1b98 YMax Communications Corp. +1b99 Shenzhen Yuanchuan Electronic +1ba1 JINQ CHERN ENTERPRISE CO., LTD. +1ba2 Lite Metals & Plastic (Shenzhen) Co., Ltd. +1ba4 Ember Corporation + 0001 InSight USB Link +1ba6 Abilis Systems +1ba8 China Telecommunication Technology Labs +1bad Harmonix Music + 0002 Guitar for Xbox 360 + 0003 Drum Kit for Xbox 360 +1bae Vuzix Corporation + 0002 VR920 Immersive Eyewear +1bbb T & A Mobile Phones +1bc4 Ford Motor Co. +1bc5 AVIXE Technology (China) Ltd. +1bce Contac Cable Industrial Limited +1bcf Sunplus Innovation Technology Inc. + 0007 Optical Mouse + 05c5 SPRF2413A [2.4GHz Wireless Keyboard/Mouse Receiver] + 05cf Micro keyboard & mouse receiver +1bd0 Hangzhou Riyue Electronic Co., Ltd. +1bde P-TWO INDUSTRIES, INC. +1bef Shenzhen Tongyuan Network-Communication Cables Co., Ltd +1bf0 RealVision Inc. +1bf5 Extranet Systems Inc. +1bf6 Orient Semiconductor Electronics, Ltd. +1bfd TouchPack + 1268 Touch Screen + 1368 Touch Screen + 1568 Capacitive Touch Screen + 1668 IR Touch Screen + 1688 Resistive Touch Screen + 2968 Touch Screen + 5968 Touch Screen + 6968 Touch Screen +1c02 Kreton Corporation +1c04 QNAP System Inc. +1c0d Relm Wireless +1c10 Lanterra Industrial Co., Ltd. +1c13 ALECTRONIC LIMITED +1c1a Datel Electronics Ltd. +1c1b Volkswagen of America, Inc. +1c1f Goldvish S.A. +1c20 Fuji Electric Device Technology Co., Ltd. +1c21 ADDMM LLC +1c22 ZHONGSHAN CHIANG YU ELECTRIC CO., LTD. +1c26 Shanghai Haiying Electronics Co., Ltd. +1c27 HuiYang D & S Cable Co., Ltd. +1c31 LS Cable Ltd. +1c34 SpringCard + 7241 Prox'N'Roll RFID Scanner +1c37 Authorizer Technologies, Inc. +1c3d NONIN MEDICAL INC. +1c3e Wep Peripherals +1c49 Cherng Weei Technology Corp. +1c4f SiGma Micro + 0003 HID controller + 3000 Micro USB Web Camera +1c6b Philips & Lite-ON Digital Solutions Corporation +1c6c Skydigital Inc. +1c73 AMT + 861f Anysee E30 USB 2.0 DVB-T Receiver +1c77 Kaetat Industrial Co., Ltd. +1c78 Datascope Corp. +1c79 Unigen Corporation +1c7a LighTuning Technology Inc. +1c7b LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD. +1c87 2N TELEKOMUNIKACE a.s. +1c88 Somagic, Inc. +1c89 HONGKONG WEIDIDA ELECTRON LIMITED +1c8e ASTRON INTERNATIONAL CORP. +1c98 ALPINE ELECTRONICS, INC. +1ca0 ACCARIO Inc. +1cac Kinstone + a332 C8 Webcam + b288 C18 Webcam +1cb3 Aces Electronic Co., Ltd. +1cb4 OPEX CORPORATION +1cbe Luminary Micro Inc. +1cbf FORTAT SKYMARK INDUSTRIAL COMPANY +1cc0 PlantSense +1cca NextWave Broadband Inc. +1ccd Bodatong Technology (Shenzhen) Co., Ltd. +1cd4 adp corporation +1cd5 Firecomms Ltd. +1cd6 Antonio Precise Products Manufactory Ltd. +1cde Telecommunications Technology Association (TTA) +1cdf WonTen Technology Co., Ltd. +1ce0 EDIMAX TECHNOLOGY CO., LTD. +1ce1 Amphenol KAE +1cfc ANDES TECHNOLOGY CORPORATION +1cfd Flextronics Digital Design Japan, LTD. +1d07 Solid-Motion +1d08 NINGBO HENTEK DRAGON ELECTRONICS CO., LTD. +1d09 TechFaith Wireless Technology Limited + 1026 HSUPA Modem FLYING-LARK46-VER0.07 [Flying Angel] +1d0a Johnson Controls, Inc. The Automotive Business Unit +1d0b HAN HUA CABLE & WIRE TECHNOLOGY (J.X.) CO., LTD. +1d14 ALPHA-SAT TECHNOLOGY LIMITED +1d17 C-Thru Music Ltd. + 0001 AXiS-49 Harmonic Table MIDI Keyboard +1d19 Dexatek Technology Ltd. + 1101 DK DVB-T Dongle + 1102 DK mini DVB-T Dongle + 1103 DK 5217 DVB-T Dongle + 6105 Video grabber + 8202 DK DVBC/T DONGLE +1d1f Diostech Co., Ltd. +1d20 SAMTACK INC. +1d4d PEGATRON CORPORATION + 0002 Ralink RT2770/2720 802.11b/g/n Wireless LAN Mini-USB Device + 000c Ralink RT3070 802.11b/g/n Wireless Lan USB Device + 000e Ralink RT3070 802.11b/g/n Wireless Lan USB Device +1d50 OpenMoko, Inc. + 5119 GTA01/GTA02 U-Boot Bootloader +1d5b Smartronix, Inc. +1d6b Linux Foundation + 0001 1.1 root hub + 0002 2.0 root hub + 0003 3.0 root hub + 0100 PTP Gadget + 0101 Audio Gadget + 0102 EEM Gadget + 0103 NCM (Ethernet) Gadget + 0104 Multifunction Composite Gadget + 0105 FunctionFS Gadget + 0200 Qemu Audio Device +1e0e Qualcomm / Option +1e10 Point Grey Research, Inc. + 2004 Sony 1.3MP 1/3" ICX445 IIDC video camera [Chameleon] +1e1d Lumension Security + 0165 Secure Pen drive +1e1f INVIA +1e29 Festo AG & Co. KG + 0101 CPX Adapter + 0102 CPX Adapter >=HW10.09 [CP2102] + 0401 iL3-TP [AT90USB646] + 0402 FTDI232 [EasyPort] + 0403 FTDI232 [EasyPort Mini] + 0404 FTDI232 [Netzteil-GL] + 0405 FTDI232 [MotorPrüfstand] + 0406 STM32F103 [EasyKit] + 0407 LPC2378 [Robotino] + 0408 LPC2378 [Robotino-Arm] + 0409 LPC2378 [Robotino-Arm Bootloader] + 040a LPC2378 [Robotino Bootloader] + 0501 CP2102 [CMSP] + 0601 CMMP-AS +1e41 Cleverscope + 0001 CS328A PC Oscilloscope +1e54 TypeMatrix + 2030 2030 USB Keyboard +1e68 TrekStor GmbH & Co. KG + 001b DataStation maxi g.u +1e71 NZXT + 0001 Avatar Optical Mouse +1e74 Coby Electronics Corporation + 6511 MP705-8G MP3 player + 6512 MP705-4G +1e7d ROCCAT + 2c24 Pyra Mouse (wired) + 2ced Kone Mouse + 2d51 Kone+ Mouse + 30d4 Arvo Keyboard +1ebb NuCORE Technology, Inc. +1eda AirTies Wireless Networks + 2310 802.11n USB Wireless LAN Card +1ef6 EADS Deutschland GmbH +1f28 Cal-Comp + 0020 CDMA USB Modem A600 + 0021 CD INSTALLER USB Device +1f4d G-Tek Electronics Group + b803 Lifeview LV5TDLX DVB-T [RTL2832U] +1f82 TANDBERG + 0001 PrecisionHD Camera +1f84 Alere, Inc. +1f87 Stantum + 0002 Multi-touch HID Controller +1fbd Delphin Technology AG + 0001 Expert Key - Data aquisition system +1fc9 NXP Semiconductors +1fe7 Vertex Wireless Co., Ltd. + 1000 VW100 series CDMA EV-DO Rev.A modem +2001 D-Link Corp. + 0001 DWL-120 WIRELESS ADAPTER + 0201 DHN-120 10Mb Home Phoneline Adapter + 1a00 10/100 Ethernet + 200c 10/100 Ethernet + 3200 DWL-120 802.11b Wireless Adapter(rev.E1) [Atmel at76c503a] + 3301 DWA-130 802.11n Wireless N Adapter(rev.C1) [Realtek RTL8192U] + 3500 Elitegroup Computer Systems WLAN card WL-162 + 3700 DWL-122 802.11b [Intersil Prism 3] + 3701 DWL-G120 Spinnaker 802.11g [Intersil ISL3886] + 3702 DWL-120 802.11b Wireless Adapter(rev.F) [Intersil ISL3871] + 3703 AirPlus G DWL-G122 Wireless Adapter [Intersil ISL3886] + 3704 AirPlus G DWL-G122 Wireless Adapter(rev.A2) [Intersil ISL3887] + 3705 AirPlus G DWL-G120 Wireless Adapter(rev.C) [Intersil ISL3887] + 3761 IEEE 802.11g USB2.0 Wireless Network Adapter-PN + 3a00 DWL-AG132 [Atheros AR5523] + 3a01 DWL-AG132 (no firmware) [Atheros AR5523] + 3a02 DWL-G132 [Atheros AR5523] + 3a03 DWL-G132 (no firmware) [Atheros AR5523] + 3a04 DWL-AG122 [Atheros AR5523] + 3a05 DWL-AG122 (no firmware) [Atheros AR5523] + 3a80 AirPlus Xtreme G DWL-G132 Wireless Adapter + 3a81 predator Bootloader Download + 3a82 AirPremier AG DWL-AG132 Wireless Adapter + 3a83 predator Bootloader Download + 3b00 AirPlus DWL-120+ Wireless Adapter [Texas Instruments ACX100USB] + 3b01 WLAN Boot Device + 3c00 AirPlus G DWL-G122 Wireless Adapter(rev.B1) [Ralink RT2500USB] + 3c01 AirPlus AG DWL-AG122 Wireless Adapter + 3c02 AirPlus G DWL-G122 Wireless Adapter + 3c05 DUB-E100 Fast Ethernet [asix] + 4000 DSB-650C Ethernet [klsi] + 4001 DSB-650TX Ethernet [pegasus] + 4002 DSB-650TX Ethernet [pegasus] + 4003 DSB-650TX-PNA Ethernet [pegasus] + 400b 10/100 Ethernet + 4102 10/100 Ethernet + 5100 DSL-200 ADSL ATM Modem + 5102 DSL-200 ADSL Loader + 5b00 Remote NDIS Network Device + 9414 Cable Modem + 9b00 Broadband Cable Modem Remote NDIS Device + abc1 DSB-650 Ethernet [pegasus] + f013 DLink 7 port USB2.0 Hub + f103 DUB-H7 7-port USB 2.0 hub + f10d Accent Communications Modem + f110 DUB-AV300 A/V Capture + f111 DBT-122 Bluetooth adapter + f112 DUB-T210 Audio Device + f116 Formosa 2 + f117 Formosa 3 + f118 Formosa 4 +2013 Unknown (Pinnacle?) + 0245 PCTV 73ESE + 0246 PCTV 74E + 0248 PCTV 282E +2019 PLANEX + 3220 GW-US11S WLAN [Atmel AT76C503A] + 5303 GW-US54GXS 802.11bg + 5304 GWUS300 802.11n + ab01 GW-US54HP + ab24 GW-US300MiniS + ab25 GW-USMini2N 802.11n Wireless Adapter [Ralink RT2870] + ab28 GW-USNano + ab29 GW-USMicro300 + ab50 GW-US54Mini2 + c002 GW-US54SG + c007 GW-US54GZL + ed02 GW-USMM + ed06 802.11n Wireless LAN Adapter + ed10 GW-US300Mini2 + ed14 GW-USMicroN + ed17 GW-USValue-EZ +2040 Hauppauge + 0c80 Windham + 0c90 Windham + 1700 CataMount + 1800 Okemo A + 1801 Okemo B + 2000 Tiger Minicard + 2009 Tiger Minicard R2 + 200a Tiger Minicard + 2010 Tiger Minicard + 2011 WinTV MiniCard [Dell Digital TV Receiver] + 2019 Tiger Minicard + 2400 WinTV PVR USB2 (Model 24019) + 4700 WinTV Nova-S-USB2 + 4902 HD PVR + 4982 HD PVR + 5500 Windham + 5510 Windham + 5520 Windham + 5530 Windham + 5580 Windham + 5590 Windham + 6500 WinTV HVR-900 + 6502 WinTV HVR-900 + 6503 WinTV HVR-930 + 6513 WinTV HVR-980 + 7050 Nova-T Stick + 7060 Nova-T Stick 2 + 7070 Nova-T Stick 3 + 7240 WinTV HVR-850 + 8400 WinTV Nova-T-500 + 9300 WinTV NOVA-T USB2 (cold) + 9301 WinTV NOVA-T USB2 (warm) + 9941 WinTV Nova-T-500 + 9950 WinTV Nova-T-500 + b910 Windham + b980 Windham + b990 Windham + c000 Windham + c010 Windham +2047 Texas Instruments + 0200 MSP430 USB HID Bootstrap Loader +2080 Barnes & Noble + 0001 nook + 0002 NOOKcolor +2087 Cando + 0a01 Multi Touch Panel + 0a02 Multi Touch Panel + 0b03 Multi Touch Panel +20a0 Clay Logic + 414a MDE SPI Interface +20b1 XMOS Ltd + 10ad XUSB Loader + f7d1 XTAG2 - JTAG Adapter +20b3 Hanvon + 0a18 10.1 Touch screen overlay +20b7 Qi Hardware + 0713 Milkymist JTAG/serial + 1540 ben-wpan, AT86RF230-based + 1db5 IDBG in DFU mode + 1db6 IDBG in normal mode + c25b C2 Dongle + cb72 ben-wpan, cntr +20df Simtec Electronics + 0001 Entropy Key [UDEKEY01] +2101 ActionStar + 0201 SIIG 4-to-2 Printer Switch +2162 Creative (?) + 2031 Network Blaster Wireless Adapter + 500c DE5771 Modem Blaster + 8001 Broadxent BritePort DSL Bridge 8010U +2184 GW Instek + 0005 GDS-3000 Oscilloscope + 0006 GDS-3000 Oscilloscope + 0011 AFG Function Generator (CDC) +21a1 Emotiv Systems Pty. Ltd. + 0001 EPOC Consumer Headset Wireless Dongle +21d6 Agecodagis SARL + 0002 Seismic recorder [Tellus] +2222 MacAlly + 0004 iWebKey Keyboard + 2520 Mini Tablet + 4050 AirStick joystick +2227 SAMWOO Enterprise + 3105 SKYDATA SKD-U100 +2233 RadioShack Corporation + 6323 USB Electronic Scale +2237 Kobo Inc. + 4161 eReader White +22a6 Pie Digital, Inc. + ffff PieKey "beta" 4GB model 4E4F41482E4F5247 (SM3251Q BB) +22b8 Motorola PCS + 0001 Wally 2.2 chipset + 0002 Wally 2.4 chipset + 0005 V.60c/V.60i GSM Phone + 0830 2386C-HT820 + 0833 2386C-HT820 [Flash Mode] + 0850 Bluetooth Device + 1001 Patriot 1.0 (GSM) chipset + 1002 Patriot 2.0 chipset + 1005 T280e GSM/GPRS Phone + 1101 Patriot 1.0 (TDMA) chipset + 1801 Rainbow chipset flash + 2035 Bluetooth Device + 2805 GSM Modem + 2821 T720 GSM Phone + 2822 V.120e GSM Phone + 2823 Flash Interface + 2a01 MSM6050 chipset + 2a02 CDMA modem + 2a03 MSM6050 chipset flash + 2a21 V710 GSM Phone (P2K) + 2a22 V710 GSM Phone (AT) + 2a23 MSM6100 chipset flash + 2a41 MSM6300 chipset + 2a42 Usb Modem + 2a43 MSM6300 chipset flash + 2a61 E815 GSM Phone (P2K) + 2a62 E815 GSM Phone (AT) + 2a63 MSM6500 chipset flash + 2a81 MSM6025 chipset + 2a83 MSM6025 chipset flash + 2ac1 MSM6100 chipset + 2ac3 MSM6100 chipset flash + 2d78 XT300[SPICE] + 3001 A835/E1000 GSM Phone (P2K) + 3002 A835/E1000 GSM Phone (AT) + 3801 C350L/C450 (P2K) + 3802 C330/C350L/C450/EZX GSM Phone (AT) + 3803 Neptune LT chipset flash + 4001 OMAP 1.0 chipset + 4002 A920/A925 UMTS Phone + 4003 OMAP 1.0 chipset flash + 4008 OMAP 1.0 chipset RDL + 41d6 Droid X (Windows media mode) + 41d9 Droid/Milestone + 41db Droid/Milestone (Debug mode) + 41de Droid X (PC mode) + 4204 MPx200 Smartphone + 4214 MPc GSM + 4224 MPx220 Smartphone + 4234 MPc CDMA + 4244 MPx100 Smartphone + 4285 Droid X (Mass storage) + 4801 Neptune LTS chipset + 4803 Neptune LTS chipset flash + 4810 Triplet GSM Phone (storage) + 4901 Triplet GSM Phone (P2K) + 4902 Triplet GSM Phone (AT) + 4903 Neptune LTE chipset flash + 4a01 Neptune LTX chipset + 4a03 Neptune LTX chipset flash + 4a32 L6-imode Phone + 5801 Neptune ULS chipset + 5803 Neptune ULS chipset flash + 5901 Neptune VLT chipset + 5903 Neptune VLT chipset flash + 6001 Dalhart EZX + 6003 Dalhart flash + 6004 EZX GSM Phone (CDC Net) + 6006 MOTOROKR E6 + 6008 Dalhart RDL + 6009 EZX GSM Phone (P2K) + 600a Dalhart EZX config 17 + 600b Dalhart EZX config 18 + 600c EZX GSM Phone (USBLAN) + 6021 JUIX chipset + 6023 JUIX chipset flash + 6026 Flash RAM Downloader/miniOS + 6027 USBLAN + 604c EZX GSM Phone (Storage) + 6101 Talon integrated chipset + 6401 Argon chipset + 6403 Argon chipset flash + 6415 ROKR Z6 (MTP mode) + 6604 Washington CDMA Phone + 6631 CDC Modem + 7001 Q Smartphone + fe01 StarTAC III MS900 +22b9 eTurboTouch Technology, Inc. + 0006 Touch Screen +22ba Technology Innovation Holdings, Ltd +2304 Pinnacle Systems, Inc. + 0109 Studio PCTV USB (SECAM) + 0110 Studio PCTV USB (PAL) + 0111 Miro PCTV USB + 0112 Studio PCTV USB (NTSC) with FM radio + 0201 Systems MovieBox Device + 0204 MovieBox USB_B + 0205 DVC 150B + 0206 Systems MovieBox Deluxe Device + 0207 Dazzle DVC90 Video Device + 0208 Studio PCTV USB2 + 020e PCTV 200e + 020f PCTV 400e BDA Device + 0210 Studio PCTV USB (PAL) with FM radio + 0212 Studio PCTV USB (NTSC) + 0213 500-USB Device + 0214 Studio PCTV USB (PAL) with FM radio + 0216 PCTV 60e + 0219 PCTV 260e + 021a Dazzle DVC100 Audio Device + 021b Dazzle DVC130/DVC170 + 021d Dazzle DVC130 + 021e Dazzle DVC170 + 021f PCTV Sat HDTV Pro BDA Device + 0222 PCTV Sat Pro BDA Device + 0223 DazzleTV Sat BDA Device + 0225 Remote Kit Infrared Transceiver + 0226 PCTV 330e + 0227 PCTV for Mac, HD Stick + 0228 PCTV DVB-T Flash Stick + 0229 PCTV Dual DVB-T 2001e + 022a PCTV 160e + 022b PCTV 71e [Afatech AF9015] + 0232 PCTV 170e + 0236 PCTV 72e [DiBcom DiB7000PC] + 0237 PCTV 73e [DiBcom DiB7000PC] + 023a PCTV 801e + 023b PCTV 801e SE + 023d PCTV 340e + 023e PCTV 340e SE + 0300 Studio Linx Video input cable (NTSC) + 0301 Studio Linx Video input cable (PAL) + 0302 Dazzle DVC120 + 0419 PCTV Bungee USB (PAL) with FM radio + 061d PCTV Deluxe (NTSC) Device + 061e PCTV Deluxe (PAL) Device +2318 Shining Technologies, Inc. [hex] + 0011 CitiDISK Jr. IDE Enclosure +2373 Pumatronix Ltda + 0001 5 MegaPixel Digital Still Camera [DSC5M] +2375 Digit@lway, Inc. + 0001 Digital Audio Player +2406 SANHO Digital Electronics Co., Ltd. + 6688 PD7X Portable Storage +2478 Tripp-Lite + 2008 U209-000-R Serial Port +2632 TwinMOS + 3209 7-in-1 Card Reader +2650 Electronics For Imaging, Inc. [hex] +2730 Citizen + 200f CT-S310 Label printer +2735 DigitalWay + 0003 MPIO HS100 + 1001 MPIO FY200 + 1002 MPIO FL100 + 1003 MPIO FD100 + 1004 MPIO HD200 + 1005 MPIO HD300 + 1006 MPIO FG100 + 1007 MPIO FG130 + 1008 MPIO FY300 + 1009 MPIO FY400 + 100a MPIO FL300 + 100b MPIO HS200 + 100c MPIO FL350 + 100d MPIO FY500 + 100e MPIO FY500 + 100f MPIO FY600 + 1012 MPIO FL400 + 1013 MPIO HD400 + 1014 MPIO HD400 + 1016 MPIO FY700 + 1017 MPIO FY700 + 1018 MPIO FY800 + 1019 MPIO FY800 + 101a MPIO FY900 + 101b MPIO FY900 + 102b MPIO FL500 + 102c MPIO FL500 + 103f MPIO FY570 + 1040 MPIO FY570 + 1041 MPIO FY670 + 1042 MPIO FY670 + 1043 HCT HMD-180A + 1044 HCT HMD-180A +2770 NHJ, Ltd + 0a01 ScanJet 4600 series + 905c Che-Ez Snap SNAP-U/Digigr8/Soundstar TDC-35 + 9060 A130 + 9120 Che-ez! Snap / iClick Tiny VGA Digital Camera + 9130 TCG 501 + 913c Argus DC-1730 + 9150 Mini Cam + 9153 iClick 5X + 915d Cyberpix S-210S / Little Tikes My Real Digital Camera + 930b CCD Webcam(PC370R) + 930c CCD Webcam(PC370R) +2821 ASUSTek Computer Inc. + 0161 WL-161 802.11b Wireless Adapter [SiS 162U] + 160f WL-160g 802.11g Wireless Adapter [Envara WiND512] + 3300 WL-140 / Hawking HWU36D 802.11b Wireless Adapter [Intersil PRISM 3] +2899 Toptronic Industrial Co., Ltd + 012c Camera Device +2c02 Planex Communications + 14ea GW-US11H WLAN +2c1a Dolphin Peripherals + 0000 Wireless Optical Mouse +2fb2 Fujitsu, Ltd +3125 Eagletron + 0001 TrackerPod Camera Stand +3176 Whanam Electronics Co., Ltd +3275 VidzMedia Pte Ltd + 4fb1 MonsterTV P2H +3334 AEI + 1701 Fast Ethernet +3340 Yakumo + 043a Mio A701 DigiWalker PPCPhone + 0e3a Pocket PC 300 GPS SL / Typhoon MyGuide 3500 + a0a3 deltaX 5 BT (D) PDA +3504 Micro Star + f110 Security Key +3538 Power Quotient International Co., Ltd + 0001 Travel Flash + 0015 Mass Storge Device + 0022 Hi-Speed Mass Storage Device + 0042 Cool Drive U339 Flash Disk + 0054 Flash Drive (2GB) +3579 DIVA + 6901 Media Reader +3636 InVibro +3838 WEM + 0001 5-in-1 Card Reader +3923 National Instruments Corp. + 12c0 DAQPad-6020E + 12d0 DAQPad-6507 + 12e0 NI 4350 + 12f0 NI 5102 + 1750 DAQPad-6508 + 17b0 USB-ISA-Bridge + 1820 DAQPad-6020E (68 pin I/O) + 1830 DAQPad-6020E (BNC) + 1f00 DAQPad-6024E + 1f10 DAQPad-6024E + 1f20 DAQPad-6025E + 1f30 DAQPad-6025E + 1f40 DAQPad-6036E + 1f50 DAQPad-6036E + 2f80 DAQPad-6052E + 2f90 DAQPad-6052E + 702b GPIB-USB-B + 703c USB-485 RS485 Cable + 709b GPIB-USB-HS + 7254 NI MIO (data acquisition card) firmware updater + 729e USB-6251 (OEM) data acquisition card +40bb I-O Data + 0a09 USB2.0-SCSI Bridge USB2-SC +4101 i-rocks + 1301 IR-2510 usb phone +4102 iRiver, Ltd. + 1001 iFP-100 series mp3 player + 1003 iFP-300 series mp3 player + 1005 iFP-500 series mp3 player + 1007 iFP-700 series mp3/ogg vorbis player + 1008 iFP-800 series mp3/ogg vorbis player + 100a iFP-1000 series mp3/ogg vorbis player + 1014 T20 series mp3/ogg vorbis player (ums firmware) + 1019 T30 + 1034 T60 + 1040 M1Player + 1041 E100 (ums) + 1101 iFP-100 series mp3 player (ums firmware) + 1103 iFP-300 series mp3 player (ums firmware) + 1105 iFP-500 series mp3 player (ums firmware) + 1113 T10 (alternate) + 1117 T10 + 1119 T30 series mp3/ogg/wma player + 1141 E100 (mtp) + 2002 H10 6GB + 2101 H10 20GB (mtp) + 2102 H10 5GB (mtp) + 2105 H10 5/6GB (mtp) +413c Dell Computer Corp. + 0000 DRAC 5 Virtual Keyboard and Mouse + 0001 DRAC 5 Virtual Media + 0058 Port Replicator + 1001 Keyboard Hub + 1002 Keyboard Hub + 1003 Keyboard Hub + 1005 Multimedia Pro Keyboard Hub + 2001 Keyboard HID Support + 2002 SK-8125 Keyboard + 2003 Keyboard + 2005 RT7D50 Keyboard + 2010 Keyboard + 2011 Multimedia Pro Keyboard + 2100 SK-3106 Keyboard + 2101 SmartCard Reader Keyboard + 2105 Model L100 Keyboard + 2106 Dell QuietKey Keyboard + 2500 DRAC4 Remote Access Card + 2513 internal USB Hub of E-Port Replicator + 3010 Optical Wheel Mouse + 3012 Optical Wheel Mouse + 3016 Optical 5-Button Wheel Mouse + 3200 Mouse + 4001 Axim X5 + 4002 Axim X3 + 4003 Axim X30 + 4004 Axim Sync + 4005 Axim Sync + 4006 Axim Sync + 4007 Axim Sync + 4008 Axim Sync + 4009 Axim Sync + 4011 Axim X51v + 5103 AIO Printer A940 + 5105 AIO Printer A920 + 5107 AIO Printer A960 + 5109 Photo AIO Printer 922 + 5110 Photo AIO Printer 962 + 5111 Photo AIO Printer 942 + 5112 Photo AIO Printer 924 + 5113 Photo AIO Printer 944 + 5114 Photo AIO Printer 964 + 5115 Photo AIO Printer 926 + 5116 AIO Printer 946 + 5117 Photo AIO Printer 966 + 5118 AIO 810 + 5124 Laser MFP 1815 + 5128 Photo AIO 928 + 5200 Laser Printer + 5202 Printing Support + 5203 Printing Support + 5210 Printing Support + 5211 1110 Laser Printer + 5220 Laser MFP 1600n + 5225 Printing Support + 5226 Printing Support + 5300 Laser Printer + 5400 Laser Printer + 5401 Laser Printer + 5513 WLA3310 Wireless Adapter [Intersil ISL3887] + 5601 Laser Printer 3100cn + 5602 Laser Printer 3000cn + 5631 Laser Printer 5100cn + 5905 Printing Support + 8000 BC02 Bluetooth Adapter + 8010 TrueMobile Bluetooth Module in + 8100 TrueMobile 1180 802.11b Adapter [Intersil PRISM 3] + 8102 TrueMobile 1300 802.11g Wireless Adapter [Intersil ISL3880] + 8103 Wireless 350 Bluetooth + 8104 Wireless 1450 Dual-band (802.11a/b/g) Adapter [Intersil ISL3887] + 8105 U2 in HID - Driver + 8106 Wireless 350 Bluetooth Internal Card in + 8110 Wireless 3xx Bluetooth Internal Card + 8111 Wireless 3xx Bluetooth Internal Card in + 8114 Wireless 5700 Mobile Broadband (CDMA EV-DO) Minicard Modem + 8115 Wireless 5500 Mobile Broadband (3G HSDPA) Minicard Modem + 8116 Wireless 5505 Mobile Broadband (3G HSDPA) Minicard Modem + 8117 Wireless 5700 Mobile Broadband (CDMA EV-DO) Expresscard Modem + 8118 Wireless 5510 Mobile Broadband (3G HSDPA) Expresscard Status Port + 8120 Bluetooth adapter + 8121 Eastfold in HID + 8122 Eastfold in DFU + 8123 eHome Infrared Receiver + 8124 eHome Infrared Receiver + 8126 Wireless 355 Bluetooth + 8127 Wireless 355 Module with Bluetooth 2.0 + EDR Technology. + 8128 Wireless 5700-Sprint Mobile Broadband (CDMA EV-DO) Mini-Card Status Port + 8129 Wireless 5700-Telus Mobile Broadband (CDMA EV-DO) Mini-Card Status Port + 8131 Wireless 360 Bluetooth 2.0 + EDR module. + 8133 Wireless 5720 VZW Mobile Broadband (EVDO Rev-A) Minicard GPS Port + 8134 Wireless 5720 Sprint Mobile Broadband (EVDO Rev-A) Minicard Status Port + 8135 Wireless 5720 TELUS Mobile Broadband (EVDO Rev-A) Minicard Diagnostics Port + 8136 Wireless 5520 Cingular Mobile Broadband (3G HSDPA) Minicard Diagnostics Port + 8137 Wireless 5520 Voda L Mobile Broadband (3G HSDPA) Minicard Status Port + 8138 Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard EAP-SIM Port + 8140 Wireless 360 Bluetooth + 8142 Mobile 360 in DFU + 8147 F3507g Mobile Broadband Module + 8156 Wireless 370 Bluetooth Mini-card + 8157 Integrated Keyboard + 8158 Integrated Touchpad / Trackstick + 8160 Wireless 365 Bluetooth + 8161 Integrated Keyboard + 8162 Integrated Touchpad [Synaptics] + 8171 Gobi Wireless Modem (QDL mode) + 8172 Gobi Wireless Modem + 8183 F3607gw Mobile Broadband Module + 8184 F3607gw v2 Mobile Broadband Module + 8185 Gobi 2000 Wireless Modem (QDL mode) + 8186 Gobi 2000 Wireless Modem + 8187 DW375 Bluetooth Module + 8501 Bluetooth Adapter + 9500 USB CP210x UART Bridge Controller [DW700] + a001 Hub + a005 Internal 2.0 Hub + a700 Hub (in 1905FP LCD Monitor) +4146 USBest Technology + 9281 Iomega Micro Mini 128MB Flash Drive + ba01 Intuix Flash Drive +4242 USB Design by Example + 4201 Buttons and Lights HID device + 4220 Echo 1 Camera +4317 Broadcom Corp. + 0700 U.S. Robotics USR5426 802.11g Adapter + 0701 U.S. Robotics USR5425 Wireless MAXg Adapter + 0711 Belkin F5D7051 v3000 802.11g + 0720 Dynex DX-BUSB +4348 WinChipHead + 5523 USB->RS 232 adapter with Prolifec PL 2303 chipset + 5537 13.56Mhz RFID Card Reader and Writer + 5584 CH34x printer adapter cable +4572 Shuttle, Inc. + 4572 Shuttle PN31 Remote +4586 Panram + 1026 Crystal Bar Flash Drive +4670 EMS Production + 9394 Game Cube USB Memory Adaptor 64M +4752 Miditech + 0011 Midistart-2 +4757 GW Instek + 2009 PEL-2000 Series Electronic Load (CDC) + 2010 PEL-2000 Series Electronic Load (CDC) +4766 Aceeca + 0001 MEZ1000 RDA +4855 Memorex + 7288 Ultra Traveldrive 160G 2.5" HDD +4971 SimpleTech + cb01 SP-U25/120G + ce17 1TB SimpleDrive II USB External Hard Drive +5032 Grandtec + 0bb8 Grandtec USB1.1 DVB-T (cold) + 0bb9 Grandtec USB1.1 DVB-T (warm) + 0fa0 Grandtec USB1.1 DVB-T (cold) + 0fa1 Grandtec USB1.1 DVB-T (warm) +5041 Linksys (?) + 2234 WUSB54G v1 802.11g Adapter [Intersil ISL3886] + 2235 WUSB54GP v1 802.11g Adapter [Intersil ISL3886] +50c2 Averatec (?) + 4013 WLAN Adapter +5173 Sweex + 1809 ZD1211 +5219 I-Tetra + 1001 Cetus CDC Device +5345 Owon + 1234 PDS6062T Oscilloscope +544d Transmeta Corp. +5543 UC-Logic Technology Corp. + 0002 SuperPen WP3325U Tablet + 0003 Tablet WP4030U + 0004 Tablet WP5540U + 0005 Tablet WP8060U + 0041 Genius PenSketch 6x8 Tablet + 0042 Tablet PF1209 + 0064 Aiptek HyperPen 10000U +5555 Epiphan Systems Inc. + 1110 VGA2USB + 1120 KVM2USB + 2222 DVI2USB + 3333 VGA2USB Pro + 3337 KVM2USB Pro + 3340 VGA2USB LR + 3344 KVM2USB LR + 3411 DVI2USB Solo + 3422 DVI2USB Duo +55aa OnSpec Electronic, Inc. + 0015 Hard Drive + 0102 SuperDisk + 0103 IDE Hard Drive + 0201 DDI to Reader-19 + 1234 ATAPI Bridge + a103 Sandisk SDDR-55 SmartMedia Card Reader + b000 USB to CompactFlash Card Reader + b004 OnSpec MMC/SD Reader/Writer + b00b USB to Memory Stick Card Reader + b00c USB to SmartMedia Card Reader + b012 Mitsumi FA402M 8-in-2 Card Reader + b200 Compact Flash Reader + b204 MMC/ SD Reader + b207 Memory Stick Reader +5656 Uni-Trend Group Limited + 0832 UT2000/UT3000 Digital Storage Oscilloscope +595a IRTOUCHSYSTEMS Co. Ltd. + 0001 Touchscreen +5986 Acer, Inc + 0100 Orbicam + 0101 USB2.0 Camera + 0102 Crystal Eye Webcam + 01a6 Lenovo Integrated Webcam + 01a7 Lenovo Integrated Webcam + 01a9 Lenovo Integrated Webcam + 0200 OrbiCam + 0203 BisonCam NB Pro 1300 + 0241 BisonCam, NB Pro + 02d0 Lenovo Integrated Webcam [R5U877] + 03d0 Lenovo Integrated Webcam [R5U877] +5a57 Zinwell + 0260 RT2570 + 0280 802.11a/b/g/n USB Wireless LAN Card + 0282 802.11b/g/n USB Wireless LAN Card + 0283 802.11b/g/n USB Wireless LAN Card + 0284 802.11a/b/g/n USB Wireless LAN Card + 0290 ZW-N290 802.11n [Realtek RTL8192SU] + 5257 Metronic 495257 wifi 802.11ng +6000 Beholder International Ltd. + dec0 TV Wander + dec1 TV Voyage +601a Ingenic Semiconductor Ltd. + 4740 XBurst Jz4740 boot mode +6189 Sitecom + 182d USB 2.0 Ethernet + 2068 USB to serial cable (v2) +6253 TwinHan Technology Co., Ltd + 0100 Ir reciver f. remote control +636c CoreLogic, Inc. +6472 Unknown (Sony?) + 01c8 PlayStation Portable [Mass Storage] +6547 Arkmicro Technologies Inc. + 0232 ARK3116 Serial +6615 IRTOUCHSYSTEMS Co. Ltd. + 0001 Touchscreen +6666 Prototype product Vendor ID + 0667 WiseGroup Smart Joy PSX, PS-PC Smart JoyPad + 2667 JCOP BlueZ Smartcard reader + 8802 SmartJoy Dual Plus PS2 converter + 8804 WiseGroup SuperJoy Box 5 +6677 WiseGroup, Ltd. + 8802 SmartJoy Dual Plus PS2 converter + 8811 Deluxe Dance Mat +6891 3Com + a727 3CRUSB10075 802.11bg [ZyDAS ZD1211] +695c Opera1 + 3829 Opera1 DVB-S (warm state) +6993 Yealink Network Technology Co., Ltd. + b001 VoIP Phone +6a75 Shanghai Jujo Electronics Co., Ltd +7104 CME (Central Music Co.) + 2202 UF5/UF6/UF7/UF8 MIDI Master Keyboard +726c StackFoundry LLC + 2149 EntropyKing Random Number Generator +734c TBS Technologies China + 5920 Q-Box II DVB-S2 HD + 5928 Q-Box II DVB-S2 HD +7392 Edimax Technology Co., Ltd + 7711 EW-7711UTn nLite Wireless Adapter [Ralink RT2870] + 7717 EW-7717UN 802.11n Wireless Adapter [Ralink RT2870] + 7718 EW-7718UN 802.11n Wireless Adapter [Ralink RT2870] + 7722 EW-7722UTn 802.11n Wireless Adapter [Ralink RT307x] + 7811 EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS] +8086 Intel Corp. + 0001 AnyPoint (TM) Home Network 1.6 Mbps Wireless Adapter + 0044 CPU DRAM Controller + 0046 HD Graphics + 0100 Personal Audio Player 3000 + 0101 Personal Audio Player 3000 + 0110 Easy PC Camera + 0120 PC Camera CS120 + 0180 WiMAX Connection 2400m + 0181 WiMAX Connection 2400m + 0182 WiMAX Connection 2400m + 0186 WiMAX Connection 2400m + 0188 WiMAX Connection 2400m + 0200 AnyPoint(TM) Wireless II Network 11Mbps Adapter [Atmel AT76C503A] + 0431 Intel Pro Video PC Camera + 0510 Digital Movie Creator + 0630 Pocket PC Camera + 0780 CS780 Microphone Input + 07d3 BLOB boot loader firmware + 0dad Cherry MiniatureCard Keyboard + 1010 AnyPoint(TM) Home Network 10 Mbps Phoneline Adapter + 110a Bluetooth Controller from (Ericsson P4A) + 110b Bluetooth Controller from (Intel/CSR) + 1110 PRO/Wireless LAN Module + 1111 PRO/Wireless 2011B 802.11b Adapter [Intersil PRISM 2.5] + 1134 Hollister Mobile Monitor + 1139 In-Target Probe (ITP) + 1234 Prototype Reader/Writer + 1403 WiMAX Connection 2400m + 1405 WiMAX Connection 2400m + 1406 WiMAX Connection 2400m + 2448 82801 PCI Bridge + 3100 PRO/DSL 3220 Modem - WAN + 3101 PRO/DSL 3220 Modem + 3240 AnyPoint® 3240 Modem - WAN + 3241 AnyPoint® 3240 Modem + 8602 Miniature Card Slot + 9303 Intel 8x930Hx Hub + 9500 CE 9500 DVB-T + 9890 82930 Test Board + beef SCM Miniature Card Reader/Writer + c013 Wireless HID Station + f001 XScale PXA27x Bulverde flash + f1a5 Z-U130 [Value Solid State Drive] +8087 Intel Corp. + 0020 Integrated Rate Matching Hub + 0024 Integrated Rate Matching Hub +80ee VirtualBox + 0021 USB Tablet +8282 Keio + 3201 Retro Adapter + 3301 Retro Adapter Mouse +8341 EGO Systems, Inc. + 2000 Flashdisk +9016 Sitecom + 182d WL-022 802.11b Adapter +9022 TeVii Technology Ltd. + d630 DVB-S S630 + d650 DVB-S2 S650 + d660 DVB-S2 S660 +9148 GeoLab, Ltd +# All of GeoLab's devices share the same ID 0004. + 0004 R3 Compatible Device +9710 MosChip Semiconductor + 7703 MCS7703 Serial Port Adapter + 7705 MCS7705 Parallel port adapter + 7715 MCS7715 Parallel and serial port adapter + 7717 MCS7717 3-port hub with serial and parallel adapter + 7720 MCS7720 Dual serial port adapter + 7730 MCS7730 10/100 Mbps Ethernet adapter + 7780 MCS7780 4Mbps Fast IrDA Adapter + 7830 MCS7830 10/100 Mbps Ethernet adapter + 7832 MCS7832 10/100 Mbps Ethernet adapter + 7840 MCS7820/MCS7840 2/4 port serial adapter +99fa Grandtec + 8988 V.cap Camera Device +9ac4 J. Westhues + 4b8f ProxMark-3 RFID Instrument +a128 AnMo Electronics Corp. / Dino-Lite (?) + 0610 Dino-Lite Digital Microscope (SN9C201 + HV7131R) + 0611 Dino-Lite Digital Microscope (SN9C201 + HV7131R) + 0612 Dino-Lite Digital Microscope (SN9C120 + HV7131R) + 0613 Dino-Lite Digital Microscope (SN9C201 + HV7131R) + 0614 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111) + 0615 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111) + 0616 Dino-Lite Digital Microscope (SN9C120 + HV7131R) + 0617 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111) + 0618 Dino-Lite Digital Microscope (SN9C201 + HV7131R) +a168 AnMo Electronics Corporation + 0610 Dino-Lite Digital Microscope + 0611 Dino-Lite Digital Microscope + 0613 Dino-Lite Digital Microscope + 0614 Dino-Lite Pro Digital Microscope + 0615 Dino-Lite Pro Digital Microscope + 0617 Dino-Lite Pro Digital Microscope + 0618 Dino-Lite Digital Microscope +a600 Asix + e110 OK1ZIA Davac 4.x +a727 3Com + 6893 3CRUSB20075 OfficeConnect Wireless 108Mbps 11g Adapter [Atheros AR5523] + 6895 AR5523 + 6897 AR5523 +abcd Unknown + cdee Petcam +c251 Keil Software, Inc. + 2710 ULink +cace CACE Technologies Inc. + 0002 AirPCAP Classic 802.11 packet capture adapter + 0300 AirPcap NX [Atheros AR9001U-(2)NG] +d209 Ultimarc + 0301 I-PAC Arcade Control Interface + 0501 Ultra-Stik Ultimarc Ultra-Stik Player 1 +e4e4 Xorcom Ltd. + 1130 Astribank series + 1131 Astribank series + 1132 Astribank series + 1140 Astribank series + 1141 Astribank series + 1142 Astribank series + 1150 Astribank series + 1151 Astribank series + 1152 Astribank series + 1160 Astribank 2 series + 1161 Astribank 2 series + 1162 Astribank 2 series +eb03 MakingThings + 0920 Make Controller Kit +eb1a eMPIA Technology, Inc. + 17de KWorld V-Stream XPERT DTV - DVB-T USB cold + 17df KWorld V-Stream XPERT DTV - DVB-T USB warm + 2571 M035 Compact Web Cam + 2710 SilverCrest Webcam + 2750 ECS Elitegroup G220 integrated Webcam + 2761 EeePC 701 integrated Webcam + 2776 Combined audio and video input device + 2800 Terratec Cinergy 200 + 2801 GrabBeeX+ Video Encoder + 2863 Video Grabber + 2870 Pinnacle PCTV Stick + 2881 EM2881 Video Controller + 50a3 Gadmei UTV380 TV Box + 50a6 Gadmei UTV330 TV Box + e355 KWorld DVB-T 355U Digital TV Dongle +eb2a KWorld +f003 Hewlett Packard + 6002 PhotoSmart C500 +f4ec Atten Electronics / Siglent Technologies + ee38 Digital Storage Oscilloscope + +# List of known device classes, subclasses and protocols + +# Syntax: +# C class class_name +# subclass subclass_name <-- single tab +# protocol protocol_name <-- two tabs + +C 00 (Defined at Interface level) +C 01 Audio + 01 Control Device + 02 Streaming + 03 MIDI Streaming +C 02 Communications + 01 Direct Line + 02 Abstract (modem) + 00 None + 01 AT-commands (v.25ter) + 02 AT-commands (PCCA101) + 03 AT-commands (PCCA101 + wakeup) + 04 AT-commands (GSM) + 05 AT-commands (3G) + 06 AT-commands (CDMA) + fe Defined by command set descriptor + ff Vendor Specific (MSFT RNDIS?) + 03 Telephone + 04 Multi-Channel + 05 CAPI Control + 06 Ethernet Networking + 07 ATM Networking + 08 Wireless Handset Control + 09 Device Management + 0a Mobile Direct Line + 0b OBEX + 0c Ethernet Emulation + 07 Ethernet Emulation (EEM) +C 03 Human Interface Device + 00 No Subclass + 00 None + 01 Keyboard + 02 Mouse + 01 Boot Interface Subclass + 00 None + 01 Keyboard + 02 Mouse +C 05 Physical Interface Device +C 06 Imaging + 01 Still Image Capture + 01 Picture Transfer Protocol (PIMA 15470) +C 07 Printer + 01 Printer + 00 Reserved/Undefined + 01 Unidirectional + 02 Bidirectional + 03 IEEE 1284.4 compatible bidirectional + ff Vendor Specific +C 08 Mass Storage + 01 RBC (typically Flash) + 00 Control/Bulk/Interrupt + 01 Control/Bulk + 50 Bulk (Zip) + 02 SFF-8020i, MMC-2 (ATAPI) + 03 QIC-157 + 04 Floppy (UFI) + 00 Control/Bulk/Interrupt + 01 Control/Bulk + 50 Bulk (Zip) + 05 SFF-8070i + 06 SCSI + 00 Control/Bulk/Interrupt + 01 Control/Bulk + 50 Bulk (Zip) +C 09 Hub + 00 Unused + 00 Full speed (or root) hub + 01 Single TT + 02 TT per port +C 0a CDC Data + 00 Unused + 30 I.430 ISDN BRI + 31 HDLC + 32 Transparent + 50 Q.921M + 51 Q.921 + 52 Q.921TM + 90 V.42bis + 91 Q.932 EuroISDN + 92 V.120 V.24 rate ISDN + 93 CAPI 2.0 + fd Host Based Driver + fe CDC PUF + ff Vendor specific +C 0b Chip/SmartCard +C 0d Content Security +C 0e Video + 00 Undefined + 01 Video Control + 02 Video Streaming + 03 Video Interface Collection +C 58 Xbox + 42 Controller +C dc Diagnostic + 01 Reprogrammable Diagnostics + 01 USB2 Compliance +C e0 Wireless + 01 Radio Frequency + 01 Bluetooth + 02 Ultra WideBand Radio Control + 03 RNDIS + 02 Wireless USB Wire Adapter + 01 Host Wire Adapter Control/Data Streaming + 02 Device Wire Adapter Control/Data Streaming + 03 Device Wire Adapter Isochronous Streaming +C ef Miscellaneous Device + 01 ? + 01 Microsoft ActiveSync + 02 Palm Sync + 02 ? + 01 Interface Association + 02 Wire Adapter Multifunction Peripheral + 03 ? + 01 Cable Based Association +C fe Application Specific Interface + 01 Device Firmware Update + 02 IRDA Bridge + 03 Test and Measurement + 01 TMC + 02 USB488 +C ff Vendor Specific Class + ff Vendor Specific Subclass + ff Vendor Specific Protocol + +# List of Audio Class Terminal Types + +# Syntax: +# AT terminal_type terminal_type_name + +AT 0100 USB Undefined +AT 0101 USB Streaming +AT 01ff USB Vendor Specific +AT 0200 Input Undefined +AT 0201 Microphone +AT 0202 Desktop Microphone +AT 0203 Personal Microphone +AT 0204 Omni-directional Microphone +AT 0205 Microphone Array +AT 0206 Processing Microphone Array +AT 0300 Output Undefined +AT 0301 Speaker +AT 0302 Headphones +AT 0303 Head Mounted Display Audio +AT 0304 Desktop Speaker +AT 0305 Room Speaker +AT 0306 Communication Speaker +AT 0307 Low Frequency Effects Speaker +AT 0400 Bidirectional Undefined +AT 0401 Handset +AT 0402 Headset +AT 0403 Speakerphone, no echo reduction +AT 0404 Echo-suppressing speakerphone +AT 0405 Echo-canceling speakerphone +AT 0500 Telephony Undefined +AT 0501 Phone line +AT 0502 Telephone +AT 0503 Down Line Phone +AT 0600 External Undefined +AT 0601 Analog Connector +AT 0602 Digital Audio Interface +AT 0603 Line Connector +AT 0604 Legacy Audio Connector +AT 0605 SPDIF interface +AT 0606 1394 DA stream +AT 0607 1394 DV stream soundtrack +AT 0700 Embedded Undefined +AT 0701 Level Calibration Noise Source +AT 0702 Equalization Noise +AT 0703 CD Player +AT 0704 DAT +AT 0705 DCC +AT 0706 MiniDisc +AT 0707 Analog Tape +AT 0708 Phonograph +AT 0709 VCR Audio +AT 070a Video Disc Audio +AT 070b DVD Audio +AT 070c TV Tuner Audio +AT 070d Satellite Receiver Audio +AT 070e Cable Tuner Audio +AT 070f DSS Audio +AT 0710 Radio Receiver +AT 0711 Radio Transmitter +AT 0712 Multitrack Recorder +AT 0713 Synthesizer + +# List of HID Descriptor Types + +# Syntax: +# HID descriptor_type descriptor_type_name + +HID 21 HID +HID 22 Report +HID 23 Physical + +# List of HID Descriptor Item Types +# Note: 2 bits LSB encode data length following + +# Syntax: +# R item_type item_type_name + +R 04 Usage Page +R 08 Usage +R 14 Logical Minimum +R 18 Usage Minimum +R 24 Logical Maximum +R 28 Usage Maximum +R 34 Physical Minimum +R 38 Designator Index +R 44 Physical Maximum +R 48 Designator Minimum +R 54 Unit Exponent +R 58 Designator Maximum +R 64 Unit +R 74 Report Size +R 78 String Index +R 80 Input +R 84 Report ID +R 88 String Minimum +R 90 Output +R 94 Report Count +R 98 String Maximum +R a0 Collection +R a4 Push +R a8 Delimiter +R b0 Feature +R b4 Pop +R c0 End Collection + +# List of Physical Descriptor Bias Types + +# Syntax: +# BIAS item_type item_type_name + +BIAS 0 Not Applicable +BIAS 1 Right Hand +BIAS 2 Left Hand +BIAS 3 Both Hands +BIAS 4 Either Hand + +# List of Physical Descriptor Item Types + +# Syntax: +# PHY item_type item_type_name + +PHY 00 None +PHY 01 Hand +PHY 02 Eyeball +PHY 03 Eyebrow +PHY 04 Eyelid +PHY 05 Ear +PHY 06 Nose +PHY 07 Mouth +PHY 08 Upper Lip +PHY 09 Lower Lip +PHY 0a Jaw +PHY 0b Neck +PHY 0c Upper Arm +PHY 0d Elbow +PHY 0e Forearm +PHY 0f Wrist +PHY 10 Palm +PHY 11 Thumb +PHY 12 Index Finger +PHY 13 Middle Finger +PHY 14 Ring Finger +PHY 15 Little Finger +PHY 16 Head +PHY 17 Shoulder +PHY 18 Hip +PHY 19 Waist +PHY 1a Thigh +PHY 1b Knee +PHY 1c calf +PHY 1d Ankle +PHY 1e Foot +PHY 1f Heel +PHY 20 Ball of Foot +PHY 21 Big Toe +PHY 22 Second Toe +PHY 23 Third Toe +PHY 24 Fourth Toe +PHY 25 Fifth Toe +PHY 26 Brow +PHY 27 Cheek + +# List of HID Usages + +# Syntax: +# HUT hi _usage_page hid_usage_page_name +# hid_usage hid_usage_name + +HUT 00 Undefined +HUT 01 Generic Desktop Controls + 000 Undefined + 001 Pointer + 002 Mouse + 004 Joystick + 005 Gamepad + 006 Keyboard + 007 Keypad + 008 Multi-Axis Controller + 030 Direction-X + 031 Direction-Y + 032 Direction-Z + 033 Rotate-X + 034 Rotate-Y + 035 Rotate-Z + 036 Slider + 037 Dial + 038 Wheel + 039 Hat Switch + 03a Counted Buffer + 03b Byte Count + 03c Motion Wakeup + 03d Start + 03e Select + 040 Vector-X + 041 Vector-Y + 042 Vector-Z + 043 Vector-X relative Body + 044 Vector-Y relative Body + 045 Vector-Z relative Body + 046 Vector + 080 System Control + 081 System Power Down + 082 System Sleep + 083 System Wake Up + 084 System Context Menu + 085 System Main Menu + 086 System App Menu + 087 System Menu Help + 088 System Menu Exit + 089 System Menu Select + 08a System Menu Right + 08b System Menu Left + 08c System Menu Up + 08d System Menu Down + 090 Direction Pad Up + 091 Direction Pad Down + 092 Direction Pad Right + 093 Direction Pad Left +HUT 02 Simulation Controls + 000 Undefined + 001 Flight Simulation Device + 002 Automobile Simulation Device + 003 Tank Simulation Device + 004 Spaceship Simulation Device + 005 Submarine Simulation Device + 006 Sailing Simulation Device + 007 Motorcycle Simulation Device + 008 Sports Simulation Device + 009 Airplane Simualtion Device + 00a Helicopter Simulation Device + 00b Magic Carpet Simulation Device + 00c Bicycle Simulation Device + 020 Flight Control Stick + 021 Flight Stick + 022 Cyclic Control + 023 Cyclic Trim + 024 Flight Yoke + 025 Track Control + 0b0 Aileron + 0b1 Aileron Trim + 0b2 Anti-Torque Control + 0b3 Autopilot Enable + 0b4 Chaff Release + 0b5 Collective Control + 0b6 Dive Break + 0b7 Electronic Countermeasures + 0b8 Elevator + 0b9 Elevator Trim + 0ba Rudder + 0bb Throttle + 0bc Flight COmmunications + 0bd Flare Release + 0be Landing Gear + 0bf Toe Break + 0c0 Trigger + 0c1 Weapon Arm + 0c2 Weapons Select + 0c3 Wing Flaps + 0c4 Accelerator + 0c5 Brake + 0c6 Clutch + 0c7 Shifter + 0c8 Steering + 0c9 Turret Direction + 0ca Barrel Elevation + 0cb Drive Plane + 0cc Ballast + 0cd Bicylce Crank + 0ce Handle Bars + 0cf Front Brake + 0d0 Rear Brake +HUT 03 VR Controls + 000 Unidentified + 001 Belt + 002 Body Suit + 003 Flexor + 004 Glove + 005 Head Tracker + 006 Head Mounted Display + 007 Hand Tracker + 008 Oculometer + 009 Vest + 00a Animatronic Device + 020 Stereo Enable + 021 Display Enable +HUT 04 Sport Controls + 000 Unidentified + 001 Baseball Bat + 002 Golf Club + 003 Rowing Machine + 004 Treadmill + 030 Oar + 031 Slope + 032 Rate + 033 Stick Speed + 034 Stick Face Angle + 035 Stick Heel/Toe + 036 Stick Follow Through + 038 Stick Type + 039 Stick Height + 047 Stick Temp + 050 Putter + 051 1 Iron + 052 2 Iron + 053 3 Iron + 054 4 Iron + 055 5 Iron + 056 6 Iron + 057 7 Iron + 058 8 Iron + 059 9 Iron + 05a 10 Iron + 05b 11 Iron + 05c Sand Wedge + 05d Loft Wedge + 05e Power Wedge + 05f 1 Wood + 060 3 Wood + 061 5 Wood + 062 7 Wood + 063 9 Wood +HUT 05 Game Controls + 000 Undefined + 001 3D Game Controller + 002 Pinball Device + 003 Gun Device + 020 Point Of View + 021 Turn Right/Left + 022 Pitch Right/Left + 023 Roll Forward/Backward + 024 Move Right/Left + 025 Move Forward/Backward + 026 Move Up/Down + 027 Lean Right/Left + 028 Lean Forward/Backward + 029 Height of POV + 02a Flipper + 02b Secondary Flipper + 02c Bump + 02d New Game + 02e Shoot Ball + 02f Player + 030 Gun Bolt + 031 Gun Clip + 032 Gun Selector + 033 Gun Single Shot + 034 Gun Burst + 035 Gun Automatic + 036 Gun Safety + 037 Gamepad Fire/Jump + 038 Gamepad Fun + 039 Gamepad Trigger +HUT 07 Keyboard + 000 No Event + 001 Keyboard ErrorRollOver + 002 Keyboard POSTfail + 003 Keyboard Error Undefined + 004 A + 005 B + 006 C + 007 D + 008 E + 009 F + 00a G + 00b H + 00c I + 00d J + 00e K + 00f L + 010 M + 011 N + 012 O + 013 P + 014 Q + 015 R + 016 S + 017 T + 018 U + 019 V + 01a W + 01b X + 01c Y + 01d Z + 01e 1 and ! (One and Exclamation) + 01f 2 and @ (2 and at) + 020 3 and # (3 and Hash) + 021 4 and $ (4 and Dollar Sign) + 022 5 and % (5 and Percent Sign) + 023 6 and ^ (6 and circumflex) + 024 7 and & (Seven and Ampersand) + 025 8 and * (Eight and asterisk) + 026 9 and ( (Nine and Parenthesis Left) + 027 0 and ) (Zero and Parenthesis Right) + 028 Return (Enter) + 029 Escape + 02a Delete (Backspace) + 02b Tab + 02c Space Bar + 02d - and _ (Minus and underscore) + 02e = and + (Equal and Plus) + 02f [ and { (Bracket and Braces Left) + 030 ] and } (Bracket and Braces Right) + 031 \ and | (Backslash and Bar) + 032 # and ~ (Hash and Tilde, Non-US Keyboard near right shift) + 033 ; and : (Semicolon and Colon) + 034 ´ and " (Accent Acute and Double Quotes) + 035 ` and ~ (Accent Grace and Tilde) + 036 , and < (Comma and Less) + 037 . and > (Period and Greater) + 038 / and ? (Slash and Question Mark) + 039 Caps Lock + 03a F1 + 03b F2 + 03c F3 + 03d F4 + 03e F5 + 03f F6 + 040 F7 + 041 F8 + 042 F9 + 043 F10 + 044 F11 + 045 F12 + 046 Print Screen + 047 Scroll Lock + 048 Pause + 049 Insert + 04a Home + 04b Page Up + 04c Delete Forward (without Changing Position) + 04d End + 04e Page Down + 04f Right Arrow + 050 Left Arrow + 051 Down Arrow + 052 Up Arrow + 053 Num Lock and Clear + 054 Keypad / (Division Sign) + 055 Keypad * (Multiplication Sign) + 056 Keypad - (Subtraction Sign) + 057 Keypad + (Addition Sign) + 058 Keypad Enter + 059 Keypad 1 and END + 05a Keypad 2 and Down Arrow + 05b Keypad 3 and Page Down + 05c Keypad 4 and Left Arrow + 05d Keypad 5 (Tactilei Raised) + 05f Keypad 6 and Right Arrow + 060 Keypad 7 and Home + 061 Keypad 8 and Up Arrow + 062 Keypad 8 and Page Up + 063 Keypad . (decimal delimiter) and Delete + 064 \ and | (Backslash and Bar, UK and Non-US Keyboard near left shift) + 065 Keyboard Application (Windows Key for Win95 or Compose) + 066 Power (not a key) + 067 Keypad = (Equal Sign) + 068 F13 + 069 F14 + 06a F15 + 06b F16 + 06c F17 + 06d F18 + 06e F19 + 06f F20 + 070 F21 + 071 F22 + 072 F23 + 073 F24 + 074 Execute + 075 Help + 076 Menu + 077 Select + 078 Stop + 079 Again + 07a Undo + 07b Cut + 07c Copy + 07d Paste + 07e Find + 07f Mute + 080 Volume Up + 081 Volume Down + 082 Locking Caps Lock + 083 Locking Num Lock + 084 Locking Scroll Lock + 085 Keypad Comma + 086 Keypad Equal Sign (AS/400) + 087 International 1 (PC98) + 088 International 2 (PC98) + 089 International 3 (PC98) + 08a International 4 (PC98) + 08b International 5 (PC98) + 08c International 6 (PC98) + 08d International 7 (Toggle Single/Double Byte Mode) + 08e International 8 + 08f International 9 + 090 LANG 1 (Hangul/English Toggle, Korea) + 091 LANG 2 (Hanja Conversion, Korea) + 092 LANG 3 (Katakana, Japan) + 093 LANG 4 (Hiragana, Japan) + 094 LANG 5 (Zenkaku/Hankaku, Japan) + 095 LANG 6 + 096 LANG 7 + 097 LANG 8 + 098 LANG 9 + 099 Alternate Erase + 09a SysReq/Attention + 09b Cancel + 09c Clear + 09d Prior + 09e Return + 09f Separator + 0a0 Out + 0a1 Open + 0a2 Clear/Again + 0a3 CrSel/Props + 0a4 ExSel + 0e0 Control Left + 0e1 Shift Left + 0e2 Alt Left + 0e3 GUI Left + 0e4 Control Right + 0e5 Shift Right + 0e6 Alt Rigth + 0e7 GUI Right +HUT 08 LEDs + 000 Undefined + 001 NumLock + 002 CapsLock + 003 Scroll Lock + 004 Compose + 005 Kana + 006 Power + 007 Shift + 008 Do not disturb + 009 Mute + 00a Tone Enabke + 00b High Cut Filter + 00c Low Cut Filter + 00d Equalizer Enable + 00e Sound Field ON + 00f Surround On + 010 Repeat + 011 Stereo + 012 Sampling Rate Detect + 013 Spinning + 014 CAV + 015 CLV + 016 Recording Format Detect + 017 Off-Hook + 018 Ring + 019 Message Waiting + 01a Data Mode + 01b Battery Operation + 01c Battery OK + 01d Battery Low + 01e Speaker + 01f Head Set + 020 Hold + 021 Microphone + 022 Coverage + 023 Night Mode + 024 Send Calls + 025 Call Pickup + 026 Conference + 027 Stand-by + 028 Camera On + 029 Camera Off + 02a On-Line + 02b Off-Line + 02c Busy + 02d Ready + 02e Paper-Out + 02f Paper-Jam + 030 Remote + 031 Forward + 032 Reverse + 033 Stop + 034 Rewind + 035 Fast Forward + 036 Play + 037 Pause + 038 Record + 039 Error + 03a Usage Selected Indicator + 03b Usage In Use Indicator + 03c Usage Multi Indicator + 03d Indicator On + 03e Indicator Flash + 03f Indicator Slow Blink + 040 Indicator Fast Blink + 041 Indicator Off + 042 Flash On Time + 043 Slow Blink On Time + 044 Slow Blink Off Time + 045 Fast Blink On Time + 046 Fast Blink Off Time + 047 Usage Color Indicator + 048 Indicator Red + 049 Indicator Green + 04a Indicator Amber + 04b Generic Indicator + 04c System Suspend + 04d External Power Connected +HUT 09 Buttons + 000 No Button Pressed + 001 Button 1 (Primary) + 002 Button 2 (Secondary) + 003 Button 3 (Tertiary) + 004 Button 4 + 005 Button 5 +HUT 0a Ordinal + 001 Instance 1 + 002 Instance 2 + 003 Instance 3 +HUT 0b Telephony + 000 Unassigned + 001 Phone + 002 Answering Machine + 003 Message Controls + 004 Handset + 005 Headset + 006 Telephony Key Pad + 007 Programmable Button + 020 Hook Switch + 021 Flash + 022 Feature + 023 Hold + 024 Redial + 025 Transfer + 026 Drop + 027 Park + 028 Forward Calls + 029 Alternate Function + 02a Line + 02b Speaker Phone + 02c Conference + 02d Ring Enable + 02e Ring Select + 02f Phone Mute + 030 Caller ID + 050 Speed Dial + 051 Store Number + 052 Recall Number + 053 Phone Directory + 070 Voice Mail + 071 Screen Calls + 072 Do Not Disturb + 073 Message + 074 Answer On/Offf + 090 Inside Dial Tone + 091 Outside Dial Tone + 092 Inside Ring Tone + 093 Outside Ring Tone + 094 Priority Ring Tone + 095 Inside Ringback + 096 Priority Ringback + 097 Line Busy Tone + 098 Recorder Tone + 099 Call Waiting Tone + 09a Confirmation Tone 1 + 09b Confirmation Tone 2 + 09c Tones Off + 09d Outside Ringback + 0b0 Key 1 + 0b1 Key 2 + 0b3 Key 3 + 0b4 Key 4 + 0b5 Key 5 + 0b6 Key 6 + 0b7 Key 7 + 0b8 Key 8 + 0b9 Key 9 + 0ba Key Star + 0bb Key Pound + 0bc Key A + 0bd Key B + 0be Key C + 0bf Key D +HUT 0c Consumer + 000 Unassigned + 001 Consumer Control + 002 Numeric Key Pad + 003 Programmable Buttons + 020 +10 + 021 +100 + 022 AM/PM + 030 Power + 031 Reset + 032 Sleep + 033 Sleep After + 034 Sleep Mode + 035 Illumination + 036 Function Buttons + 040 Menu + 041 Menu Pick + 042 Menu Up + 043 Menu Down + 044 Menu Left + 045 Menu Right + 046 Menu Escape + 047 Menu Value Increase + 048 Menu Value Decrease + 060 Data on Screen + 061 Closed Caption + 062 Closed Caption Select + 063 VCR/TV + 064 Broadcast Mode + 065 Snapshot + 066 Still + 080 Selection + 081 Assign Selection + 082 Mode Step + 083 Recall Last + 084 Enter Channel + 085 Order Movie + 086 Channel + 087 Media Selection + 088 Media Select Computer + 089 Media Select TV + 08a Media Select WWW + 08b Media Select DVD + 08c Media Select Telephone + 08d Media Select Program Guide + 08e Media Select Video Phone + 08f Media Select Games + 090 Media Select Messages + 091 Media Select CD + 092 Media Select VCR + 093 Media Select Tuner + 094 Quit + 095 Help + 096 Media Select Tape + 097 Media Select Cable + 098 Media Select Satellite + 099 Media Select Security + 09a Media Select Home + 09b Media Select Call + 09c Channel Increment + 09d Channel Decrement + 09e Media Select SAP + 0a0 VCR Plus + 0a1 Once + 0a2 Daily + 0a3 Weekly + 0a4 Monthly + 0b0 Play + 0b1 Pause + 0b2 Record + 0b3 Fast Forward + 0b4 Rewind + 0b5 Scan Next Track + 0b6 Scan Previous Track + 0b7 Stop + 0b8 Eject + 0b9 Random Play + 0ba Select Disc + 0bb Enter Disc + 0bc Repeat + 0bd Tracking + 0be Track Normal + 0bf Slow Tracking + 0c0 Frame Forward + 0c1 Frame Back + 0c2 Mark + 0c3 Clear Mark + 0c4 Repeat from Mark + 0c5 Return to Mark + 0c6 Search Mark Forward + 0c7 Search Mark Backward + 0c8 Counter Reset + 0c9 Show Counter + 0ca Tracking Increment + 0cb Tracking Decrement + 0cc Stop/Eject + 0cd Play/Pause + 0ce Play/Skip + 0e0 Volume + 0e1 Balance + 0e2 Mute + 0e3 Bass + 0e4 Treble + 0e5 Bass Boost + 0e6 Surround Mode + 0e7 Loudness + 0e8 MPX + 0e9 Volume Increment + 0ea Volume Decrement + 0f0 Speed Select + 0f1 Playback Speed + 0f2 Standard Play + 0f3 Long Play + 0f4 Extended Play + 0f5 Slow + 100 Fan Enable + 101 Fan Speed + 102 Light Enable + 103 Light Illumination Level + 104 Climate Control Enable + 105 Room Temperature + 106 Security Enable + 107 Fire Alarm + 108 Police Alarm + 150 Balance Right + 151 Balance Left + 152 Bass Increment + 153 Bass Decrement + 154 Treble Increment + 155 Treble Decrement + 160 Speaker System + 161 Channel Left + 162 Channel Right + 163 Channel Center + 164 Channel Front + 165 Channel Center Front + 166 Channel Side + 167 Channel Surround + 168 Channel Low Frequency Enhancement + 169 Channel Top + 16a Channel Unknown + 170 Sub-Channel + 171 Sub-Channel Increment + 172 Sub-Channel Decrement + 173 Alternative Audio Increment + 174 Alternative Audio Decrement + 180 Application Launch Buttons + 181 AL Launch Button Configuration Tool + 182 AL Launch Button Configuration + 183 AL Consumer Control Configuration + 184 AL Word Processor + 185 AL Text Editor + 186 AL Spreadsheet + 187 AL Graphics Editor + 188 AL Presentation App + 189 AL Database App + 18a AL Email Reader + 18b AL Newsreader + 18c AL Voicemail + 18d AL Contacts/Address Book + 18e AL Calendar/Schedule + 18f AL Task/Project Manager + 190 AL Log/Jounal/Timecard + 191 AL Checkbook/Finance + 192 AL Calculator + 193 AL A/V Capture/Playback + 194 AL Local Machine Browser + 195 AL LAN/Wan Browser + 196 AL Internet Browser + 197 AL Remote Networking/ISP Connect + 198 AL Network Conference + 199 AL Network Chat + 19a AL Telephony/Dialer + 19b AL Logon + 19c AL Logoff + 19d AL Logon/Logoff + 19e AL Terminal Local/Screensaver + 19f AL Control Panel + 1a0 AL Command Line Processor/Run + 1a1 AL Process/Task Manager + 1a2 AL Select Task/Application + 1a3 AL Next Task/Application + 1a4 AL Previous Task/Application + 1a5 AL Preemptive Halt Task/Application + 200 Generic GUI Application Controls + 201 AC New + 202 AC Open + 203 AC CLose + 204 AC Exit + 205 AC Maximize + 206 AC Minimize + 207 AC Save + 208 AC Print + 209 AC Properties + 21a AC Undo + 21b AC Copy + 21c AC Cut + 21d AC Paste + 21e AC Select All + 21f AC Find + 220 AC Find and Replace + 221 AC Search + 222 AC Go To + 223 AC Home + 224 AC Back + 225 AC Forward + 226 AC Stop + 227 AC Refresh + 228 AC Previous Link + 229 AC Next Link + 22b AC History + 22c AC Subscriptions + 22d AC Zoom In + 22e AC Zoom Out + 22f AC Zoom + 230 AC Full Screen View + 231 AC Normal View + 232 AC View Toggle + 233 AC Scroll Up + 234 AC Scroll Down + 235 AC Scroll + 236 AC Pan Left + 237 AC Pan Right + 238 AC Pan + 239 AC New Window + 23a AC Tile Horizontally + 23b AC Tile Vertically + 23c AC Format +HUT 0d Digitizer + 000 Undefined + 001 Digitizer + 002 Pen + 003 Light Pen + 004 Touch Screen + 005 Touch Pad + 006 White Board + 007 Coordinate Measuring Machine + 008 3D Digitizer + 009 Stereo Plotter + 00a Articulated Arm + 00b Armature + 00c Multiple Point Digitizer + 00d Free Space Wand + 020 Stylus + 021 Puck + 022 Finger + 030 Tip Pressure + 031 Barrel Pressure + 032 In Range + 033 Touch + 034 Untouch + 035 Tap + 036 Quality + 037 Data Valid + 038 Transducer Index + 039 Tablet Function Keys + 03a Program Change Keys + 03b Battery Strength + 03c Invert + 03d X Tilt + 03e Y Tilt + 03f Azimuth + 040 Altitude + 041 Twist + 042 Tip Switch + 043 Secondary Tip Switch + 044 Barrel Switch + 045 Eraser + 046 Tablet Pick + 047 Confidence + 048 Width + 049 Height + 051 Contact ID + 052 Input Mode + 053 Device Index + 054 Contact Count + 055 Maximum Contact Number +HUT 0f PID Page + 000 Undefined + 001 Physical Interface Device + 020 Normal + 021 Set Effect Report + 022 Effect Block Index + 023 Parameter Block Offset + 024 ROM Flag + 025 Effect Type + 026 ET Constant Force + 027 ET Ramp + 028 ET Custom Force Data + 030 ET Square + 031 ET Sine + 032 ET Triangle + 033 ET Sawtooth Up + 034 ET Sawtooth Down + 040 ET Spring + 041 ET Damper + 042 ET Inertia + 043 ET Friction + 050 Duration + 051 Sample Period + 052 Gain + 053 Trigger Button + 054 Trigger Repeat Interval + 055 Axes Enable + 056 Direction Enable + 057 Direction + 058 Type Specific Block Offset + 059 Block Type + 05A Set Envelope Report + 05B Attack Level + 05C Attack Time + 05D Fade Level + 05E Fade Time + 05F Set Condition Report + 060 CP Offset + 061 Positive Coefficient + 062 Negative Coefficient + 063 Positive Saturation + 064 Negative Saturation + 065 Dead Band + 066 Download Force Sample + 067 Isoch Custom Force Enable + 068 Custom Force Data Report + 069 Custom Force Data + 06A Custom Force Vendor Defined Data + 06B Set Custom Force Report + 06C Custom Force Data Offset + 06D Sample Count + 06E Set Periodic Report + 06F Offset + 070 Magnitude + 071 Phase + 072 Period + 073 Set Constant Force Report + 074 Set Ramp Force Report + 075 Ramp Start + 076 Ramp End + 077 Effect Operation Report + 078 Effect Operation + 079 Op Effect Start + 07A Op Effect Start Solo + 07B Op Effect Stop + 07C Loop Count + 07D Device Gain Report + 07E Device Gain + 07F PID Pool Report + 080 RAM Pool Size + 081 ROM Pool Size + 082 ROM Effect Block Count + 083 Simultaneous Effects Max + 084 Pool Alignment + 085 PID Pool Move Report + 086 Move Source + 087 Move Destination + 088 Move Length + 089 PID Block Load Report + 08B Block Load Status + 08C Block Load Success + 08D Block Load Full + 08E Block Load Error + 08F Block Handle + 090 PID Block Free Report + 091 Type Specific Block Handle + 092 PID State Report + 094 Effect Playing + 095 PID Device Control Report + 096 PID Device Control + 097 DC Enable Actuators + 098 DC Disable Actuators + 099 DC Stop All Effects + 09A DC Device Reset + 09B DC Device Pause + 09C DC Device Continue + 09F Device Paused + 0A0 Actuators Enabled + 0A4 Safety Switch + 0A5 Actuator Override Switch + 0A6 Actuator Power + 0A7 Start Delay + 0A8 Parameter Block Size + 0A9 Device Managed Pool + 0AA Shared Parameter Blocks + 0AB Create New Effect Report + 0AC RAM Pool Available +HUT 10 Unicode +HUT 14 Alphanumeric Display + 000 Undefined + 001 Alphanumeric Display + 020 Display Attributes Report + 021 ASCII Character Set + 022 Data Read Back + 023 Font Read Back + 024 Display Control Report + 025 Clear Display + 026 Display Enable + 027 Screen Saver Delay + 028 Screen Saver Enable + 029 Vertical Scroll + 02a Horizontal Scroll + 02b Character Report + 02c Display Data + 02d Display Status + 02e Stat Not Ready + 02f Stat Ready + 030 Err Not a loadable Character + 031 Err Font Data Cannot Be Read + 032 Cursur Position Report + 033 Row + 034 Column + 035 Rows + 036 Columns + 037 Cursor Pixel Positioning + 038 Cursor Mode + 039 Cursor Enable + 03a Cursor Blink + 03b Font Report + 03c Font Data + 03d Character Width + 03e Character Height + 03f Character Spacing Horizontal + 040 Character Spacing Vertical + 041 Unicode Character Set +HUT 80 USB Monitor + 001 Monitor Control + 002 EDID Information + 003 VDIF Information + 004 VESA Version +HUT 81 USB Monitor Enumerated Values +HUT 82 Monitor VESA Virtual Controls + 001 Degauss + 010 Brightness + 012 Contrast + 016 Red Video Gain + 018 Green Video Gain + 01a Blue Video Gain + 01c Focus + 020 Horizontal Position + 022 Horizontal Size + 024 Horizontal Pincushion + 026 Horizontal Pincushion Balance + 028 Horizontal Misconvergence + 02a Horizontal Linearity + 02c Horizontal Linearity Balance + 030 Vertical Position + 032 Vertical Size + 034 Vertical Pincushion + 036 Vertical Pincushion Balance + 038 Vertical Misconvergence + 03a Vertical Linearity + 03c Vertical Linearity Balance + 040 Parallelogram Balance (Key Distortion) + 042 Trapezoidal Distortion (Key) + 044 Tilt (Rotation) + 046 Top Corner Distortion Control + 048 Top Corner Distortion Balance + 04a Bottom Corner Distortion Control + 04c Bottom Corner Distortion Balance + 056 Horizontal Moire + 058 Vertical Moire + 05e Input Level Select + 060 Input Source Select + 06c Red Video Black Level + 06e Green Video Black Level + 070 Blue Video Black Level + 0a2 Auto Size Center + 0a4 Polarity Horizontal Sychronization + 0a6 Polarity Vertical Synchronization + 0aa Screen Orientation + 0ac Horizontal Frequency in Hz + 0ae Vertical Frequency in 0.1 Hz + 0b0 Settings + 0ca On Screen Display (OSD) + 0d4 Stereo Mode +HUT 84 Power Device Page + 000 Undefined + 001 iName + 002 Present Status + 003 Changed Status + 004 UPS + 005 Power Supply + 010 Battery System + 011 Battery System ID + 012 Battery + 013 Battery ID + 014 Charger + 015 Charger ID + 016 Power Converter + 017 Power Converter ID + 018 Outlet System + 019 Outlet System ID + 01a Input + 01b Input ID + 01c Output + 01d Output ID + 01e Flow + 01f Flow ID + 020 Outlet + 021 Outlet ID + 022 Gang + 023 Gang ID + 024 Power Summary + 025 Power Summary ID + 030 Voltage + 031 Current + 032 Frequency + 033 Apparent Power + 034 Active Power + 035 Percent Load + 036 Temperature + 037 Humidity + 038 Bad Count + 040 Config Voltage + 041 Config Current + 042 Config Frequency + 043 Config Apparent Power + 044 Config Active Power + 045 Config Percent Load + 046 Config Temperature + 047 Config Humidity + 050 Switch On Control + 051 Switch Off Control + 052 Toggle Control + 053 Low Voltage Transfer + 054 High Voltage Transfer + 055 Delay Before Reboot + 056 Delay Before Startup + 057 Delay Before Shutdown + 058 Test + 059 Module Reset + 05a Audible Alarm Control + 060 Present + 061 Good + 062 Internal Failure + 063 Voltage out of range + 064 Frequency out of range + 065 Overload + 066 Over Charged + 067 Over Temperature + 068 Shutdown Requested + 069 Shutdown Imminent + 06a Reserved + 06b Switch On/Off + 06c Switchable + 06d Used + 06e Boost + 06f Buck + 070 Initialized + 071 Tested + 072 Awaiting Power + 073 Communication Lost + 0fd iManufacturer + 0fe iProduct + 0ff iSerialNumber +HUT 85 Battery System Page + 000 Undefined + 001 SMB Battery Mode + 002 SMB Battery Status + 003 SMB Alarm Warning + 004 SMB Charger Mode + 005 SMB Charger Status + 006 SMB Charger Spec Info + 007 SMB Selector State + 008 SMB Selector Presets + 009 SMB Selector Info + 010 Optional Mfg. Function 1 + 011 Optional Mfg. Function 2 + 012 Optional Mfg. Function 3 + 013 Optional Mfg. Function 4 + 014 Optional Mfg. Function 5 + 015 Connection to SMBus + 016 Output Connection + 017 Charger Connection + 018 Battery Insertion + 019 Use Next + 01a OK to use + 01b Battery Supported + 01c SelectorRevision + 01d Charging Indicator + 028 Manufacturer Access + 029 Remaining Capacity Limit + 02a Remaining Time Limit + 02b At Rate + 02c Capacity Mode + 02d Broadcast To Charger + 02e Primary Battery + 02f Charge Controller + 040 Terminate Charge + 041 Terminate Discharge + 042 Below Remaining Capacity Limit + 043 Remaining Time Limit Expired + 044 Charging + 045 Discharging + 046 Fully Charged + 047 Fully Discharged + 048 Conditioning Flag + 049 At Rate OK + 04a SMB Error Code + 04b Need Replacement + 060 At Rate Time To Full + 061 At Rate Time To Empty + 062 Average Current + 063 Max Error + 064 Relative State Of Charge + 065 Absolute State Of Charge + 066 Remaining Capacity + 067 Full Charge Capacity + 068 Run Time To Empty + 069 Average Time To Empty + 06a Average Time To Full + 06b Cycle Count + 080 Batt. Pack Model Level + 081 Internal Charge Controller + 082 Primary Battery Support + 083 Design Capacity + 084 Specification Info + 085 Manufacturer Date + 086 Serial Number + 087 iManufacturerName + 088 iDeviceName + 089 iDeviceChemistry + 08a Manufacturer Data + 08b Rechargeable + 08c Warning Capacity Limit + 08d Capacity Granularity 1 + 08e Capacity Granularity 2 + 08f iOEMInformation + 0c0 Inhibit Charge + 0c1 Enable Polling + 0c2 Reset To Zero + 0d0 AC Present + 0d1 Battery Present + 0d2 Power Fail + 0d3 Alarm Inhibited + 0d4 Thermistor Under Range + 0d5 Thermistor Hot + 0d6 Thermistor Cold + 0d7 Thermistor Over Range + 0d8 Voltage Out Of Range + 0d9 Current Out Of Range + 0da Current Not Regulated + 0db Voltage Not Regulated + 0dc Master Mode + 0f0 Charger Selector Support + 0f1 Charger Spec + 0f2 Level 2 + 0f3 Level 3 +HUT 86 Power Pages +HUT 87 Power Pages +HUT 8c Bar Code Scanner Page (POS) +HUT 8d Scale Page (POS) +HUT 90 Camera Control Page +HUT 91 Arcade Control Page +HUT f0 Cash Device + 0f1 Cash Drawer + 0f2 Cash Drawer Number + 0f3 Cash Drawer Set + 0f4 Cash Drawer Status +HUT ff Vendor Specific + +# List of Languages + +# Syntax: +# L language_id language_name +# dialect_id dialect_name + +L 0001 Arabic + 01 Saudi Arabia + 02 Iraq + 03 Egypt + 04 Libya + 05 Algeria + 06 Morocco + 07 Tunesia + 08 Oman + 09 Yemen + 0a Syria + 0b Jordan + 0c Lebanon + 0d Kuwait + 0e U.A.E + 0f Bahrain + 10 Qatar +L 0002 Bulgarian +L 0003 Catalan +L 0004 Chinese + 01 Traditional + 02 Simplified + 03 Hongkong SAR, PRC + 04 Singapore + 05 Macau SAR +L 0005 Czech +L 0006 Danish +L 0007 German + 01 German + 02 Swiss + 03 Austrian + 04 Luxembourg + 05 Liechtenstein +L 0008 Greek +L 0009 English + 01 US + 02 UK + 03 Australian + 04 Canadian + 05 New Zealand + 06 Ireland + 07 South Africa + 08 Jamaica + 09 Carribean + 0a Belize + 0b Trinidad + 0c Zimbabwe + 0d Philippines +L 000a Spanish + 01 Castilian + 02 Mexican + 03 Modern + 04 Guatemala + 05 Costa Rica + 06 Panama + 07 Dominican Republic + 08 Venzuela + 09 Colombia + 0a Peru + 0b Argentina + 0c Ecuador + 0d Chile + 0e Uruguay + 0f Paraguay + 10 Bolivia + 11 El Salvador + 12 Honduras + 13 Nicaragua + 14 Puerto Rico +L 000b Finnish +L 000c French + 01 French + 02 Belgian + 03 Canadian + 04 Swiss + 05 Luxembourg + 06 Monaco +L 000d Hebrew +L 000e Hungarian +L 000f Idelandic +L 0010 Italian + 01 Italian + 02 Swiss +L 0011 Japanese +L 0012 Korean + 01 Korean +L 0013 Dutch + 01 Dutch + 02 Belgian +L 0014 Norwegian + 01 Bokmal + 02 Nynorsk +L 0015 Polish +L 0016 Portuguese + 01 Portuguese + 02 Brazilian +L 0017 forgotten +L 0018 Romanian +L 0019 Russian +L 001a Serbian + 01 Croatian + 02 Latin + 03 Cyrillic +L 001b Slovak +L 001c Albanian +L 001d Swedish + 01 Swedish + 02 Finland +L 001e Thai +L 001f Turkish +L 0020 Urdu + 01 Pakistan + 02 India +L 0021 Indonesian +L 0022 Ukrainian +L 0023 Belarusian +L 0024 Slovenian +L 0025 Estonian +L 0026 Latvian +L 0027 Lithuanian + 01 Lithuanian +L 0028 forgotten +L 0029 Farsi +L 002a Vietnamese +L 002b Armenian +L 002c Azeri + 01 Cyrillic + 02 Latin +L 002d Basque +L 002e forgotten +L 002f Macedonian +L 0036 Afrikaans +L 0037 Georgian +L 0038 Faeroese +L 0039 Hindi +L 003e Malay + 01 Malaysia + 02 Brunei Darassalam +L 003f Kazak +L 0041 Awahili +L 0043 Uzbek + 01 Latin + 02 Cyrillic +L 0044 Tatar +L 0045 Bengali +L 0046 Punjabi +L 0047 Gujarati +L 0048 Oriya +L 0049 Tamil +L 004a Telugu +L 004b Kannada +L 004c Malayalam +L 004d Assamese +L 004e Marathi +L 004f Sanskrit +L 0057 Konkani +L 0058 Manipuri +L 0059 Sindhi +L 0060 Kashmiri + 02 India +L 0061 Nepali + 02 India + +# HID Descriptor bCountryCode +# HID Specification 1.11 (2001-06-27) page 23 +# +# Syntax: +# HCC country_code keymap_type + +HCC 00 Not supported +HCC 01 Arabic +HCC 02 Belgian +HCC 03 Canadian-Bilingual +HCC 04 Canadian-French +HCC 05 Czech Republic +HCC 06 Danish +HCC 07 Finnish +HCC 08 French +HCC 09 German +HCC 10 Greek +HCC 11 Hebrew +HCC 12 Hungary +HCC 13 International (ISO) +HCC 14 Italian +HCC 15 Japan (Katakana) +HCC 16 Korean +HCC 17 Latin American +HCC 18 Netherlands/Dutch +HCC 19 Norwegian +HCC 20 Persian (Farsi) +HCC 21 Poland +HCC 22 Portuguese +HCC 23 Russia +HCC 24 Slovakia +HCC 25 Spanish +HCC 26 Swedish +HCC 27 Swiss/French +HCC 28 Swiss/German +HCC 29 Switzerland +HCC 30 Taiwan +HCC 31 Turkish-Q +HCC 32 UK +HCC 33 US +HCC 34 Yugoslavia +HCC 35 Turkish-F + +# List of Video Class Terminal Types + +# Syntax: +# VT terminal_type terminal_type_name + +VT 0100 USB Vendor Specific +VT 0101 USB Streaming +VT 0200 Input Vendor Specific +VT 0201 Camera Sensor +VT 0202 Sequential Media +VT 0300 Output Vendor Specific +VT 0301 Generic Display +VT 0302 Sequential Media +VT 0400 External Vendor Specific +VT 0401 Composite Video +VT 0402 S-Video +VT 0403 Component Video diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD index dd8e863ca..6c94c8c5b 100644 --- a/core/util-linux/PKGBUILD +++ b/core/util-linux/PKGBUILD @@ -1,8 +1,10 @@ -# $Id: PKGBUILD 111132 2011-02-24 11:12:49Z ibiru $ -# Maintainer: judd <jvinet@zeroflux.org> +# $Id: PKGBUILD 123152 2011-05-09 00:21:36Z allan $ +# Maintainer: +# Contributor: judd <jvinet@zeroflux.org> + pkgname=util-linux -pkgver=2.19 -pkgrel=4 +pkgver=2.19.1 +pkgrel=1 pkgdesc="Miscellaneous system utilities for Linux" url="http://userweb.kernel.org/~kzak/util-linux-ng/" arch=('i686' 'x86_64' 'mips64el') @@ -15,7 +17,7 @@ license=('GPL2') options=('!libtool') source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.19/${pkgname}-${pkgver}.tar.bz2) optdepends=('perl: for chkdupexe support') -md5sums=('590ca71aad0b254e2631d84401f28255') +md5sums=('3eab06f05163dfa65479c44e5231932c') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -27,6 +29,6 @@ build() { package() { cd "${srcdir}/${pkgname}-${pkgver}" - mkdir -p "${pkgdir}/var/lib/hwclock" + install -dm755 "${pkgdir}/var/lib/hwclock" make DESTDIR="${pkgdir}" install } diff --git a/extra/alpine/PKGBUILD b/extra/alpine/PKGBUILD index 93bdedc54..e70e9a75a 100644 --- a/extra/alpine/PKGBUILD +++ b/extra/alpine/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 104455 2011-01-03 05:46:57Z eric $ -# Maintainer: Eric Belanger <eric@archlinux.org> +# $Id: PKGBUILD 121113 2011-04-29 02:56:31Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=alpine pkgver=2.00 -pkgrel=12 +pkgrel=13 _patchlevel=79 pkgdesc="The Apache-licensed PINE (a tool for reading, sending, and managing electronic messages)" arch=('i686' 'x86_64' 'mips64el') url="http://www.washington.edu/alpine/" license=('APACHE') -depends=('libldap' 'heimdal' 'gettext') +depends=('libldap' 'krb5' 'gettext') optdepends=('aspell: for spell-checking support') provides=('pine') conflicts=('pine') @@ -18,10 +18,14 @@ options=('!makeflags') source=(ftp://ftp.cac.washington.edu/${pkgname}/${pkgname}.tar.bz2 \ http://staff.washington.edu/chappa/alpine/patches/alpine-${pkgver}/all_${_patchlevel}.patch.gz \ 2.00-lpam.patch CVE-2008-5514.patch) -md5sums=('84e44cbf71ed674800a5d57eed9c1c52' 'd7dffd121c9a1cac4c458c0ff71df1ce'\ - 'cd3911c16fc6a072e853c0ccfc35857c' '1b52a54a656979116c09fb1d948a4325') -sha1sums=('dcbd3c5419954f484ccf706feaba31ce48cdebc4' 'd3acbf0e46c50feb2e822ef3bdc0a0f43c007294'\ - '1b39525f91ebd5a9de5a1e04f5554f6fa5f58ae3' 'bc61d76a237ff42b00b3f60f2e6fc5c45e261dbb') +md5sums=('84e44cbf71ed674800a5d57eed9c1c52' + 'd7dffd121c9a1cac4c458c0ff71df1ce' + 'cd3911c16fc6a072e853c0ccfc35857c' + '1b52a54a656979116c09fb1d948a4325') +sha1sums=('dcbd3c5419954f484ccf706feaba31ce48cdebc4' + 'd3acbf0e46c50feb2e822ef3bdc0a0f43c007294' + '1b39525f91ebd5a9de5a1e04f5554f6fa5f58ae3' + 'bc61d76a237ff42b00b3f60f2e6fc5c45e261dbb') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/anjuta/PKGBUILD b/extra/anjuta/PKGBUILD index 3e09aad25..e8f8112bc 100644 --- a/extra/anjuta/PKGBUILD +++ b/extra/anjuta/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 120797 2011-04-26 15:26:51Z ibiru $ +# $Id: PKGBUILD 122589 2011-05-04 18:41:26Z ibiru $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Harley Laue <losinggeneration@yahoo.com> pkgname=anjuta pkgver=3.0.1.0 -pkgrel=1 +pkgrel=2 pkgdesc="GNOME Integrated Development Environment (IDE)" arch=('i686' 'x86_64' 'mips64el') license=('GPL') diff --git a/extra/cd-discid/PKGBUILD b/extra/cd-discid/PKGBUILD index fdb40695b..c19387e97 100644 --- a/extra/cd-discid/PKGBUILD +++ b/extra/cd-discid/PKGBUILD @@ -1,20 +1,25 @@ -# $Id: PKGBUILD 32259 2009-03-29 22:10:04Z eric $ -# Maintainer: dorphell <dorphell@archlinux.org> +# $Id: PKGBUILD 123749 2011-05-12 20:54:41Z andrea $ +# Maintainer: +# Contributor: dorphell <dorphell@archlinux.org> # Contributor: Jochem Kossen <j.kossen@home.nl> pkgname=cd-discid pkgver=0.9 -pkgrel=2 -pkgdesc="cd-discid is a backend utility to get CDDB discid information from a CD-ROM disc." -arch=(i686 x86_64 'mips64el') +pkgrel=3 +pkgdesc="A backend utility to get CDDB discid information from a CD-ROM disc" +arch=('i686' 'x86_64') url="http://lly.org/~rcw/cd-discid/" license=('GPL') depends=('glibc') -source=(http://lly.org/~rcw/$pkgname/$pkgname\_$pkgver.orig.tar.gz) +source=("http://lly.org/~rcw/$pkgname/${pkgname}_${pkgver}.orig.tar.gz") md5sums=('64677b8b63d1db0db015043f5455171a') build() { - cd $srcdir/$pkgname-$pkgver - make || return 1 - make DESTDIR=$pkgdir INSTALL=/bin/install install || return 1 + cd "${srcdir}"/$pkgname-$pkgver + make +} + +package() { + cd "${srcdir}"/$pkgname-$pkgver + make DESTDIR="${pkgdir}" INSTALL=/bin/install install } diff --git a/extra/cifs-utils/PKGBUILD b/extra/cifs-utils/PKGBUILD index e7f037a30..1c85829c0 100644 --- a/extra/cifs-utils/PKGBUILD +++ b/extra/cifs-utils/PKGBUILD @@ -1,14 +1,15 @@ -# $Id: PKGBUILD 117241 2011-03-30 13:34:45Z tpowa $ +# $Id: PKGBUILD 122574 2011-05-04 17:23:19Z ibiru $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=cifs-utils pkgver=4.9 -pkgrel=2 +pkgrel=3 pkgdesc="CIFS filesystem user-space tools" arch=(i686 x86_64 'mips64el') url="http://wiki.samba.org/index.php/LinuxCIFS_utils" license=('GPL') -depends=('libcap' 'keyutils' 'heimdal') +depends=('libcap' 'keyutils' 'krb5' 'talloc') source=(ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/$pkgname-$pkgver.tar.bz2) +md5sums=('908d904e6b9e58f09f530de151a88ef8') build() { cd "$srcdir/$pkgname-$pkgver" @@ -23,4 +24,3 @@ package() { # set mount.cifs uid, to enable none root mounting form fstab chmod +s $pkgdir/sbin/mount.cifs } -md5sums=('908d904e6b9e58f09f530de151a88ef8') diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD index ebf40b2a5..64ab5d109 100644 --- a/extra/cups/PKGBUILD +++ b/extra/cups/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 105161 2011-01-07 06:36:34Z andyrtr $ +# $Id: PKGBUILD 121078 2011-04-29 00:03:07Z stephane $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgbase="cups" pkgname=('libcups' 'cups') pkgver=1.4.6 -pkgrel=1 -arch=('i686' 'x86_64' 'mips64el') +pkgrel=2 +arch=('i686' 'x86_64') license=('GPL') url="http://www.cups.org/" -makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'heimdal>=1.3.1' 'gnutls>=2.8.3' 'poppler>=0.12.3' +makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3' 'xinetd' 'gzip' 'autoconf' 'php' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme') source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2 cups-avahi.patch @@ -20,6 +20,8 @@ md5sums=('de8fb5a29c36554925c0c6a6e2c0dae1' 'f861b18f4446c43918c8643dcbbd7f6d' '96f82c38f3f540b53f3e5144900acf17') +# move client.conf man page for next update to the client pkg. + build() { cd ${srcdir}/${pkgbase}-${pkgver} # Avahi support in the dnssd backend. patch from Fedora @@ -40,7 +42,7 @@ build() { package_libcups() { pkgdesc="The CUPS Printing System - client libraries and headers" -depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'heimdal>=1.3.1' 'avahi') +depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'krb5' 'avahi') cd ${srcdir}/${pkgbase}-${pkgver} make BUILDROOT=${pkgdir} install-headers install-libs || return 1 diff --git a/extra/cvs/PKGBUILD b/extra/cvs/PKGBUILD index 95dbe3295..62db9ea0e 100644 --- a/extra/cvs/PKGBUILD +++ b/extra/cvs/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 101751 2010-12-01 14:33:51Z stephane $ +# $Id: PKGBUILD 121072 2011-04-28 22:54:58Z stephane $ # Contributor: dorphell <dorphell@archlinux.org> pkgname=cvs pkgver=1.11.23 -pkgrel=6 +pkgrel=7 pkgdesc="Concurrent Versions System - a source control system" arch=(i686 x86_64 'mips64el') url="http://cvs.nongnu.org" license=('GPL') -depends=('heimdal>=1.3.1') +depends=('krb5') optdepends=('openssh: for using cvs over ssh' 'inetutils: for using cvs over rsh') install=cvs.install source=(ftp://ftp.gnu.org/non-gnu/cvs/source/stable/${pkgver}/${pkgname}-${pkgver}.tar.bz2 @@ -34,6 +34,6 @@ build() { package() { cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR=${pkgdir} install - rm ${pkgdir}/usr/share/info/dir + make DESTDIR="${pkgdir}" install + rm "${pkgdir}"/usr/share/info/dir } diff --git a/extra/cyrus-sasl-plugins/PKGBUILD b/extra/cyrus-sasl-plugins/PKGBUILD index 6dc368c43..71ff8378b 100644 --- a/extra/cyrus-sasl-plugins/PKGBUILD +++ b/extra/cyrus-sasl-plugins/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 115177 2011-03-17 10:51:19Z andrea $ +# $Id: PKGBUILD 122144 2011-05-02 13:27:49Z stephane $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=cyrus-sasl-plugins pkgver=2.1.23 -pkgrel=4 +pkgrel=5 pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library" arch=('i686' 'x86_64' 'mips64el') url="http://cyrusimap.web.cmu.edu/" license=('custom') -depends=('postgresql-libs>=9.0.3' 'heimdal>=1.3.3' 'libldap>2.4' +depends=('postgresql-libs>=9.0.3' 'krb5' 'libldap>2.4' 'libmysqlclient>=5.5.10') source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz cyrus-sasl-2.1.22-gcc44.patch diff --git a/extra/cyrus-sasl/PKGBUILD b/extra/cyrus-sasl/PKGBUILD index e417a95b5..2aa9a2351 100644 --- a/extra/cyrus-sasl/PKGBUILD +++ b/extra/cyrus-sasl/PKGBUILD @@ -1,36 +1,52 @@ -# $Id: PKGBUILD 75335 2010-04-01 10:43:20Z allan $ +# $Id: PKGBUILD 122168 2011-05-02 15:13:37Z stephane $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=cyrus-sasl pkgver=2.1.23 -pkgrel=4 +pkgrel=5 pkgdesc="SASL authentication daemon" arch=('i686' 'x86_64' 'mips64el') license=('custom') url="http://asg.web.cmu.edu/cyrus/download/" -depends=('pam>=1.0.1-2' 'heimdal>=1.3.1' 'libldap' 'cyrus-sasl-plugins>=2.1.22-7' 'db>=4.7') +depends=('pam>=1.0.1-2' 'krb5' 'libldap' 'cyrus-sasl-plugins' 'db>=5.0') replaces=(cyrus-sasl-mysql cyrus-sasl-pgsql) conflicts=(cyrus-sasl-mysql cyrus-sasl-pgsql) backup=(etc/conf.d/saslauthd) source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/${pkgname}-${pkgver}.tar.gz - saslauthd - saslauthd.conf.d) + saslauthd + saslauthd.conf.d + cyrus-sasl-2.1.23-gcc4.patch + cyrus-sasl-2.1.23+db-5.0.patch) md5sums=('2eb0e48106f0e9cd8001e654f267ecbc' '697dfb51206c398bc976ce9f4cffe72d' - '96d8a2f6189501f8044838e04d5cae7f') + '96d8a2f6189501f8044838e04d5cae7f' + '3a71688df7d5724cd55a8de17d74f34e' + '35c189c8e93ad37e3ae3c49386fdeb2c') build() { cd "${srcdir}/${pkgname}-${pkgver}" + + # Fix building with db v5.x + patch -Np1 -i ../cyrus-sasl-2.1.23+db-5.0.patch + + # Fix error: #elif with no expression + patch -Np1 -i ../cyrus-sasl-2.1.23-gcc4.patch + ./configure --prefix=/usr --mandir=/usr/share/man \ --host=$CHOST \ --build=$CHOST \ --target=$CHOST \ --with-ldap=/usr --with-saslauthd=/var/run/saslauthd + --disable-krb4 --with-gss_impl=mit --disable-otp cd saslauthd - make || return 1 - make DESTDIR="${pkgdir}" install || return 1 - make testsaslauthd || return 1 - install -m755 testsaslauthd "${pkgdir}/usr/sbin" || return 1 + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}/saslauthd" + make DESTDIR="${pkgdir}" install + make testsaslauthd + install -m755 testsaslauthd "${pkgdir}/usr/sbin" install -dm766 "${pkgdir}/var/run/saslauthd" install -Dm755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/saslauthd" diff --git a/extra/cyrus-sasl/cyrus-sasl-2.1.23+db-5.0.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.23+db-5.0.patch new file mode 100644 index 000000000..62df3e67e --- /dev/null +++ b/extra/cyrus-sasl/cyrus-sasl-2.1.23+db-5.0.patch @@ -0,0 +1,24 @@ +diff -Naur cyrus-sasl-2.1.23.ori/sasldb/db_berkeley.c cyrus-sasl-2.1.23/sasldb/db_berkeley.c +--- cyrus-sasl-2.1.23.ori/sasldb/db_berkeley.c 2009-04-28 08:09:18.000000000 -0700 ++++ cyrus-sasl-2.1.23/sasldb/db_berkeley.c 2011-05-02 07:16:42.748675977 -0700 +@@ -100,7 +100,7 @@ + ret = db_create(mbdb, NULL, 0); + if (ret == 0 && *mbdb != NULL) + { +-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1 ++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5 + ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660); + #else + ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660); +diff -Naur cyrus-sasl-2.1.23.ori/utils/dbconverter-2.c cyrus-sasl-2.1.23/utils/dbconverter-2.c +--- cyrus-sasl-2.1.23.ori/utils/dbconverter-2.c 2003-02-13 11:56:17.000000000 -0800 ++++ cyrus-sasl-2.1.23/utils/dbconverter-2.c 2011-05-02 07:16:42.748675977 -0700 +@@ -214,7 +214,7 @@ + ret = db_create(mbdb, NULL, 0); + if (ret == 0 && *mbdb != NULL) + { +-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1 ++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5 + ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664); + #else + ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664); diff --git a/extra/cyrus-sasl/cyrus-sasl-2.1.23-gcc4.patch b/extra/cyrus-sasl/cyrus-sasl-2.1.23-gcc4.patch new file mode 100644 index 000000000..0d8627b1f --- /dev/null +++ b/extra/cyrus-sasl/cyrus-sasl-2.1.23-gcc4.patch @@ -0,0 +1,21 @@ +diff -Naur cyrus-sasl-2.1.23.ori/plugins/digestmd5.c cyrus-sasl-2.1.23/plugins/digestmd5.c +--- cyrus-sasl-2.1.23.ori/plugins/digestmd5.c 2009-04-28 08:09:17.000000000 -0700 ++++ cyrus-sasl-2.1.23/plugins/digestmd5.c 2011-05-02 07:56:55.375403814 -0700 +@@ -2715,7 +2715,7 @@ + "DIGEST-MD5", /* mech_name */ + #ifdef WITH_RC4 + 128, /* max_ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, +@@ -4034,7 +4034,7 @@ + "DIGEST-MD5", + #ifdef WITH_RC4 /* mech_name */ + 128, /* max ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, diff --git a/extra/dbus/PKGBUILD b/extra/dbus/PKGBUILD index 53fd3d51f..c67140463 100644 --- a/extra/dbus/PKGBUILD +++ b/extra/dbus/PKGBUILD @@ -1,19 +1,18 @@ -# $Id: PKGBUILD 103703 2010-12-22 15:11:09Z jgc $ +# $Id: PKGBUILD 123271 2011-05-09 14:50:22Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Link Dupont <link@subpop.net> # pkgname=dbus -pkgver=1.4.1 +pkgver=1.4.8 pkgrel=1 pkgdesc="Freedesktop.org message bus system" url="http://www.freedesktop.org/Software/dbus" arch=(i686 x86_64 'mips64el') license=('GPL' 'custom') depends=("dbus-core>=${pkgver}" 'libx11') -makedepends=('libsm' 'libice') source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz 30-dbus) -md5sums=('99cb057700c0455fb68f8d57902f77ac' +md5sums=('e30253e15f0f4e6c5ee9e6f0eba5046c' 'd14e59575f04e55d21a04907b6fd9f3c') build() { diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD index 6fc98a8d0..179624811 100644 --- a/extra/dovecot/PKGBUILD +++ b/extra/dovecot/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 119695 2011-04-13 19:29:24Z andyrtr $ +# $Id: PKGBUILD 123590 2011-05-11 17:20:39Z andyrtr $ # Contributor: Paul Mattal <paul@mattal.com> # Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com> # Contributor: GARETTE Emmanuel <gnunux at laposte dot net> # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgname=dovecot -pkgver=2.0.12 +pkgver=2.0.13 pkgrel=1 pkgdesc="An IMAP and POP3 server written with security primarily in mind" arch=('i686' 'x86_64' 'mips64el') url="http://dovecot.org/" license=("LGPL") -depends=('heimdal>=1.3.3' 'openssl' 'sqlite3>=3.7.5' 'libmysqlclient>=5.5.10' +depends=('krb5' 'openssl' 'sqlite3>=3.7.5' 'libmysqlclient>=5.5.10' 'postgresql-libs>=9.0.3' 'bzip2' 'expat' 'curl') makedepends=('pam>=1.1.1' 'libcap>=2.19' 'libldap>=2.4.22') optdepends=('libldap: ldap plugin') @@ -25,7 +25,7 @@ backup=(etc/dovecot/dovecot.conf etc/ssl/dovecot-openssl.cnf) install=$pkgname.install source=(http://dovecot.org/releases/2.0/${pkgname}-${pkgver}.tar.gz dovecot.sh) -md5sums=('689e1a8863d4fb2fd252e1a6121dd181' +md5sums=('fd8a0702275a61332db7353dadff0f92' 'd020d43eab4ded6fb379dadc570a9490') build() { diff --git a/extra/evolution-data-server/PKGBUILD b/extra/evolution-data-server/PKGBUILD index 756a4e379..195be21c6 100644 --- a/extra/evolution-data-server/PKGBUILD +++ b/extra/evolution-data-server/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 120574 2011-04-25 17:24:21Z ibiru $ +# $Id: PKGBUILD 122571 2011-05-04 16:49:38Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=evolution-data-server pkgver=3.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="Central location for addressbook and calendar storage in the GNOME Desktop" -arch=('i686' 'x86_64' 'mips64el') -depends=('libsoup' 'nss' 'libgnome-keyring' 'heimdal' 'libgweather' 'libical' 'db' 'libgdata') +arch=('i686' 'x86_64') +depends=('libsoup' 'nss' 'libgnome-keyring' 'krb5' 'libgweather' 'libical' 'db' 'libgdata') makedepends=('intltool' 'gperf' 'gobject-introspection') options=('!libtool') url="http://www.gnome.org" diff --git a/extra/evolution-exchange/PKGBUILD b/extra/evolution-exchange/PKGBUILD index 7d90c1ee1..3dcb196d7 100644 --- a/extra/evolution-exchange/PKGBUILD +++ b/extra/evolution-exchange/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 120624 2011-04-25 18:31:36Z ibiru $ +# $Id: PKGBUILD 122586 2011-05-04 18:25:32Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=evolution-exchange pkgver=3.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="Ximian Connector Exchange plugin for Evolution" arch=('i686' 'x86_64' 'mips64el') license=('GPL') diff --git a/extra/exo/PKGBUILD b/extra/exo/PKGBUILD index ffcc5a2c3..86f45ff21 100644 --- a/extra/exo/PKGBUILD +++ b/extra/exo/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 106429 2011-01-16 21:30:41Z ibiru $ +# $Id: PKGBUILD 123595 2011-05-11 17:34:16Z andyrtr $ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Contributor: tobias <tobias funnychar archlinux.org> # Contributor: Aurelien Foret <orelien@chez.com> pkgname=exo -pkgver=0.6.0 -pkgrel=2 +pkgver=0.6.1 +pkgrel=1 pkgdesc="Extensions to Xfce by os-cillation" arch=('i686' 'x86_64' 'mips64el') license=('GPL2' 'LGPL') @@ -17,7 +17,7 @@ optdepends=('perl-uri: for mail-compose helper script') options=('!libtool') install=${pkgname}.install source=(http://archive.xfce.org/src/xfce/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2) -md5sums=('ac9deafdf9de426d8a03855ac549f424') +md5sums=('2ae3d9a9dedc3adebb748fa8724e02ce') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/fastjar/PKGBUILD b/extra/fastjar/PKGBUILD index 7907f2113..f0bb8176c 100644 --- a/extra/fastjar/PKGBUILD +++ b/extra/fastjar/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 97252 2010-10-28 03:59:06Z allan $ +# $Id: PKGBUILD 123670 2011-05-12 09:09:06Z guillaume $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=fastjar -pkgver=0.97 -pkgrel=2 +pkgver=0.98 +pkgrel=1 pkgdesc="Sun java jar compatible archiver" arch=('i686' 'x86_64' 'mips64el') url="http://savannah.nongnu.org/projects/fastjar" @@ -11,7 +11,7 @@ license=('GPL') depends=('zlib' 'texinfo') install=fastjar.install source=(http://download.savannah.nongnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz) -md5sums=('2659f09c2e43ef8b7d4406321753f1b2') +md5sums=('d2d264d343d4d0e1575832cc1023c3bf') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/extra/feh/PKGBUILD b/extra/feh/PKGBUILD index 8d3b8000f..3485bdb20 100644 --- a/extra/feh/PKGBUILD +++ b/extra/feh/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 120449 2011-04-23 22:47:50Z bisson $ +# $Id: PKGBUILD 123419 2011-05-11 10:13:28Z bisson $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: dorphell <dorphell@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgname=feh -pkgver=1.13 +pkgver=1.14 pkgrel=1 pkgdesc='Fast, lightweight image viewer which uses imlib2' arch=('i686' 'x86_64' 'mips64el') @@ -15,7 +15,7 @@ depends=('giblib' 'curl' 'libxinerama') optdepends=('perl: feh-cam, webcam wrapper for feh') makedepends=('libxt') source=("${url}${pkgname}-${pkgver}.tar.bz2") -sha1sums=('8b2c8250137edbda630b920e5eb7ca7ba5818a5e') +sha1sums=('da8886b62aa46c8e85cbced73ef14d704ab66907') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/gc/PKGBUILD b/extra/gc/PKGBUILD index 70308372b..7817eb002 100644 --- a/extra/gc/PKGBUILD +++ b/extra/gc/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 18876 2008-11-09 22:41:09Z andyrtr $ +# $Id: PKGBUILD 123615 2011-05-11 19:36:33Z jgc $ # Maintainer: Daniel Isenmann <daniel [at] archlinux.org> # Contributor: dorphell <dorphell@gmx.net> pkgname=gc pkgver=7.1 -pkgrel=1 +pkgrel=3 pkgdesc="A garbage collector for C and C++" arch=(i686 x86_64 'mips64el') url="http://www.hpl.hp.com/personal/Hans_Boehm/gc/" @@ -15,7 +15,16 @@ md5sums=('2ff9924c7249ef7f736ecfe6f08f3f9b') build() { cd "${srcdir}/${pkgname}-${pkgver}" - ./configure --prefix=/usr --enable-cplusplus || return 1 - make || return 1 - make DESTDIR="${pkgdir}" install || return 1 + ./configure --prefix=/usr --enable-cplusplus + make + make DESTDIR="${pkgdir}" install + + rm -rf "${pkgdir}/usr/share/gc" + install -m755 -d "${pkgdir}/usr/share/doc/gc" + install -m644 doc/README{,.{changes,contributors,environment,linux}} \ + "${pkgdir}/usr/share/doc/gc/" + + sed -i -e 's/GC_MALLOC 1L/gc 3/' doc/gc.man + install -m755 -d "${pkgdir}/usr/share/man/man3" + install -m644 doc/gc.man "${pkgdir}/usr/share/man/man3/gc.3" } diff --git a/extra/geoip/PKGBUILD b/extra/geoip/PKGBUILD index 09a677d38..61ad4ea4c 100644 --- a/extra/geoip/PKGBUILD +++ b/extra/geoip/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 40077 2009-05-27 06:02:01Z juergen $ +# $Id: PKGBUILD 123437 2011-05-11 11:45:24Z juergen $ # Maintainer: Dan McGee <dan@archlinux.org> # Contributor: Manolis Tzanidakis <manolis@archlinux.org> pkgname=geoip -pkgver=1.4.6 +pkgver=1.4.7 pkgrel=1 pkgdesc="Non-DNS IP-to-country resolver C library & utils" arch=(i686 x86_64 'mips64el') @@ -13,7 +13,7 @@ depends=('zlib') backup=(etc/geoip/GeoIP.conf) options=('!libtool') source=(http://www.maxmind.com/download/geoip/api/c/GeoIP-${pkgver}.tar.gz) -md5sums=('cb14b1beeb40631a12676b11ca0c309a') +md5sums=('a802175d5b7e2b57b540a7dd308d9205') build() { cd ${startdir}/src/GeoIP-${pkgver} diff --git a/extra/gnome-control-center/PKGBUILD b/extra/gnome-control-center/PKGBUILD index 031d21dc9..1b7fd44d0 100644 --- a/extra/gnome-control-center/PKGBUILD +++ b/extra/gnome-control-center/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 120905 2011-04-27 08:37:19Z ibiru $ +# $Id: PKGBUILD 122550 2011-05-04 14:36:21Z stephane $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gnome-control-center pkgver=3.0.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="The Control Center for GNOME" -arch=('i686' 'x86_64' 'mips64el') -depends=('gtk3' 'gsettings-desktop-schemas' 'gnome-menus' 'gnome-desktop' 'gnome-settings-daemon' 'upower' 'libgtop' 'cups-pk-helper' 'accountsservice' 'sound-theme-freedesktop') +arch=('i686' 'x86_64') +depends=('gtk3' 'gsettings-desktop-schemas' 'gnome-menus' 'gnome-desktop' 'gnome-settings-daemon' 'upower' 'libgtop' 'cups-pk-helper' 'accountsservice' 'sound-theme-freedesktop' 'krb5') optdepends=('apg: adds password generation for user accounts') makedepends=('gnome-doc-utils' 'intltool' 'networkmanager') url="http://www.gnome.org" diff --git a/extra/gnome-mag/PKGBUILD b/extra/gnome-mag/PKGBUILD index 00f8ed968..8b08b9ee5 100644 --- a/extra/gnome-mag/PKGBUILD +++ b/extra/gnome-mag/PKGBUILD @@ -1,24 +1,24 @@ -# $Id: PKGBUILD 74622 2010-03-31 19:18:45Z jgc $ +# $Id: PKGBUILD 123655 2011-05-12 07:09:30Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gnome-mag -pkgver=0.16.1 +pkgver=0.16.3 pkgrel=1 pkgdesc="Gnome magnifier" arch=(i686 x86_64 'mips64el') license=('GPL') url="http://www.gnome.org" -depends=('at-spi>=1.30.0') +depends=('at-spi>=1.32.0') makedepends=('intltool' 'pkgconfig') options=('!libtool') groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/gnome-mag/0.16/${pkgname}-${pkgver}.tar.bz2) -sha256sums=('92541c30a70a6cf59ec3fb3f46d27a598173984f786f7c6bc1bd3e4be65ad3fa') +sha256sums=('1ea1b1218ce621226b0397c4c548db29636ab663da7943440327e04345916d99') build() { cd "${srcdir}/${pkgname}-${pkgver}" ./configure --prefix=/usr --sysconfdir=/etc \ - --localstatedir=/var || return 1 - make || return 1 - make DESTDIR="${pkgdir}" install || return 1 + --localstatedir=/var + make + make DESTDIR="${pkgdir}" install } diff --git a/extra/gnome-settings-daemon/PKGBUILD b/extra/gnome-settings-daemon/PKGBUILD index 9658f40a3..c3270d70e 100644 --- a/extra/gnome-settings-daemon/PKGBUILD +++ b/extra/gnome-settings-daemon/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 120747 2011-04-26 10:46:20Z heftig $ +# $Id: PKGBUILD 122583 2011-05-04 18:20:31Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gnome-settings-daemon pkgver=3.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="The GNOME Settings daemon" arch=('i686' 'x86_64' 'mips64el') license=('GPL') depends=('libgnomekbd' 'gnome-desktop' 'libnotify' 'hicolor-icon-theme' - 'libcanberra' 'gsettings-desktop-schemas' 'nss' 'gconf' 'dconf' - 'pulseaudio' 'pulseaudio-alsa') + 'libcanberra-pulse' 'gsettings-desktop-schemas' 'nss' 'gconf' + 'dconf' 'pulseaudio' 'pulseaudio-alsa') makedepends=('intltool' 'gtk-doc') options=('!emptydirs' '!libtool') install=gnome-settings-daemon.install diff --git a/extra/gnome-shell/PKGBUILD b/extra/gnome-shell/PKGBUILD index e1f13a17a..34974115f 100644 --- a/extra/gnome-shell/PKGBUILD +++ b/extra/gnome-shell/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 123342 2011-05-10 13:48:13Z ibiru $ +# $Id: PKGBUILD 123600 2011-05-11 18:16:09Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> # Contributor: Flamelab <panosfilip@gmail.com pkgname=gnome-shell pkgver=3.0.1 -pkgrel=4 +pkgrel=5 pkgdesc="The next generation GNOME Shell" arch=('i686' 'x86_64') url="http://live.gnome.org/GnomeShell" @@ -22,12 +22,14 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$p network_fixes_up_to_5090a4ccce.patch shell-xfixes-cursor_missing_free.patch st-private_fix_memory_leak.patch + st-private_correct_fix_memory_leak.patch 0001-Don-t-crash-when-removing-nameless-user.patch) sha256sums=('01f7ae942ba9687a5e67d62423843ed404d77b35f74acc212a5f391beed8e079' 'a35d5e5f9f781728070aecae3bfe329f49dadcd50ca2984e0fbdd2219825a0db' '01bf41483d5d8935ed2dd6294ee04024f2d9bcb2ef13276b07331e485965c822' 'c8b92768c869d0d77595da3466cc0dba3b6f067ea5fac048f32a918bbe98bbf6' '8b80a0cec39c38a47521183a3030a782ab84bb6ea5e9cc58213589245288e718' + 'c676067fff399a87625187381db5331d82c44f6c14f51d409392851dbbeb5074' '291d1fa51344325e3dabc0c1287750cde98605c30f079ffad9b3523a3aba860d') build() { @@ -37,6 +39,7 @@ build() { patch -Np1 -i "${srcdir}/network_fixes_up_to_5090a4ccce.patch" patch -Np1 -i "${srcdir}/shell-xfixes-cursor_missing_free.patch" patch -Np1 -i "${srcdir}/st-private_fix_memory_leak.patch" + patch -Np1 -i "${srcdir}/st-private_correct_fix_memory_leak.patch" patch -Np1 -i "${srcdir}/0001-Don-t-crash-when-removing-nameless-user.patch" ./configure --prefix=/usr --sysconfdir=/etc \ diff --git a/extra/gnome-shell/st-private_correct_fix_memory_leak.patch b/extra/gnome-shell/st-private_correct_fix_memory_leak.patch new file mode 100644 index 000000000..d3f887c29 --- /dev/null +++ b/extra/gnome-shell/st-private_correct_fix_memory_leak.patch @@ -0,0 +1,52 @@ +From c975740f9228b2c53d79ac08ad704fca5f1c5b6e Mon Sep 17 00:00:00 2001 +From: Colin Walters <walters@verbum.org> +Date: Wed, 11 May 2011 15:21:18 +0000 +Subject: st-private: Correct fix for memory leak + +The previous fix in 72f9f482d was wrong; we need to keep around +the buffer until cairo is done with the pattern. + +https://bugzilla.gnome.org/show_bug.cgi?id=649497 +--- +diff --git a/src/st/st-private.c b/src/st/st-private.c +index 51798a1..21ca09a 100644 +--- a/src/st/st-private.c ++++ b/src/st/st-private.c +@@ -667,6 +667,7 @@ cairo_pattern_t * + _st_create_shadow_cairo_pattern (StShadow *shadow_spec, + cairo_pattern_t *src_pattern) + { ++ static cairo_user_data_key_t shadow_pattern_user_data; + cairo_t *cr; + cairo_surface_t *src_surface; + cairo_surface_t *surface_in; +@@ -728,6 +729,8 @@ _st_create_shadow_cairo_pattern (StShadow *shadow_spec, + width_out, + height_out, + rowstride_out); ++ cairo_surface_set_user_data (surface_out, &shadow_pattern_user_data, ++ pixels_out, (cairo_destroy_func_t) g_free); + + dst_pattern = cairo_pattern_create_for_surface (surface_out); + cairo_surface_destroy (surface_out); +@@ -745,8 +748,7 @@ _st_create_shadow_cairo_pattern (StShadow *shadow_spec, + (width_out - width_in) / 2.0, + (height_out - height_in) / 2.0); + cairo_pattern_set_matrix (dst_pattern, &shadow_matrix); +- +- goto out; ++ return dst_pattern; + } + + /* Read all the code from the cairo_pattern_set_matrix call +@@ -784,8 +786,6 @@ _st_create_shadow_cairo_pattern (StShadow *shadow_spec, + + cairo_pattern_set_matrix (dst_pattern, &shadow_matrix); + +- out: +- g_free (pixels_out); + return dst_pattern; + } + +-- +cgit v0.9 diff --git a/extra/gnome-vfs/PKGBUILD b/extra/gnome-vfs/PKGBUILD index 9bffe9dec..469b6725b 100644 --- a/extra/gnome-vfs/PKGBUILD +++ b/extra/gnome-vfs/PKGBUILD @@ -1,18 +1,15 @@ -# $Id: PKGBUILD 119776 2011-04-15 07:50:36Z jgc $ +# $Id: PKGBUILD 122580 2011-05-04 18:07:34Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gnome-vfs pkgver=2.24.4 -pkgrel=2 +pkgrel=3 pkgdesc="The GNOME Virtual File System" arch=(i686 x86_64 'mips64el') license=('LGPL') -depends=('fam' 'gconf' 'bzip2' 'avahi' 'smbclient' 'gnome-mime-data' 'heimdal' 'gnutls') +depends=('fam' 'gconf' 'bzip2' 'avahi' 'smbclient' 'gnome-mime-data' 'krb5' 'gnutls') makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gnome-common') -options=('!libtool' '!emptydirs' '!makeflags') -conflicts=(gnome-vfs-samba) -provides=(gnome-vfs-samba) -replaces=(gnome-vfs-samba gnome-vfs-extras) +options=('!libtool' '!emptydirs') url="http://www.gnome.org" install=gnome-vfs.install source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.24/gnome-vfs-${pkgver}.tar.bz2 @@ -36,6 +33,10 @@ build() { --enable-avahi --disable-howl \ --disable-openssl --enable-gnutls make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install install -d -m755 "${pkgdir}/usr/share/gconf/schemas" diff --git a/extra/gnugo/PKGBUILD b/extra/gnugo/PKGBUILD index 0f6b057dd..8d0c654ea 100644 --- a/extra/gnugo/PKGBUILD +++ b/extra/gnugo/PKGBUILD @@ -1,26 +1,33 @@ -# $Id: PKGBUILD 27575 2009-02-23 03:41:08Z eric $ -# Maintainer: Jason Chu <jason@archlinux.org> +# $Id: PKGBUILD 123739 2011-05-12 20:48:23Z andrea $ +# Maintainer: +# Contributor: Jason Chu <jason@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> -# Commiter: damir <damir@archlinux.org> +# Contributor: damir <damir@archlinux.org> pkgname=gnugo pkgver=3.8 -pkgrel=1 -pkgdesc="This sofware is a program that plays the game of Go" -arch=('i686' 'x86_64' 'mips64el') +pkgrel=2 +pkgdesc="A program that plays the game of Go" +arch=('i686' 'x86_64') url="http://www.gnu.org/software/gnugo/" license=('GPL3' 'custom') depends=('ncurses' 'glibc' 'texinfo') install=gnugo.install -source=(http://ftp.gnu.org/gnu/gnugo/$pkgname-$pkgver.tar.gz LICENSE) -md5sums=('6db0a528df58876d2b0ef1659c374a9a' '4df5819356804397c553c95ea8164f11') +source=("http://ftp.gnu.org/gnu/gnugo/$pkgname-$pkgver.tar.gz" + 'LICENSE') +md5sums=('6db0a528df58876d2b0ef1659c374a9a' + '4df5819356804397c553c95ea8164f11') build() { - cd $srcdir/$pkgname-$pkgver - ./configure --prefix=/usr || return 1 - make || return 1 - make DESTDIR=$pkgdir install || return 1 - rm -r ${pkgdir}/usr/share/info/dir - gzip ${pkgdir}/usr/share/info/* - install -Dm644 $srcdir/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE + cd "${srcdir}"/$pkgname-$pkgver + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}"/$pkgname-$pkgver + make DESTDIR="${pkgdir}" install + rm -r "${pkgdir}"/usr/share/info/dir + gzip "${pkgdir}"/usr/share/info/* + install -Dm644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE } diff --git a/extra/gperf/PKGBUILD b/extra/gperf/PKGBUILD index d6211f40a..ea7f76aaa 100644 --- a/extra/gperf/PKGBUILD +++ b/extra/gperf/PKGBUILD @@ -1,22 +1,27 @@ -#$Id: PKGBUILD 37369 2009-05-01 06:35:08Z eric $ -#Maintainer: Jan de Groot <jgc@archlinux.org> +# $Id: PKGBUILD 123759 2011-05-12 21:02:36Z andrea $ +# Maintainer: +# Contributor: Jan de Groot <jgc@archlinux.org> pkgname=gperf pkgver=3.0.4 -pkgrel=1 -pkgdesc="Perfect hash function generator." -arch=('x86_64' 'i686' 'mips64el') +pkgrel=2 +pkgdesc="Perfect hash function generator" +arch=('x86_64' 'i686') url="http://www.gnu.org/software/gperf/" license=('GPL3') depends=('gcc-libs' 'texinfo') install=gperf.install -source=(ftp://ftp.gnu.org/gnu/gperf/${pkgname}-${pkgver}.tar.gz) +source=("ftp://ftp.gnu.org/gnu/gperf/${pkgname}-${pkgver}.tar.gz") md5sums=('c1f1db32fb6598d6a93e6e88796a8632') build() { - cd ${srcdir}/${pkgname}-${pkgver} - ./configure --prefix=/usr || return 1 - make || return 1 - make DESTDIR=${pkgdir} install || return 1 - gzip ${pkgdir}/usr/share/info/gperf.info + cd "${srcdir}"/${pkgname}-${pkgver} + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}"/${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install + gzip "${pkgdir}"/usr/share/info/gperf.info } diff --git a/extra/graphviz/PKGBUILD b/extra/graphviz/PKGBUILD index d6831a4b0..f6f50cb57 100644 --- a/extra/graphviz/PKGBUILD +++ b/extra/graphviz/PKGBUILD @@ -1,10 +1,11 @@ -# $Id: PKGBUILD 110525 2011-02-19 18:19:40Z bisson $ +# $Id: PKGBUILD 123442 2011-05-11 13:08:33Z bisson $ # Maintainer: kevin <kevin@archlinux.org> +# Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: John Proctor <jproctor@prium.net> pkgname=graphviz -pkgver=2.26.3 -pkgrel=3 +pkgver=2.28.0 +pkgrel=1 pkgdesc='Graph visualization software' url='http://www.graphviz.org/' license=('custom:EPL') @@ -23,7 +24,7 @@ optdepends=('mono: sharp bindings' 'tcl: tcl bindings') source=("${url}/pub/${pkgname}/stable/SOURCES/${pkgname}-${pkgver}.tar.gz" 'LICENSE') -sha1sums=('04503ac5a9eaa579859f0d017811fa245717edec' +sha1sums=('4725d88a13e071ee22e632de551d4a55ca08ee7d' 'e78277e502c29abb74b9587a5dc951ec392554ea') options=('!libtool') diff --git a/extra/gtk2/PKGBUILD b/extra/gtk2/PKGBUILD index 5fcc6a520..e67d63520 100644 --- a/extra/gtk2/PKGBUILD +++ b/extra/gtk2/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 117444 2011-04-02 06:12:32Z ibiru $ +# $Id: PKGBUILD 122323 2011-05-03 20:18:27Z stephane $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=gtk2 pkgname=('gtk2' 'gtk-update-icon-cache') pkgver=2.24.4 -pkgrel=1 -arch=('i686' 'x86_64' 'mips64el') +pkgrel=2 +arch=('i686' 'x86_64') url="http://www.gtk.org/" -makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'heimdal' 'gnutls' +makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'krb5' 'gnutls' 'shared-mime-info' 'cairo' 'libcups' 'gdk-pixbuf2' 'gobject-introspection') options=('!libtool' '!docs') license=('LGPL') @@ -29,7 +29,7 @@ build() { package_gtk2() { pkgdesc="The GTK+ Toolkit (v2)" install=gtk2.install - depends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'heimdal' 'gnutls' 'shared-mime-info' 'cairo' 'libcups' 'gtk-update-icon-cache') + depends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'krb5' 'gnutls' 'shared-mime-info' 'cairo' 'libcups' 'gtk-update-icon-cache') backup=(etc/gtk-2.0/gtkrc) cd "${srcdir}/gtk+-${pkgver}" diff --git a/extra/gtk3/PKGBUILD b/extra/gtk3/PKGBUILD index 7c3a55dba..5550647fc 100644 --- a/extra/gtk3/PKGBUILD +++ b/extra/gtk3/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 119847 2011-04-15 22:42:57Z ibiru $ +# $Id: PKGBUILD 122547 2011-05-04 14:30:27Z stephane $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=gtk3 pkgver=3.0.9 -pkgrel=1 +pkgrel=2 pkgdesc="The GTK+ Toolkit (v3)" arch=('i686' 'x86_64') url="http://www.gtk.org/" install=gtk3.install -depends=('atk' 'cairo' 'gtk-update-icon-cache' 'gnutls' 'heimdal' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info') +depends=('atk' 'cairo' 'gtk-update-icon-cache' 'gnutls' 'krb5' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info') makedepends=('gobject-introspection') options=('!libtool' '!docs') backup=(etc/gtk-3.0/settings.ini) diff --git a/extra/gutenprint/PKGBUILD b/extra/gutenprint/PKGBUILD index d1fcb285c..219ea49e7 100644 --- a/extra/gutenprint/PKGBUILD +++ b/extra/gutenprint/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 122412 2011-05-04 06:25:40Z andyrtr $ +# $Id: PKGBUILD 123069 2011-05-07 23:28:40Z stephane $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgname=gutenprint pkgver=5.2.7 -pkgrel=1 +pkgrel=2 pkgdesc="Top quality printer drivers for POSIX systems" arch=('i686' 'x86_64' 'mips64el') license=('GPL') diff --git a/extra/icu/PKGBUILD b/extra/icu/PKGBUILD index 4ad239d4c..b020e631d 100644 --- a/extra/icu/PKGBUILD +++ b/extra/icu/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 114724 2011-03-15 19:35:12Z andyrtr $ +# $Id: PKGBUILD 123623 2011-05-11 21:09:44Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Art Gramlich <art@gramlich-net.com> pkgname=icu pkgver=4.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="International Components for Unicode library" arch=(i686 x86_64 'mips64el') url="http://www.icu-project.org/" @@ -12,11 +12,15 @@ license=('custom:"icu"') depends=('gcc-libs' 'sh') source=(http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver//./_}-src.tgz #http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver/./_}-src.tgz + icu.8198.revert.icu5431.patch ) -md5sums=('da64675d85f0c2191cef93a8cb5eea88') +md5sums=('da64675d85f0c2191cef93a8cb5eea88' + 'ebd5470fc969c75e52baf4af94a9ee82') build() { cd ${srcdir}/icu/source + # fix Malayalam encoding https://bugzilla.redhat.com/show_bug.cgi?id=654200 + patch -Rp3 -i ${srcdir}/icu.8198.revert.icu5431.patch ./configure --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man diff --git a/extra/icu/icu.8198.revert.icu5431.patch b/extra/icu/icu.8198.revert.icu5431.patch new file mode 100644 index 000000000..4c3e78b8e --- /dev/null +++ b/extra/icu/icu.8198.revert.icu5431.patch @@ -0,0 +1,129 @@ +Index: icu/trunk/source/layout/IndicReordering.cpp
+===================================================================
+--- icu/trunk/source/layout/IndicReordering.cpp (revision 25772)
++++ icu/trunk/source/layout/IndicReordering.cpp (revision 26090)
+@@ -126,4 +126,8 @@
+ FeatureMask fSMFeatures;
+
++ LEUnicode fPreBaseConsonant;
++ LEUnicode fPreBaseVirama;
++ le_int32 fPBCIndex;
++ FeatureMask fPBCFeatures;
+
+ void saveMatra(LEUnicode matra, le_int32 matraIndex, IndicClassTable::CharClass matraClass)
+@@ -172,5 +176,6 @@
+ fMatraFeatures(0), fMPreOutIndex(-1), fMPreFixups(mpreFixups),
+ fVMabove(0), fVMpost(0), fVMIndex(0), fVMFeatures(0),
+- fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0)
++ fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0),
++ fPreBaseConsonant(0), fPreBaseVirama(0), fPBCIndex(0), fPBCFeatures(0)
+ {
+ // nothing else to do...
+@@ -191,4 +196,6 @@
+ fVMabove = fVMpost = 0;
+ fSMabove = fSMbelow = 0;
++
++ fPreBaseConsonant = fPreBaseVirama = 0;
+ }
+
+@@ -386,4 +393,12 @@
+ }
+
++ void notePreBaseConsonant(le_uint32 index,LEUnicode PBConsonant, LEUnicode PBVirama, FeatureMask features)
++ {
++ fPBCIndex = index;
++ fPreBaseConsonant = PBConsonant;
++ fPreBaseVirama = PBVirama;
++ fPBCFeatures = features;
++ }
++
+ void noteBaseConsonant()
+ {
+@@ -465,4 +480,20 @@
+ }
+
++ void writePreBaseConsonant()
++ {
++ // The TDIL spec says that consonant + virama + RRA should produce a rakar in Malayalam. However,
++ // it seems that almost none of the fonts for Malayalam are set up to handle this.
++ // So, we're going to force the issue here by using the rakar as defined with RA in most fonts.
++
++ if (fPreBaseConsonant == 0x0d31) { // RRA
++ fPreBaseConsonant = 0x0d30; // RA
++ }
++
++ if (fPreBaseConsonant != 0) {
++ writeChar(fPreBaseConsonant, fPBCIndex, fPBCFeatures);
++ writeChar(fPreBaseVirama,fPBCIndex-1,fPBCFeatures);
++ }
++ }
++
+ le_int32 getOutputIndex()
+ {
+@@ -723,4 +754,5 @@
+ }
+
++
+ IndicClassTable::CharClass charClass = CC_RESERVED;
+ IndicClassTable::CharClass nextClass = CC_RESERVED;
+@@ -730,7 +762,9 @@
+ le_bool seenVattu = FALSE;
+ le_bool seenBelowBaseForm = FALSE;
++ le_bool seenPreBaseForm = FALSE;
+ le_bool hasNukta = FALSE;
+ le_bool hasBelowBaseForm = FALSE;
+ le_bool hasPostBaseForm = FALSE;
++ le_bool hasPreBaseForm = FALSE;
+
+ if (postBase < markStart && classTable->isNukta(chars[postBase])) {
+@@ -746,12 +780,20 @@
+ hasBelowBaseForm = IndicClassTable::hasBelowBaseForm(charClass) && !hasNukta;
+ hasPostBaseForm = IndicClassTable::hasPostBaseForm(charClass) && !hasNukta;
++ hasPreBaseForm = IndicClassTable::hasPreBaseForm(charClass) && !hasNukta;
+
+ if (IndicClassTable::isConsonant(charClass)) {
+ if (postBaseLimit == 0 || seenVattu ||
+ (baseConsonant > baseLimit && !classTable->isVirama(chars[baseConsonant - 1])) ||
+- !(hasBelowBaseForm || hasPostBaseForm)) {
++ !(hasBelowBaseForm || hasPostBaseForm || hasPreBaseForm)) {
+ break;
+ }
+
++ // Note any pre-base consonants
++ if ( baseConsonant == lastConsonant && lastConsonant > 0 &&
++ hasPreBaseForm && classTable->isVirama(chars[baseConsonant - 1])) {
++ output.notePreBaseConsonant(lastConsonant,chars[lastConsonant],chars[lastConsonant-1],tagArray2);
++ seenPreBaseForm = TRUE;
++
++ }
+ // consonants with nuktas are never vattus
+ seenVattu = IndicClassTable::isVattu(charClass) && !hasNukta;
+@@ -786,10 +828,12 @@
+
+ // write any pre-base consonants
++ output.writePreBaseConsonant();
++
+ le_bool supressVattu = TRUE;
+
+ for (i = baseLimit; i < baseConsonant; i += 1) {
+ LEUnicode ch = chars[i];
+- // Don't put 'blwf' on first consonant.
+- FeatureMask features = (i == baseLimit? tagArray2 : tagArray1);
++ // Don't put 'pstf' or 'blwf' on anything before the base consonant.
++ FeatureMask features = tagArray1 & ~( pstfFeatureMask | blwfFeatureMask );
+
+ charClass = classTable->getCharClass(ch);
+@@ -842,5 +886,5 @@
+
+ // write below-base consonants
+- if (baseConsonant != lastConsonant) {
++ if (baseConsonant != lastConsonant && !seenPreBaseForm) {
+ for (i = bcSpan + 1; i < postBase; i += 1) {
+ output.writeChar(chars[i], i, tagArray1);
+@@ -872,5 +916,5 @@
+ // write post-base consonants
+ // FIXME: does this put the right tags on post-base consonants?
+- if (baseConsonant != lastConsonant) {
++ if (baseConsonant != lastConsonant && !seenPreBaseForm) {
+ if (postBase <= lastConsonant) {
+ for (i = postBase; i <= lastConsonant; i += 1) {
diff --git a/extra/jade/PKGBUILD b/extra/jade/PKGBUILD index 6204e1a2e..d4935a934 100644 --- a/extra/jade/PKGBUILD +++ b/extra/jade/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 102540 2010-12-07 23:38:21Z andrea $ +# $Id: PKGBUILD 123729 2011-05-12 20:42:42Z andrea $ # Maintainer: # Contributor: dorphell <dorphell@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgname=jade pkgver=1.2.1 -pkgrel=5 +pkgrel=6 _debpatch=47 pkgdesc="James Clark's DSSSL Engine" url='http://www.jclark.com/jade/' @@ -14,24 +14,28 @@ license=('custom') depends=('gcc-libs') replaces=('openjade') options=('!libtool' '!makeflags') -source=(ftp://ftp.jclark.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz - http://ftp.debian.org/debian/pool/main/j/jade/jade_${pkgver}-${_debpatch}.diff.gz) +source=("ftp://ftp.jclark.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz" + "http://ftp.debian.org/debian/pool/main/j/jade/jade_${pkgver}-${_debpatch}.diff.gz") md5sums=('4239670ca6b578bff68b8c2e7cd1225f' 'feb3889e2a5fa86ac6bdb742a25d0001') build() { - cd ${srcdir}/${pkgname}-${pkgver} - patch -Np1 -i ${srcdir}/jade_${pkgver}-${_debpatch}.diff + cd "${srcdir}"/${pkgname}-${pkgver} + + export CXXFLAGS="$CXXFLAGS -fpermissive" + + patch -p1 -i "${srcdir}"/jade_${pkgver}-${_debpatch}.diff + chmod 755 configure ./configure --prefix=/usr --enable-default-catalog=/usr/share/sgml/catalog + make } package() { - cd ${srcdir}/${pkgname}-${pkgver} - install -d -m755 ${pkgdir}/usr/lib - make prefix=${pkgdir}/usr install - mv ${pkgdir}/usr/bin/sx ${pkgdir}/usr/bin/sgml2xml - install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} - install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ + cd "${srcdir}"/${pkgname}-${pkgver} + install -d -m755 "${pkgdir}"/usr/lib + make prefix="${pkgdir}"/usr install + mv "${pkgdir}"/usr/bin/sx "${pkgdir}"/usr/bin/sgml2xml + install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE } diff --git a/extra/kdegames/PKGBUILD b/extra/kdegames/PKGBUILD index 98641f782..4f120b7c0 100644 --- a/extra/kdegames/PKGBUILD +++ b/extra/kdegames/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 121100 2011-04-29 00:27:55Z andrea $ +# $Id: PKGBUILD 123676 2011-05-12 11:12:57Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -44,13 +44,13 @@ pkgname=('kdegames-bomber' 'kdegames-lskat' 'kdegames-palapeli') pkgver=4.6.3 -pkgrel=1 -arch=('i686' 'x86_64' 'mips64el') +pkgrel=2 +arch=('i686' 'x86_64') url='http://www.kde.org' license=('GPL' 'LGPL' 'FDL') groups=('kde' 'kdegames') makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-runtime' 'ggz-client-libs' - 'twisted' 'kdebindings-python') + 'twisted' 'kdebindings-python') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2") sha1sums=('472cb9541f389a8869a496f715d48587db568dda') @@ -101,7 +101,7 @@ package_kdegames-granatier() { package_kdegames-kajongg() { pkgdesc='The ancient Chinese board game for 4 players' - depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdebindings-python' 'twisted') + depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python' 'twisted') install='kdegames.install' cd $srcdir/build/kajongg make DESTDIR=$pkgdir install @@ -206,7 +206,7 @@ package_kdegames-kfourinline() { pkgdesc='Four-in-a-row Board Game' depends=('kdebase-runtime' 'kdegames-libkdegames') url="http://kde.org/applications/games/kfourinline/" - install='kdegames.install' + install='kdegames-kfourinline.install' cd $srcdir/build/kfourinline make DESTDIR=$pkgdir install cd $srcdir/build/doc/kfourinline @@ -228,7 +228,7 @@ package_kdegames-kigo() { pkgdesc='Go Board Game' depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo') url="http://kde.org/applications/games/kigo/" - install='kdegames.install' + install='kdegames-kigo.install' cd $srcdir/build/kigo make DESTDIR=$pkgdir install cd $srcdir/build/doc/kigo @@ -329,7 +329,7 @@ package_kdegames-kolf() { pkgdesc='Miniature Golf' depends=('kdebase-runtime' 'kdegames-libkdegames') url="http://kde.org/applications/games/kolf/" - install='kdegames.install' + install='kdegames-kolf.install' cd $srcdir/build/kolf make DESTDIR=$pkgdir install cd $srcdir/build/doc/kolf @@ -409,7 +409,7 @@ package_kdegames-kspaceduel() { pkgdesc='Space Arcade Game' depends=('kdebase-runtime' 'kdegames-libkdegames') url="http://kde.org/applications/games/kspaceduel/" - install='kdegames.install' + install='kdegames-kspaceduel.install' cd $srcdir/build/kspaceduel make DESTDIR=$pkgdir install cd $srcdir/build/doc/kspaceduel @@ -455,7 +455,7 @@ package_kdegames-ktuberling() { pkgdesc='Picture Game for Children' depends=('kdebase-runtime' 'kdegames-libkdegames') url="http://kde.org/applications/games/ktuberling/" - install='kdegames.install' + install='kdegames-ktuberling.install' cd $srcdir/build/ktuberling make DESTDIR=$pkgdir install cd $srcdir/build/doc/ktuberling @@ -496,7 +496,7 @@ package_kdegames-lskat() { pkgdesc='Card Game' depends=('kdebase-runtime' 'kdegames-libkdegames') url="http://kde.org/applications/games/lskat/" - install='kdegames.install' + install='kdegames-lskat.install' cd $srcdir/build/lskat make DESTDIR=$pkgdir install cd $srcdir/build/doc/lskat diff --git a/extra/kdegames/kdegames-kbattleship.install b/extra/kdegames/kdegames-kbattleship.install index ae4e089cb..ac4516ed0 100644 --- a/extra/kdegames/kdegames-kbattleship.install +++ b/extra/kdegames/kdegames-kbattleship.install @@ -1,5 +1,6 @@ post_install() { xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q ggz-config -i -f -m usr/share/ggz/kbattleship.dsc >& /dev/null } @@ -19,4 +20,5 @@ post_upgrade() { post_remove() { xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q } diff --git a/extra/kdegames/kdegames-kfourinline.install b/extra/kdegames/kdegames-kfourinline.install new file mode 100644 index 000000000..9b20edb30 --- /dev/null +++ b/extra/kdegames/kdegames-kfourinline.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/extra/kdegames/kdegames-kigo.install b/extra/kdegames/kdegames-kigo.install new file mode 100644 index 000000000..9b20edb30 --- /dev/null +++ b/extra/kdegames/kdegames-kigo.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/extra/kdegames/kdegames-kolf.install b/extra/kdegames/kdegames-kolf.install new file mode 100644 index 000000000..9b20edb30 --- /dev/null +++ b/extra/kdegames/kdegames-kolf.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/extra/kdegames/kdegames-kspaceduel.install b/extra/kdegames/kdegames-kspaceduel.install new file mode 100644 index 000000000..9b20edb30 --- /dev/null +++ b/extra/kdegames/kdegames-kspaceduel.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/extra/kdegames/kdegames-ktuberling.install b/extra/kdegames/kdegames-ktuberling.install new file mode 100644 index 000000000..9b20edb30 --- /dev/null +++ b/extra/kdegames/kdegames-ktuberling.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/extra/kdegames/kdegames-lskat.install b/extra/kdegames/kdegames-lskat.install new file mode 100644 index 000000000..9b20edb30 --- /dev/null +++ b/extra/kdegames/kdegames-lskat.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/extra/kdegames/kdegames-palapeli.install b/extra/kdegames/kdegames-palapeli.install index ce5c32e1b..c77e68041 100644 --- a/extra/kdegames/kdegames-palapeli.install +++ b/extra/kdegames/kdegames-palapeli.install @@ -1,6 +1,7 @@ post_install() { xdg-icon-resource forceupdate --theme hicolor &> /dev/null update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q } post_upgrade() { @@ -9,4 +10,4 @@ post_upgrade() { post_remove() { post_install -}
\ No newline at end of file +} diff --git a/extra/kdelibs/PKGBUILD b/extra/kdelibs/PKGBUILD index 26101a6f1..572d2bdb3 100644 --- a/extra/kdelibs/PKGBUILD +++ b/extra/kdelibs/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 122716 2011-05-06 07:29:37Z andrea $ +# $Id: PKGBUILD 122843 2011-05-06 11:48:02Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdelibs pkgver=4.6.3 -pkgrel=1 +pkgrel=2 pkgdesc="KDE Core Libraries" arch=('i686' 'x86_64' 'mips64el') url='http://www.kde.org' license=('GPL' 'LGPL' 'FDL') -depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'heimdal' +depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'krb5' 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt' 'grantlee' 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'xdg-utils' 'phonon' 'hicolor-icon-theme' 'upower' 'udisks' 'libxcursor' diff --git a/extra/kdelibs3/PKGBUILD b/extra/kdelibs3/PKGBUILD index ce0d2f7f9..e9494adac 100644 --- a/extra/kdelibs3/PKGBUILD +++ b/extra/kdelibs3/PKGBUILD @@ -1,10 +1,11 @@ -# $ Id: $ -# Maintainer: Pierre Schmitz <pierre@archlinux.de> +# $Id: PKGBUILD 123704 2011-05-12 16:07:27Z andrea $ +# Maintainer: +# Contributor: Pierre Schmitz <pierre@archlinux.de> # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=kdelibs3 pkgver=3.5.10 -pkgrel=10 +pkgrel=11 pkgdesc='KDE3 Core Libraries' arch=('i686' 'x86_64' 'mips64el') url='http://www.kde.org' @@ -19,23 +20,26 @@ source=("ftp://ftp.kde.org/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz 'acinclude.patch' 'kde3.profile' 'kde4-compatibility.patch' - 'kconf_updaterc') + 'kconf_updaterc' + 'openssl.patch') md5sums=('43cd55ed15f63b5738d620ef9f9fd568' 'ca50d4515468cfda80946690c53073f3' 'a5aedcc9550809ce6672a7dddf9f5ad4' 'ab14ce2c40698e24e162284d50c6f466' 'f4e0735475b5de59d738d68a9f467b77' - '11e49bc6aca497f55610146afe217751') + '11e49bc6aca497f55610146afe217751' + '242f0e4750c019e62e285c0aad0c03b8') build() { - cd $srcdir/kdelibs-${pkgver} + cd "$srcdir"/kdelibs-${pkgver} . /etc/profile.d/qt3.sh - . $srcdir/kde3.profile + . "$srcdir"/kde3.profile - patch -p0 -i $srcdir/kde-3.5-1074156.patch || return 1 - patch -p1 -i $srcdir/acinclude.patch || return 1 - patch -p1 -i $srcdir/kde4-compatibility.patch || return 1 + patch -p0 -i "$srcdir"/kde-3.5-1074156.patch + patch -p1 -i "$srcdir"/acinclude.patch + patch -p1 -i "$srcdir"/kde4-compatibility.patch + patch -p1 -i "${srcdir}"/openssl.patch sed -iautomake -e 's|automake\*1.10\*|automake\*1.1[0-5]\*|' admin/cvs.sh make -f admin/Makefile.common cvs @@ -54,32 +58,33 @@ build() { --enable-final \ --enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \ --without-arts \ - --disable-libfam || return 1 - make || return 1 + --disable-libfam + make } package() { - cd $srcdir/kdelibs-${pkgver} + cd "$srcdir"/kdelibs-${pkgver} - make DESTDIR=$pkgdir install || return 1 + make DESTDIR="$pkgdir" install # disable broken kconf_update by default - install -D -m644 $srcdir/kconf_updaterc $pkgdir/opt/kde/share/config/kconf_updaterc + install -D -m644 "$srcdir"/kconf_updaterc \ + "$pkgdir"/opt/kde/share/config/kconf_updaterc # install KDE3 profile - install -D -m755 $srcdir/kde3.profile $pkgdir/etc/profile.d/kde3.sh + install -D -m755 "$srcdir"/kde3.profile "$pkgdir"/etc/profile.d/kde3.sh # make KDE3 styles available to Qt3 - install -d -m755 $pkgdir/opt/qt/plugins - ln -sf /opt/kde/lib/kde3/plugins/styles $pkgdir/opt/qt/plugins/styles + install -d -m755 "$pkgdir"/opt/qt/plugins + ln -sf /opt/kde/lib/kde3/plugins/styles "$pkgdir"/opt/qt/plugins/styles # cert bundle seems to be hardcoded # link it to the one from ca-certificates - rm -f $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt - ln -sf /etc/ssl/certs/ca-certificates.crt $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt + rm -f "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt + ln -sf /etc/ssl/certs/ca-certificates.crt "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt # we don't have khelpcenter anyway - rm -rf $pkgdir/opt/kde/share/doc + rm -rf "$pkgdir"/opt/kde/share/doc - install -d -m755 ${pkgdir}/etc/ld.so.conf.d/ - echo '/opt/kde/lib' > ${pkgdir}/etc/ld.so.conf.d/kdelibs3.conf + install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/ + echo '/opt/kde/lib' > "${pkgdir}"/etc/ld.so.conf.d/kdelibs3.conf } diff --git a/extra/kdelibs3/openssl.patch b/extra/kdelibs3/openssl.patch new file mode 100644 index 000000000..a948b884a --- /dev/null +++ b/extra/kdelibs3/openssl.patch @@ -0,0 +1,180 @@ +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.cc +--- kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x 2009-09-04 23:10:53.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -96,9 +96,14 @@ static int (*K_BIO_write) (BIO *b, cons + static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *, + const EVP_CIPHER *,unsigned char *,int , + pem_password_cb *, void *) = 0L; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L; ++static ASN1_ITEM *K_NETSCAPE_X509_it = 0L; ++#else + static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L; + static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L; + static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L; ++#endif + static int (*K_X509_print_fp) (FILE *, X509*) = 0L; + static int (*K_i2d_PKCS12) (PKCS12*, unsigned char**) = 0L; + static int (*K_i2d_PKCS12_fp) (FILE *, PKCS12*) = 0L; +@@ -430,9 +435,14 @@ KConfig *cfg; + K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) _cryptoLib->symbol("BIO_ctrl"); + K_BIO_write = (int (*) (BIO *b, const void *data, int len)) _cryptoLib->symbol("BIO_write"); + K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) _cryptoLib->symbol("PEM_ASN1_write_bio"); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_item_i2d_fp"); ++ K_NETSCAPE_X509_it = (ASN1_ITEM *) _cryptoLib->symbol("NETSCAPE_X509_it"); ++#else + K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) _cryptoLib->symbol("X509_asn1_meth"); + K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_i2d_fp"); + K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) _cryptoLib->symbol("i2d_ASN1_HEADER"); ++#endif + K_X509_print_fp = (int (*)(FILE*, X509*)) _cryptoLib->symbol("X509_print_fp"); + K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) _cryptoLib->symbol("i2d_PKCS12"); + K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) _cryptoLib->symbol("i2d_PKCS12_fp"); +@@ -594,7 +604,7 @@ KConfig *cfg; + K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) _sslLib->symbol("SSL_set_session"); + K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, long)) _sslLib->symbol("d2i_SSL_SESSION"); + K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) _sslLib->symbol("i2d_SSL_SESSION"); +- K_SSL_get_ciphers = (STACK *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); ++ K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); + #endif + + +@@ -982,7 +992,13 @@ int KOpenSSLProxy::PEM_write_bio_X509(BI + else return -1; + } + +- ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) { ++ if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it) ++ return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x); ++ else return -1; ++} ++#else + ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) { + if (K_X509_asn1_meth) return (K_X509_asn1_meth)(); + else return 0L; +@@ -994,7 +1010,7 @@ int KOpenSSLProxy::ASN1_i2d_fp(FILE *out + return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x); + else return -1; + } +- ++#endif + + int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) { + if (K_X509_print_fp) return (K_X509_print_fp)(fp, x); +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.h +--- kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x 2006-07-22 10:16:39.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.h 2009-09-04 23:10:53.000000000 +0200 +@@ -48,6 +48,9 @@ class KOpenSSLProxyPrivate; + #include <openssl/stack.h> + #include <openssl/bn.h> + #undef crypt ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++#define STACK _STACK ++#endif + #endif + + #include <kstaticdeleter.h> +@@ -446,12 +449,12 @@ public: + */ + int PEM_write_bio_X509(BIO *bp, X509 *x); + +- ++#if OPENSSL_VERSION_NUMBER < 0x10000000L + /* + * X509_asn1_meth - used for netscape output + */ + ASN1_METHOD *X509_asn1_meth(); +- ++#endif + + /* + * ASN1_i2d_fp - used for netscape output +@@ -531,6 +534,9 @@ public: + */ + void sk_free(STACK *s); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); } ++#endif + + /* + * Number of elements in the stack +@@ -543,6 +549,9 @@ public: + */ + char *sk_value(STACK *s, int n); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); } ++#endif + + /* + * Create a new stack +@@ -555,6 +564,9 @@ public: + */ + int sk_push(STACK *s, char *d); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); } ++#endif + + /* + * Duplicate the stack +diff -up kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc +--- kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x 2005-10-10 17:05:44.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -87,7 +87,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate + + + STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList<KSSLCertificate> &certs) { +- STACK_OF(X509) *x509 = sk_new(NULL); ++ STACK_OF(X509) *x509 = reinterpret_cast<STACK_OF(X509)*>(sk_new(NULL)); + KSSLCertificate *cert = certs.first(); + while(cert) { + sk_X509_push(x509, cert->getCert()); +diff -up kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksslcertificate.cc +--- kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x 2006-01-19 18:06:12.000000000 +0100 ++++ kdelibs-3.5.10/kio/kssl/ksslcertificate.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -1003,17 +1003,31 @@ return qba; + QByteArray KSSLCertificate::toNetscape() { + QByteArray qba; + #ifdef KSSL_HAVE_SSL +-ASN1_HEADER ah; +-ASN1_OCTET_STRING os; +-KTempFile ktf; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ NETSCAPE_X509 nx; ++ ASN1_OCTET_STRING hdr; ++#else ++ ASN1_HEADER ah; ++ ASN1_OCTET_STRING os; ++#endif ++ KTempFile ktf; + +- os.data = (unsigned char *)NETSCAPE_CERT_HDR; +- os.length = strlen(NETSCAPE_CERT_HDR); +- ah.header = &os; +- ah.data = (char *)getCert(); +- ah.meth = d->kossl->X509_asn1_meth(); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ hdr.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ hdr.length = strlen(NETSCAPE_CERT_HDR); ++ nx.header = &hdr; ++ nx.cert = getCert(); ++ ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx); ++#else ++ os.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ os.length = strlen(NETSCAPE_CERT_HDR); ++ ah.header = &os; ++ ah.data = (char *)getCert(); ++ ah.meth = d->kossl->X509_asn1_meth(); + +- d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++#endif + + ktf.close(); + diff --git a/extra/kismet/PKGBUILD b/extra/kismet/PKGBUILD index 4c8f9ee0d..015044fe8 100644 --- a/extra/kismet/PKGBUILD +++ b/extra/kismet/PKGBUILD @@ -1,38 +1,59 @@ -# $Id: PKGBUILD 119587 2011-04-12 15:18:27Z angvp $ -# Contributer: Jason Chu <jason@archlinux.org> -# Maintainer: Juergen Hoetzel <jason@archlinux.org> +# $Id: PKGBUILD 123234 2011-05-09 12:19:16Z angvp $ +# Maintainer: Angel Velasquez <angvp@archlinux.org> +# Contributor: Jason Chu <jason@archlinux.org> +# Contributor: Juergen Hoetzel <jason@archlinux.org> pkgname=kismet pkgver=2011_03_R2 _realver="${pkgver//_/-}" -pkgrel=1 -pkgdesc="802.11b sniffing software" -arch=('i686' 'x86_64' 'mips64el') -license=('GPL') -depends=('gmp' 'imagemagick' 'libpcap>=1.0.0' 'ncurses' 'dbus' 'libjpeg>=7') -optdepends=(perl-libwww) +pkgrel=2 +pkgdesc="802.11 layer2 wireless network detector, sniffer, and intrusion detection system" +arch=('i686' 'x86_64') url="http://www.kismetwireless.net/" +license=('GPL') +depends=('libcap' 'libnl' 'pcre' 'ncurses' 'libpcap>=1.0.0' 'bluez' 'openssl') # already in core: ('linux-api-headers' 'glibc' 'libusb' 'libusb-compat') +makedepends=() # already in core: ('grep' 'gcc-libs') +optdepends=('gpsd: log coordinates of detected networks' + 'wireshark: provide OUI files used to determine device manufacturer' + 'wireshark: mergecap, to merge multiple capture files' + 'sox: provide the default kismet sound playback binary' + 'festival: text-to-speech support' + 'flite: alternative/lightweight text-to-speech support' + 'mac80211-driver: full rfmon support' + 'ruby: ruby interface') backup=('etc/kismet.conf' 'etc/kismet_drone.conf') -options=('!makeflags') -source=(http://www.kismetwireless.net/code/kismet-${pkgver//_/-}.tar.gz) +options=() +install=kismet.install +changelog=kismet.changelog +source=("http://www.kismetwireless.net/code/${pkgname}-${_realver}.tar.gz") md5sums=('8bf077e8111e6dc8c12cadefdf40aadd') build() { - cd "$srcdir/kismet-$_realver" + cd "${srcdir}/${pkgname}-${_realver}" + + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var + make dep + make - ./configure --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var + # Include plugins bundled with kismet + make plugins +} + +package() { + cd "${srcdir}/${pkgname}-${_realver}" - make dep - make - sed -i 's/prism2/wlanng/g' conf/kismet.conf - make DESTDIR="$pkgdir" install + # Install kismet + make DESTDIR="$pkgdir" install - chown root:root "$pkgdir"/usr/share/man/man{1,5}/* + # Install plugins + make plugins-install DESTDIR="$pkgdir" - install -D -m 644 "$srcdir/kismet-$_realver/README" "$pkgdir/usr/share/kismet/README" + # the README is very comprehensive, a good idea to include it + install -D -m 644 "${srcdir}/kismet-${_realver}/README" "${pkgdir}/usr/share/kismet/README" - # Fix the *.conf unexpanded ${prefix} problems - sed -i 's%\${prefix}%/usr%' "$pkgdir"/etc/*.conf + # Our own suid-install, first half (see kismet.install) + install -o "root" -g "root" -m 4550 kismet_capture "${pkgdir}/usr/bin/" } + diff --git a/extra/kismet/kismet.changelog b/extra/kismet/kismet.changelog new file mode 100644 index 000000000..e66dcfda0 --- /dev/null +++ b/extra/kismet/kismet.changelog @@ -0,0 +1,26 @@ +2010-05-07 Angel Velasquez <angvp@archlinux.org> + * ChangeLog added + + * Removed old patches from SVN + + * Applied changes from FS#15746 thanks to people who worked on it. + + * Files that are no longer shipped and so should not be backed up: + backup=('etc/ap_manuf' 'etc/client_manuf' 'etc/kismet_ui.conf') + + * No longer needed; gpsmap is deprecated and being replaced with a tile-based + mapper, as of yet incomplete + optdepends=('perl-libwww: fetch maps for gpsmap') + + * Configuration has completely changed, no longer containing + references to either prism2 or wlanng + sed -i 's/prism2/wlanng/g' conf/kismet.conf + + * Ownership of man pages now defaults to "root" if the group "man" does not exist + chown root:root "$pkgdir"/usr/share/man/man{1,5}/* + + * Dependencies no longer needed + depends=('gmp' 'imagemagick' 'dbus' 'libjpeg>=7') + + * Options no longer needed + options=('!makeflags') diff --git a/extra/kismet/kismet.install b/extra/kismet/kismet.install new file mode 100644 index 000000000..0bc806034 --- /dev/null +++ b/extra/kismet/kismet.install @@ -0,0 +1,34 @@ +## arg 1: the new package version +post_install() { + post_upgrade + + cat << EOP + If you have not done so already, read the README file and the FAQ file. + You MUST edit /etc/kismet.conf and configure Kismet for your system, or + it will NOT run properly!" + + Kismet has been installed with a SUID ROOT CAPTURE HELPER executeable by + users in the group ' kismet '. This WILL ALLOW USERS IN THIS GROUP + TO ALTER YOUR NETWORK INTERACE STATES, but is more secure than running + all of Kismet as root. ONLY users in this group will be able to + run Kismet and capture from physical network devices. +EOP +} + +## arg 1: the new package version +## arg 2: the old package version +post_upgrade() { + # Add the group needed to use the limited-functionality binary "kismet_capture" + # Change group ownership of "kismet_capture" to this new group + # Preserve the file mode bits of "kismet_capture" + getent group "kismet" &>/dev/null || /usr/sbin/groupadd -r -g 315 kismet &>/dev/null + chown root:kismet "/usr/bin/kismet_capture" + chmod 4550 "/usr/bin/kismet_capture" +} + +## arg 1: the old package version +post_remove() { + getent group "kismet" &>/dev/null && /usr/sbin/groupdel kismet &>/dev/null +} + +# vim:set ts=2 sw=2 et: diff --git a/extra/ktorrent/PKGBUILD b/extra/ktorrent/PKGBUILD index a0f1ebe79..af2e9d96d 100644 --- a/extra/ktorrent/PKGBUILD +++ b/extra/ktorrent/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 122112 2011-05-02 07:25:24Z andrea $ +# $Id: PKGBUILD 123660 2011-05-12 07:33:28Z ronald $ # Maintainer: Ronald van Haren <ronald.archlinux.org> # Contributor: Travis Willard <travisw@wmpub.ca> # Contributor: Georg Grabler <ggrabler@gmail.com> pkgname=ktorrent pkgver=4.1.1 -pkgrel=1 +pkgrel=2 pkgdesc="A powerful BitTorrent client for KDE" arch=('i686' 'x86_64' 'mips64el') url="http://ktorrent.org" @@ -31,7 +31,7 @@ build() { cmake ../${pkgname}-${pkgver} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DENABLE_MEDIAPLAYER_PLUGIN=false + -DENABLE_MEDIAPLAYER_PLUGIN=true make } diff --git a/extra/ktorrent/ktorrent.install b/extra/ktorrent/ktorrent.install index 3884b350d..c3f65a3dc 100644 --- a/extra/ktorrent/ktorrent.install +++ b/extra/ktorrent/ktorrent.install @@ -1,6 +1,7 @@ post_install() { xdg-icon-resource forceupdate --theme hicolor &> /dev/null update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q } post_upgrade() { diff --git a/extra/libgnomecups/PKGBUILD b/extra/libgnomecups/PKGBUILD index a867d0634..8a8739700 100644 --- a/extra/libgnomecups/PKGBUILD +++ b/extra/libgnomecups/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 75341 2010-04-01 10:56:43Z allan $ +# $Id: PKGBUILD 122592 2011-05-04 18:48:08Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Paulius Palevicius <paulius@birzai.com> pkgname=libgnomecups pkgver=0.2.3 -pkgrel=7 +pkgrel=8 pkgdesc="GNOME cups library" arch=(i686 x86_64 'mips64el') license=('LGPL' 'GPL') url="http://www.gnome.org" -depends=('libcups>=1.3.8-2' 'glib2>=2.16.4' 'heimdal>=1.3.1' 'gnutls>=2.4.1') +depends=('libcups' 'glib2' 'krb5' 'gnutls') makedepends=('perlxml') options=(!libtool) source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2 @@ -20,8 +20,12 @@ md5sums=('dc4920c15c9f886f73ea74fbff0ae48b' build() { cd "${srcdir}/${pkgname}-${pkgver}" # This avoids generating huge 'IPP request failed with status 1030' lines - patch -Np1 -i ${srcdir}/libgnomecups_0.2.3-ignore-ipp-not-found.patch || return 1 - ./configure --prefix=/usr || return 1 - make || return 1 - make DESTDIR="${pkgdir}" install || return 1 + patch -Np1 -i ${srcdir}/libgnomecups_0.2.3-ignore-ipp-not-found.patch + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install } diff --git a/extra/libgnomeprint/PKGBUILD b/extra/libgnomeprint/PKGBUILD index 7fcc3250e..4779db9b4 100644 --- a/extra/libgnomeprint/PKGBUILD +++ b/extra/libgnomeprint/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 91999 2010-09-28 16:38:45Z ibiru $ +# $Id: PKGBUILD 122595 2011-05-04 18:55:04Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=libgnomeprint pkgver=2.18.8 -pkgrel=1 +pkgrel=2 pkgdesc="Printing routines for GNOME" arch=(i686 x86_64 'mips64el') license=('LGPL' 'GPL') -depends=('pango>=1.28.1' 'libart-lgpl>=2.3.21' 'libxml2>=2.7.7' 'libgnomecups>=0.2.3-4' 'heimdal>=1.3.3' 'gnutls>=2.8.6') +depends=('pango' 'libart-lgpl' 'libxml2' 'libgnomecups' 'krb5' 'gnutls') makedepends=('intltool' 'pkgconfig') replaces=('libgnomeprint-cups') conflicts=('libgnomeprint-cups') @@ -20,5 +20,9 @@ build() { cd "${srcdir}/${pkgname}-${pkgver}" ./configure --prefix=/usr --disable-static make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}" install } diff --git a/extra/lzo/PKGBUILD b/extra/lzo/PKGBUILD index eef9fa8f2..f93973dba 100644 --- a/extra/lzo/PKGBUILD +++ b/extra/lzo/PKGBUILD @@ -1,25 +1,35 @@ -# $Id: PKGBUILD 37199 2009-05-01 03:25:47Z eric $ +# $Id: PKGBUILD 123754 2011-05-12 20:58:30Z andrea $ +# Maintainer: # Contributor: Low Kian Seong <fastmail_low@speedymail.org> -# Maintainer: Judd Vinet <jvinet@zeroflux.org> +# Contributor: Judd Vinet <jvinet@zeroflux.org> +# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> + pkgname=lzo pkgver=1.08 -pkgrel=5 -pkgdesc="LZO is a portable lossless data compression library written in ANSI C" -arch=(i686 x86_64 'mips64el') +pkgrel=6 +pkgdesc='A portable lossless data compression library written in ANSI C' +arch=('i686' 'x86_64') license=('GPL') -url="http://www.oberhumer.com/opensource/lzo" +url='http://www.oberhumer.com/opensource/lzo' depends=('glibc') makedepends=('nasm') options=('!libtool') -source=(http://www.oberhumer.com/opensource/${pkgname}/download/${pkgname}-${pkgver}.tar.gz - nasm-gcc3.patch) -md5sums=('ab94d3da364c7cbd5b78d76f1875b0f6' '43fb13762383b572d22152f8815ea4a5') +source=("http://www.oberhumer.com/opensource/lzo/download/LZO-v1/${pkgname}-${pkgver}.tar.gz" + 'nasm-gcc3.patch') +md5sums=('ab94d3da364c7cbd5b78d76f1875b0f6' + '43fb13762383b572d22152f8815ea4a5') build() { - cd ${srcdir}/${pkgname}-${pkgver} - patch -Np0 -i ${srcdir}/nasm-gcc3.patch || return 1 - autoconf || return 1 - ./configure --prefix=/usr --enable-shared || return 1 - make || return 1 - make DESTDIR=${pkgdir} install || return 1 + cd "${srcdir}"/${pkgname}-${pkgver} + + patch -p0 -i "${srcdir}"/nasm-gcc3.patch + autoconf + ./configure --prefix=/usr --enable-shared + make +} + +package() { + cd "${srcdir}"/${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install } diff --git a/extra/maxima/PKGBUILD b/extra/maxima/PKGBUILD index fcd327069..1ab450da4 100644 --- a/extra/maxima/PKGBUILD +++ b/extra/maxima/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 122501 2011-05-04 10:25:04Z ronald $ +# $Id: PKGBUILD 123432 2011-05-11 11:09:27Z juergen $ # Maintainer: Ronald van Haren <ronald.archlinux.org> # Contributor: Damir Perisa <damir@archlinux.org> pkgname=maxima pkgver=5.24.0 -pkgrel=1 +pkgrel=2 pkgdesc="Maxima - a sophisticated computer algebra system" arch=('i686' 'x86_64' 'mips64el') license=('GPL') url="http://maxima.sourceforge.net" -depends=('sbcl=1.0.47' 'texinfo' 'sh') +depends=('sbcl=1.0.48' 'texinfo' 'sh') makedepends=('python2') optdepends=('gnuplot: plotting capabilities' 'rlwrap: readline support via /usr/bin/rmaxima' 'tk: graphical xmaxima interface') # needs rebuild when bash changes version diff --git a/extra/mutt/PKGBUILD b/extra/mutt/PKGBUILD index 33dcf24cf..9a940857c 100644 --- a/extra/mutt/PKGBUILD +++ b/extra/mutt/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 116680 2011-03-24 21:41:03Z bisson $ +# $Id: PKGBUILD 121107 2011-04-29 00:34:05Z stephane $ # Contributor: tobias [tobias [at] archlinux.org] # Maintainer: Gaetan Bisson <bisson@archlinux.org> pkgname=mutt pkgver=1.5.21 -pkgrel=4 +pkgrel=5 pkgdesc='Small but very powerful text-based mail client' url='http://www.mutt.org/' license=('GPL') backup=('etc/Muttrc') -arch=('i686' 'x86_64' 'mips64el') -depends=('gpgme' 'ncurses' 'openssl' 'libsasl' 'gdbm' 'libidn' 'mime-types' 'heimdal') +arch=('i686' 'x86_64') +depends=('gpgme' 'ncurses' 'openssl' 'libsasl' 'gdbm' 'libidn' 'mime-types' 'krb5') source=("ftp://ftp.mutt.org/mutt/devel/${pkgname}-${pkgver}.tar.gz") sha1sums=('a8475f2618ce5d5d33bff85c0affdf21ab1d76b9') diff --git a/extra/mutter/PKGBUILD b/extra/mutter/PKGBUILD index 4add473fa..0f40309d1 100644 --- a/extra/mutter/PKGBUILD +++ b/extra/mutter/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 120688 2011-04-25 23:12:25Z ibiru $ +# $Id: PKGBUILD 123610 2011-05-11 18:27:48Z ibiru $ # Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com> # Maintainer: Ionut Biru <ibiru@archlinux.org> # Contributor: Michael Kanis <mkanis_at_gmx_dot_de> pkgname=mutter pkgver=3.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="A window manager for GNOME3" arch=(i686 x86_64) license=('GPL') @@ -15,11 +15,14 @@ url="http://www.gnome.org" groups=('gnome') options=('!libtool' '!emptydirs') install=mutter.install -source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2) -sha256sums=('6c3190789f935a2c982e78447726e87cf1d4b7af2f0b407cb6d6aca636e3d708') +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 + squash_some_leaks.patch) +sha256sums=('6c3190789f935a2c982e78447726e87cf1d4b7af2f0b407cb6d6aca636e3d708' + 'dda962cfd884ffbe2c3c4a86641964228d7b04ef30e19bb2894c4398fa4c296a') build() { cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np1 -i "${srcdir}/squash_some_leaks.patch" ./configure --prefix=/usr --sysconfdir=/etc \ --libexecdir=/usr/lib/mutter \ --localstatedir=/var --disable-static diff --git a/extra/mutter/squash_some_leaks.patch b/extra/mutter/squash_some_leaks.patch new file mode 100644 index 000000000..0e6b506bc --- /dev/null +++ b/extra/mutter/squash_some_leaks.patch @@ -0,0 +1,70 @@ +From 65963748860aec8e3d7ee939b3b16876f4117904 Mon Sep 17 00:00:00 2001 +From: Colin Walters <walters@verbum.org> +Date: Thu, 05 May 2011 20:11:02 +0000 +Subject: region-utils.c: Squash a memory leak + +"chunk" was an allocated but unused variable. + +https://bugzilla.gnome.org/show_bug.cgi?id=649504 +--- +diff --git a/src/compositor/region-utils.c b/src/compositor/region-utils.c +index b4071ca..cf3c64e 100644 +--- a/src/compositor/region-utils.c ++++ b/src/compositor/region-utils.c +@@ -248,7 +248,6 @@ expand_region_inverse (cairo_region_t *region, + MetaRegionBuilder builder; + MetaRegionIterator iter; + cairo_rectangle_int_t extents; +- cairo_region_t *chunk; + + int last_x; + +@@ -268,16 +267,11 @@ expand_region_inverse (cairo_region_t *region, + extents.x, extents.y + extents.height, extents.width, 1, + x_amount, y_amount, flip); + +- chunk = NULL; +- + last_x = extents.x; + for (meta_region_iterator_init (&iter, region); + !meta_region_iterator_at_end (&iter); + meta_region_iterator_next (&iter)) + { +- if (chunk == NULL) +- chunk = cairo_region_create (); +- + if (iter.rectangle.x > last_x) + add_expanded_rect (&builder, + last_x, iter.rectangle.y, +-- +cgit v0.9 +From d0414a3ea697738dcdf2641b6a8000df35215862 Mon Sep 17 00:00:00 2001 +From: Colin Walters <walters@verbum.org> +Date: Thu, 05 May 2011 20:46:00 +0000 +Subject: theme.c: Squash memory leak + +When converting a token to a different type, we need to free its +string. + +https://bugzilla.gnome.org/show_bug.cgi?id=649500 +--- +diff --git a/src/ui/theme.c b/src/ui/theme.c +index 0077388..9305645 100644 +--- a/src/ui/theme.c ++++ b/src/ui/theme.c +@@ -2639,11 +2639,13 @@ meta_theme_replace_constants (MetaTheme *theme, + { + if (meta_theme_lookup_int_constant (theme, t->d.v.name, &ival)) + { ++ g_free (t->d.v.name); + t->type = POS_TOKEN_INT; + t->d.i.val = ival; + } + else if (meta_theme_lookup_float_constant (theme, t->d.v.name, &dval)) + { ++ g_free (t->d.v.name); + t->type = POS_TOKEN_DOUBLE; + t->d.d.val = dval; + } +-- +cgit v0.9 diff --git a/extra/neon/PKGBUILD b/extra/neon/PKGBUILD index 746929a95..b43b0526d 100644 --- a/extra/neon/PKGBUILD +++ b/extra/neon/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 77208 2010-04-11 13:31:45Z pierre $ +# $Id: PKGBUILD 121086 2011-04-29 00:26:05Z stephane $ # Contributor: Tom Newsom <Jeepster@gmx.co.uk> # Maintainer: Juergen Hoetzel <juergen@archlinux.org> # KEEP LIBTOOL FILES! pkgname=neon pkgver=0.29.3 -pkgrel=2 +pkgrel=3 pkgdesc="HTTP and WebDAV client library with a C interface" arch=('i686' 'x86_64' 'mips64el') license=('GPL' 'LGPL') -depends=('heimdal' 'expat' 'ca-certificates') +depends=('krb5' 'expat' 'ca-certificates') url="http://www.webdav.org/neon/" source=("http://www.webdav.org/neon/${pkgname}-${pkgver}.tar.gz") md5sums=('ba1015b59c112d44d7797b62fe7bee51') @@ -20,7 +20,7 @@ build() { ./configure --prefix=/usr \ --with-expat --enable-shared --disable-static \ --with-ssl=openssl --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt - make || return 1 + make } package() { diff --git a/extra/nss_ldap/PKGBUILD b/extra/nss_ldap/PKGBUILD index cc259782b..44e8df8d2 100644 --- a/extra/nss_ldap/PKGBUILD +++ b/extra/nss_ldap/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 109106 2011-02-06 10:18:06Z andyrtr $ +# $Id: PKGBUILD 121171 2011-04-29 06:45:19Z stephane $ # Maintainer: Paul Mattal <paul@archlinux.org> # Contributor: Comete <la_comete@tiscali.fr> pkgname=nss_ldap pkgver=265 -pkgrel=1 +pkgrel=2 pkgdesc="The nss_ldap module provides the means for Linux and Solaris workstations to resolve the entities defined in RFC 2307 from LDAP directories." arch=(i686 x86_64 'mips64el') url="http://www.padl.com/OSS/nss_ldap.html" license=('LGPL') -depends=('libldap>=2.4.18' 'heimdal>=1.2.1') +depends=('libldap>=2.4.18' 'krb5') backup=("etc/nss_ldap.conf") source=(http://www.padl.com/download/${pkgname}-${pkgver}.tar.gz) md5sums=('c1cb02d1a85538cf16bca6f6a562abe4') diff --git a/extra/obconf/PKGBUILD b/extra/obconf/PKGBUILD index 1d64dd0f4..0fa8c420e 100644 --- a/extra/obconf/PKGBUILD +++ b/extra/obconf/PKGBUILD @@ -1,25 +1,35 @@ -# $Id: PKGBUILD 38529 2009-05-08 21:31:17Z jgc $ -# Maintainer: tobias <tobias@archlinux.org> -# Contributor: Tobias Kieslich <tobias@justdreams.de> +# $Id: PKGBUILD 123764 2011-05-12 21:09:06Z andrea $ +# Maintainer: +# Contributor: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Tobias Kieslich <tobias@archlinux.org> +# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> pkgname=obconf pkgver=2.0.3 -pkgrel=3 -pkgdesc="A gtk2 based configuration tool for the Openbox windowmanager" -arch=(i686 x86_64 'mips64el') +pkgrel=4 +pkgdesc="A GTK2 based configuration tool for the Openbox windowmanager" +arch=('i686' 'x86_64') +url="http://icculus.org/openbox/index.php/ObConf:About" license=('GPL') -url="http://tr.openmonkey.com/pages/obconf/" -depends=('openbox>=3.4.5' 'gtk2>=2.16.1' 'libglade' 'desktop-file-utils') +depends=('openbox' 'gtk2' 'libglade' 'desktop-file-utils' 'libsm') install=${pkgname}.install -source=(http://icculus.org/openbox/${pkgname}/${pkgname}-${pkgver}.tar.gz \ - http://icculus.org/openbox/mw/images/8/80/Obconf-72.png) -md5sums=('b22e273721851dedad72acbc77eefb68' '340ae4732e76731d2838473541eb8d4e') +source=("http://icculus.org/openbox/${pkgname}/${pkgname}-${pkgver}.tar.gz" + 'http://icculus.org/openbox/mw/images/8/80/Obconf-72.png') +md5sums=('b22e273721851dedad72acbc77eefb68' + '340ae4732e76731d2838473541eb8d4e') build() { - cd ${startdir}/src/${pkgname}-${pkgver} - ./configure --prefix=/usr || return 1 - make || return 1 - sed -i 's/=openbox/=obconf/' obconf.desktop || return 1 - make DESTDIR=${startdir}/pkg install || return 1 - install -Dm644 ../Obconf-72.png ${startdir}/pkg/usr/share/pixmaps/obconf.png || return 1 + cd "${srcdir}"/${pkgname}-${pkgver} + + ./configure --prefix=/usr + make + sed -i 's/=openbox/=obconf/' obconf.desktop +} + +package() { + cd "${srcdir}"/${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install + install -Dm644 ../Obconf-72.png \ + "${pkgdir}"/usr/share/pixmaps/obconf.png } diff --git a/extra/opensp/PKGBUILD b/extra/opensp/PKGBUILD index 322d75c4b..0559cfe6e 100644 --- a/extra/opensp/PKGBUILD +++ b/extra/opensp/PKGBUILD @@ -1,29 +1,35 @@ -# $Id: PKGBUILD 27683 2009-02-24 20:03:03Z eric $ -# Maintainer: dorphell <dorphell@archlinux.org> +# $Id: PKGBUILD 123744 2011-05-12 20:50:20Z andrea $ +# Maintainer: +# Contributor: dorphell <dorphell@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgname=opensp pkgver=1.5.2 -pkgrel=1 -pkgdesc="A library and a set of tools for validating, parsing and manipulating SGML and XML documents." -arch=('i686' 'x86_64' 'mips64el') +pkgrel=2 +pkgdesc="A library and a set of tools for validating, parsing and manipulating SGML and XML documents" +arch=('i686' 'x86_64') url="http://openjade.sourceforge.net/" license=('BSD') depends=('gcc-libs') makedepends=('xmlto' 'docbook-xsl') options=('!libtool') -source=(http://download.sourceforge.net/openjade/OpenSP-$pkgver.tar.gz) +source=("http://download.sourceforge.net/openjade/OpenSP-$pkgver.tar.gz") md5sums=('670b223c5d12cee40c9137be86b6c39b') build() { - cd $srcdir/OpenSP-$pkgver - ./configure --prefix=/usr --mandir=/usr/share/man \ - --disable-nls \ - --enable-http \ - --enable-default-catalog=/etc/sgml/catalog:/etc/xml/catalog \ - --enable-default-search-path=/usr/share/sgml:/usr/share/xml \ - --enable-xml-messages || return 1 - make || return 1 - make DESTDIR=$pkgdir install || return 1 - install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING + cd "${srcdir}"/OpenSP-$pkgver + ./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --disable-nls \ + --enable-http \ + --enable-default-catalog=/etc/sgml/catalog:/etc/xml/catalog \ + --enable-default-search-path=/usr/share/sgml:/usr/share/xml \ + --enable-xml-messages + make +} + +package() { + cd "${srcdir}"/OpenSP-$pkgver + make DESTDIR="${pkgdir}" install + install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE } diff --git a/extra/oxygen-gtk/PKGBUILD b/extra/oxygen-gtk/PKGBUILD index 20bce5af7..a27d7abfd 100644 --- a/extra/oxygen-gtk/PKGBUILD +++ b/extra/oxygen-gtk/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 119675 2011-04-13 12:39:30Z andrea $ +# $Id: PKGBUILD 123677 2011-05-12 11:19:55Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: birdflesh <antkoul at gmail dot com> pkgname=oxygen-gtk -pkgver=1.0.4 +pkgver=1.0.5 pkgrel=1 pkgdesc="Port of the default KDE widget theme (Oxygen) to GTK" arch=('i686' 'x86_64' 'mips64el') @@ -12,7 +12,7 @@ license=('LGPL') depends=('gtk2') makedepends=('cmake') source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2") -md5sums=('0aed63523f8abe79860e6b934a9d6210') +md5sums=('4a30da4b5442d896c054cfcae783248e') build() { cd ${srcdir} diff --git a/extra/qca-gnupg/PKGBUILD b/extra/qca-gnupg/PKGBUILD index 92058b649..cbe885624 100644 --- a/extra/qca-gnupg/PKGBUILD +++ b/extra/qca-gnupg/PKGBUILD @@ -1,10 +1,11 @@ -# $Id: $ -# Maintainer: Pierre Schmitz <pierre@archlinux.de> +# $Id: PKGBUILD 123769 2011-05-12 21:14:25Z andrea $ +# Maintainer: +# Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=qca-gnupg pkgver=2.0.0 _pkgver=2.0.0-beta3 -pkgrel=1 +pkgrel=2 pkgdesc="Qt Cryptographic Architecture" arch=('i686' 'x86_64' 'mips64el') url="http://delta.affinix.com/qca/" @@ -15,10 +16,14 @@ source=("http://delta.affinix.com/download/qca/2.0/plugins/${pkgname}-${_pkgver} md5sums=('9b4d020efd835a52d98b2ced9ae79c4b') build() { - cd $srcdir/${pkgname}-${_pkgver} + cd "${srcdir}"/${pkgname}-${_pkgver} ./configure \ --release \ --no-separate-debug-info - make || return 1 - make INSTALL_ROOT=$pkgdir install + make +} + +package() { + cd "${srcdir}"/${pkgname}-${_pkgver} + make INSTALL_ROOT="${pkgdir}" install } diff --git a/extra/qt3/PKGBUILD b/extra/qt3/PKGBUILD index e5823fc36..c0e86f867 100644 --- a/extra/qt3/PKGBUILD +++ b/extra/qt3/PKGBUILD @@ -1,22 +1,27 @@ -# $Id: PKGBUILD 120507 2011-04-24 15:55:09Z andrea $ -# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# $Id: PKGBUILD 123699 2011-05-12 15:47:03Z andrea $ +# Maintainer: +# Contributor: Tobias Powalowski <tpowa@archlinux.org> # Contributor: John Proctor <jproctor@prium.net> pkgname=qt3 pkgver=3.3.8 -pkgrel=19 -pkgdesc="The QT gui toolkit." -arch=(i686 x86_64 'mips64el') +pkgrel=20 +pkgdesc="The QT3 gui toolkit" +arch=('i686' 'x86_64') license=('GPL') url="http://www.trolltech.com/products/qt/index.html" pkgfqn=qt-x11-free-${pkgver} install=qt.install -depends=('libpng>=1.4.0' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' \ - 'libxft' 'libxrandr' 'libmng>=1.0.10-3') -makedepends=('mysql' 'postgresql>=8.2.3' 'unixodbc' 'sqlite3') +depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft' + 'libxrandr' 'libmng') +makedepends=('mysql' 'postgresql' 'unixodbc' 'sqlite3') optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc') -source=(ftp://ftp.trolltech.com/qt/source/${pkgfqn}.tar.bz2 qt3-png14.patch qt.profile \ - qt-copy-kde-patches.tar.bz2 qt-patches.tar.bz2 utf8-bug-qt3.diff \ +source=("ftp://ftp.trolltech.com/qt/source/${pkgfqn}.tar.bz2" + qt3-png14.patch + qt.profile + qt-copy-kde-patches.tar.bz2 + qt-patches.tar.bz2 + utf8-bug-qt3.diff qt-font-default-subst.diff mysql.patch eastern_asian_languagues.diff @@ -40,11 +45,11 @@ md5sums=('cf3c43a7dfde5bfb76f8001102fe6e85' build() { unset QMAKESPEC - export QTDIR=${srcdir}/$pkgfqn + export QTDIR="${srcdir}"/$pkgfqn export PATH=${QTDIR}/bin:${PATH} export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH} export QMAKESPEC=$QTDIR/mkspecs/linux-g++ - cd ${srcdir}/$pkgfqn + cd "${srcdir}"/$pkgfqn # apply qt patches from kde.org for i in ../qt-copy-kde-patches/*; do patch -Np0 -i $i @@ -54,19 +59,19 @@ build() { patch -Np1 -i $i done # fix utf8 bug - patch -Np0 -i ../utf8-bug-qt3.diff + patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff # fix asia fonts - patch -Np0 -i ../qt-font-default-subst.diff + patch -p0 -i "${srcdir}"/qt-font-default-subst.diff # fix segfaults on exit when using mysql DB driver - patch -Np0 -i ../mysql.patch + patch -p0 -i "${srcdir}"/mysql.patch # fix CJK font/chars select error (FS#11245) - patch -p1 -i ${srcdir}/eastern_asian_languagues.diff + patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff # fix build problem against new unixODBC - patch -p1 -i ${srcdir}/qt-odbc.patch + patch -p1 -i "${srcdir}"/qt-odbc.patch # fix build with gcc 4.6.0 - patch -p1 -i ${srcdir}/gcc-4.6.patch + patch -p1 -i "${srcdir}"/gcc-4.6.patch - patch -p0 -i ${srcdir}/qt3-png14.patch + patch -p0 -i "${srcdir}"/qt3-png14.patch # start compiling qt sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix rm -rf doc/html examples tutorial @@ -85,45 +90,54 @@ build() { else unset ARCH fi - ./configure -prefix /opt/qt -platform linux-g++$ARCH \ - -system-zlib -qt-gif -release -shared -sm -nis -thread -stl \ + ./configure -prefix /opt/qt \ + -platform linux-g++$ARCH \ + -system-zlib \ + -qt-gif \ + -release \ + -shared \ + -sm \ + -nis \ + -thread \ + -stl \ -system-lib{png,jpeg,mng} \ - -no-g++-exceptions -plugin-sql-{mysql,psql,sqlite,odbc} + -no-g++-exceptions \ + -plugin-sql-{mysql,psql,sqlite,odbc} # fix /opt/qt/lib path - [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/src/Makefile - [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/designer/designer/Makefile - [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/designer/editor/Makefile - [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/assistant/lib/Makefile - [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/designer/uilib/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/src/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/designer/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/editor/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/assistant/lib/Makefile + [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/uilib/Makefile - cd ${srcdir}/$pkgfqn + cd "${srcdir}"/$pkgfqn make -C qmake - cd ${srcdir}/$pkgfqn/plugins/src/sqldrivers/mysql - ${srcdir}/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro - cd ${srcdir}/$pkgfqn/plugins/src/sqldrivers/psql - ${srcdir}/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro + cd "${srcdir}"/$pkgfqn/plugins/src/sqldrivers/mysql + "${srcdir}"/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro + cd "${srcdir}"/$pkgfqn/plugins/src/sqldrivers/psql + "${srcdir}"/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro - cd ${srcdir}/$pkgfqn + cd "${srcdir}"/$pkgfqn # fix the broken makefiles #sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile make } package() { - cd ${srcdir}/$pkgfqn - make INSTALL_ROOT=${pkgdir} install - rm -rf ${pkgdir}/opt/qt/{phrasebooks,templates,translations} - sed -i "s|-L${srcdir}/$pkgfqn/lib ||g" ${pkgdir}/opt/qt/lib/*.prl - install -D -m755 qmake/qmake ${pkgdir}/opt/qt/bin/qmake - install -D -m755 ${srcdir}/qt.profile ${pkgdir}/etc/profile.d/qt3.sh - ln -sf /opt/qt/bin/qtconfig ${pkgdir}/opt/qt/bin/qt3config - rm -f ${pkgdir}/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH + cd "${srcdir}"/$pkgfqn + make INSTALL_ROOT="${pkgdir}" install + rm -rf "${pkgdir}"/opt/qt/{phrasebooks,templates,translations} + sed -i "s|-L${srcdir}/$pkgfqn/lib ||g" "${pkgdir}"/opt/qt/lib/*.prl + install -D -m755 qmake/qmake "${pkgdir}"/opt/qt/bin/qmake + install -D -m755 "${srcdir}"/qt.profile "${pkgdir}"/etc/profile.d/qt3.sh + ln -sf /opt/qt/bin/qtconfig "${pkgdir}"/opt/qt/bin/qt3config + rm -f "${pkgdir}"/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH # install man pages - install -d -m755 ${pkgdir}/opt/qt/man - cp -r ${srcdir}/$pkgfqn/doc/man/{man1,man3} ${pkgdir}/opt/qt/man/ + install -d -m755 "${pkgdir}"/opt/qt/man + cp -r "${srcdir}"/$pkgfqn/doc/man/{man1,man3} "${pkgdir}"/opt/qt/man/ - install -d -m755 ${pkgdir}/etc/ld.so.conf.d/ - echo '/opt/qt/lib' > ${pkgdir}/etc/ld.so.conf.d/qt3.conf + install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/ + echo '/opt/qt/lib' > "${pkgdir}"/etc/ld.so.conf.d/qt3.conf } diff --git a/extra/re2c/PKGBUILD b/extra/re2c/PKGBUILD index ab10f9595..8b0d5be7a 100644 --- a/extra/re2c/PKGBUILD +++ b/extra/re2c/PKGBUILD @@ -1,23 +1,26 @@ -# $Id: PKGBUILD 24272 2009-01-15 20:24:40Z giovanni $ +# $Id: PKGBUILD 123734 2011-05-12 20:45:05Z andrea $ +# Maintainer: # Contributor: nut543 <kfs1@online.no> -# Maintainer: Dale Blount <dale@archlinux.org> +# Contributor: Dale Blount <dale@archlinux.org> + pkgname=re2c pkgver=0.13.5 -arch=('i686' 'x86_64' 'mips64el') +pkgrel=2 +arch=('i686' 'x86_64') depends=('gcc-libs') -makedepends=('gcc') -pkgrel=1 -pkgdesc="a tool for generating C-based recognizers from regular expressions." +pkgdesc="A tool for generating C-based recognizers from regular expressions" url="http://re2c.sourceforge.net/" license=('GPL') -source=(http://downloads.sourceforge.net/sourceforge/re2c/re2c-${pkgver}.tar.gz) +source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz") md5sums=('4a97d8f77ed6d2c76c8bd840a43f5633') build() { - cd $startdir/src/$pkgname-$pkgver + cd "${srcdir}"/$pkgname-$pkgver ./configure --prefix=/usr - make || return 1 - make DESTDIR=$startdir/pkg install + make } - +package() { + cd "${srcdir}"/$pkgname-$pkgver + make DESTDIR="${pkgdir}" install +} diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD index 5bb9d6260..6bd883503 100644 --- a/extra/samba/PKGBUILD +++ b/extra/samba/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 116932 2011-03-26 14:54:05Z tpowa $ +# $Id: PKGBUILD 122577 2011-05-04 17:48:52Z ibiru $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgbase=samba @@ -8,16 +8,16 @@ pkgver=3.5.8 # to append 'a','b',etc to their subsequent releases, which pamcan # misconstrues as alpha, beta, etc. Bad samba! _realver=3.5.8 -pkgrel=2 -arch=(i686 x86_64 'mips64el') +pkgrel=3 +arch=(i686 x86_64) url="http://www.samba.org" license=('GPL3') -makedepends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'fam' 'gnutls>=2.4.1' 'talloc' 'tdb') +makedepends=('db' 'popt' 'libcups' 'acl' 'libldap' 'libcap' 'krb5' 'pam' 'fam' 'gnutls>=2.4.1' 'talloc' 'tdb') options=(!makeflags) source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz - samba samba.logrotate - swat.xinetd - samba.pam + samba samba.logrotate + swat.xinetd + samba.pam samba.conf.d fix-ipv6-mount.patch) ### UNINSTALL dmapi package before building!!! @@ -44,12 +44,12 @@ build() { --disable-avahi \ --with-shared-modules=idmap_ad,idmap_adex,idmap_rid,idmap_hash \ --enable-external-libtdb - make || return 1 + make } package_smbclient () { pkgdesc="Tools to access a server's filespace and printers via SMB" -depends=('readline>=6.0.00' 'popt' 'libldap>=2.4.18-1' 'cifs-utils' 'libcap>=2.16' 'heimdal>=1.2-1' 'db>=4.7' 'e2fsprogs' 'tdb' 'talloc') +depends=('readline' 'popt' 'libldap' 'cifs-utils' 'libcap' 'krb5' 'db' 'e2fsprogs' 'tdb' 'talloc') cd ${srcdir}/${pkgbase}-${_realver}/source3 mkdir -p ${pkgdir}/usr/bin ${pkgdir}/usr/lib install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${pkgdir}/usr/bin/ @@ -72,17 +72,17 @@ depends=('readline>=6.0.00' 'popt' 'libldap>=2.4.18-1' 'cifs-utils' 'libcap>=2.1 package_samba () { pkgdesc="Tools to access a server's filespace and printers via SMB" -backup=(etc/logrotate.d/samba - etc/pam.d/samba +backup=(etc/logrotate.d/samba + etc/pam.d/samba etc/samba/smb.conf etc/xinetd.d/swat etc/conf.d/samba) -depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'fam' 'gnutls>=2.4.1' 'e2fsprogs' 'tdb' 'talloc') +depends=('db' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'krb5' 'pam' 'fam' 'gnutls' 'e2fsprogs' 'tdb' 'talloc') cd ${srcdir}/samba-${_realver}/source3 mkdir -p ${pkgdir}/var/log/samba mkdir -p ${pkgdir}/etc/samba/private chmod 700 ${pkgdir}/etc/samba/private - make DESTDIR=${pkgdir} install + make DESTDIR=${pkgdir} install chmod 644 ${pkgdir}/usr/include/*.h rm -rf ${pkgdir}/usr/var (cd script; cp installbin.sh i; cat i | sed 's/\/sbin\///' > installbin.sh) diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD index 1bcfd7fa8..29fea2638 100644 --- a/extra/sbcl/PKGBUILD +++ b/extra/sbcl/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 117231 2011-03-30 10:39:06Z juergen $ +# $Id: PKGBUILD 123411 2011-05-11 09:13:37Z juergen $ # Contributor: John Proctor <jproctor@prium.net> # Contributor: Daniel White <daniel@whitehouse.id.au> # Maintainer: Juergen Hoetzel <juergen@archlinux.org> # Contributor: Leslie Polzer (skypher) pkgname=sbcl -pkgver=1.0.47 +pkgver=1.0.48 pkgrel=1 pkgdesc="Steel Bank Common Lisp" arch=('i686' 'x86_64' 'mips64el') @@ -14,7 +14,7 @@ depends=('glibc') provides=('common-lisp' 'cl-asdf') makedepends=('sbcl' 'texinfo') source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2" "arch-fixes.lisp") -md5sums=('2e90fca5ffec9ce19ed232b24f09cd0a' +md5sums=('f60f27bcc04d1c9241562aafe4ee5d4a' '7ac0c1936547f4278198b8bf7725204d') url="http://www.sbcl.org/" install=sbcl.install diff --git a/extra/sharutils/PKGBUILD b/extra/sharutils/PKGBUILD index e509d70d7..c04443584 100644 --- a/extra/sharutils/PKGBUILD +++ b/extra/sharutils/PKGBUILD @@ -1,32 +1,32 @@ -# $Id: PKGBUILD 98391 2010-11-08 19:40:29Z andrea $ -# Maintainer: +# $Id: PKGBUILD 123635 2011-05-11 23:31:36Z bisson $ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: Kevin Piche <kevin@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgname=sharutils -pkgver=4.10 +pkgver=4.11.1 pkgrel=1 -pkgdesc="GNU shar makes so-called shell archives out of many files" -arch=('i686' 'x86_64' 'mips64el') -url="http://www.gnu.org/software/sharutils/" +pkgdesc='Makes so-called shell archives out of many files' +url='http://www.gnu.org/software/sharutils/' license=('GPL') +arch=('i686' 'x86_64') depends=('perl' 'gettext' 'texinfo') -install=${pkgname}.install -source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2) -md5sums=('f918859228238d69e1ce78ccbec8f9e0') +source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2") +sha1sums=('e9c9f869f8ecb3bcb30cc323e02e0a1266aeb109') + +install=install build() { - cd ${srcdir}/${pkgname}-${pkgver} - ./configure --prefix=/usr --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --disable-nls - make + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + + make } package() { - cd ${srcdir}/${pkgname}-${pkgver} - make DESTDIR=${pkgdir} install - - rm ${pkgdir}/usr/share/info/dir - gzip ${pkgdir}/usr/share/info/* + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install } diff --git a/extra/sharutils/install b/extra/sharutils/install new file mode 100644 index 000000000..1de76964c --- /dev/null +++ b/extra/sharutils/install @@ -0,0 +1,18 @@ +infodir=/usr/share/info +filelist=(sharutils.info.gz) + +post_install() { + for file in ${filelist[@]}; do + install-info $infodir/$file $infodir/dir + done +} + +post_upgrade() { + post_install +} + +pre_remove() { + for file in ${filelist[@]}; do + install-info --delete $infodir/$file $infodir/dir + done +} diff --git a/extra/subversion/PKGBUILD b/extra/subversion/PKGBUILD index 8839dd111..7b42cf2a6 100644 --- a/extra/subversion/PKGBUILD +++ b/extra/subversion/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 103462 2010-12-19 17:12:50Z paul $ +# $Id: PKGBUILD 121110 2011-04-29 01:29:30Z stephane $ # Maintainer: Paul Mattal <paul@archlinux.org> # Contributor: Jason Chu <jason@archlinux.org> pkgname=subversion pkgver=1.6.15 -pkgrel=1 +pkgrel=2 pkgdesc="Replacement for CVS, another versioning system (SVN)" arch=('i686' 'x86_64' 'mips64el') license=('apache' 'bsd') depends=('neon' 'apr-util') -makedepends=('heimdal' 'apache' 'python2' 'perl' 'swig' 'ruby' 'java-runtime' +makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'ruby' 'java-runtime' 'autoconf' 'sqlite3' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs') source=(http://subversion.tigris.org/downloads/$pkgname-$pkgver.tar.bz2 svnserve svn svnserve.conf svnmerge.py diff --git a/extra/telepathy-mission-control/PKGBUILD b/extra/telepathy-mission-control/PKGBUILD index 304ba7d39..6581d8593 100644 --- a/extra/telepathy-mission-control/PKGBUILD +++ b/extra/telepathy-mission-control/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 123367 2011-05-10 16:31:02Z ibiru $ +# $Id: PKGBUILD 123605 2011-05-11 18:21:04Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> # Contributor: Ju Liu <liuju86 at gmail dot com> # Contributor: Bjorn Lindeijer <bjorn lindeijer nl> # Contributor: Andreas Zwinkau <beza1e1@web.de> pkgname=telepathy-mission-control -pkgver=5.7.10 +pkgver=5.7.11 pkgrel=1 pkgdesc="A Telepathy component providing abstraction of some of the details of connection managers." arch=('i686' 'x86_64' 'mips64el') @@ -14,7 +14,7 @@ depends=('telepathy-glib' 'libgnome-keyring') makedepends=('libxslt' 'python2') options=('!libtool') source=(http://telepathy.freedesktop.org/releases/telepathy-mission-control/$pkgname-$pkgver.tar.gz) -md5sums=('2793b7502c9a88dd1c7468c684bb7a5f') +md5sums=('d4b37aa43f391c34d033b1af5ab32e6d') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/extra/terminal/PKGBUILD b/extra/terminal/PKGBUILD index 4a96ed776..29b1f2aac 100644 --- a/extra/terminal/PKGBUILD +++ b/extra/terminal/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 118239 2011-04-06 07:52:59Z andyrtr $ +# $Id: PKGBUILD 123714 2011-05-12 17:42:28Z foutrelis $ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Contributor: tobias <tobias funnychar archlinux.org> # Contributor: Aurelien Foret <orelien@chez.com> pkgname=terminal pkgver=0.4.7 -pkgrel=1 +pkgrel=2 pkgdesc="A modern terminal emulator primarly for the Xfce desktop environment" arch=(i686 x86_64 'mips64el') license=('GPL2') @@ -16,11 +16,18 @@ depends=('exo>=0.5.4' "vte" 'dbus-glib' makedepends=('pkgconfig' 'intltool') options=('!libtool') install=terminal.install -source=(http://archive.xfce.org/src/apps/${pkgname}/0.4/Terminal-${pkgver}.tar.bz2) -md5sums=('34daa0090e1bc9014a5b9849103a129f') +source=(http://archive.xfce.org/src/apps/${pkgname}/0.4/Terminal-${pkgver}.tar.bz2 + bug-7595-go-menu-single-tab-sensitivity.patch) +md5sums=('34daa0090e1bc9014a5b9849103a129f' + '043774c11e2f8c1c424510847dc82fae') build() { cd ${srcdir}/Terminal-${pkgver} + + # Add upstream patch for Xfce bug #7595 + # (Only make go menu action sensitive if tabs) + patch -Np1 -i ${srcdir}/bug-7595-go-menu-single-tab-sensitivity.patch + ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/xfce4 \ diff --git a/extra/terminal/bug-7595-go-menu-single-tab-sensitivity.patch b/extra/terminal/bug-7595-go-menu-single-tab-sensitivity.patch new file mode 100644 index 000000000..9d8eff6bd --- /dev/null +++ b/extra/terminal/bug-7595-go-menu-single-tab-sensitivity.patch @@ -0,0 +1,22 @@ +From be9fca9ea8cedcf879c8e0c8cea96dd256a3591c Mon Sep 17 00:00:00 2001 +From: Nick Schermer <nick@xfce.org> +Date: Thu, 12 May 2011 16:08:20 +0000 +Subject: Only make go menu action sensitive if tabs > 1 (bug #7595). + +This way the (default) Alt+1 keybinding is usable when +only a single tab is opened in the terminal window. +--- +diff --git a/terminal/terminal-window.c b/terminal/terminal-window.c +index f580a39..0d461a4 100644 +--- a/terminal/terminal-window.c ++++ b/terminal/terminal-window.c +@@ -748,6 +748,7 @@ terminal_window_rebuild_gomenu (TerminalWindow *window) + + /* create action */ + radio_action = gtk_radio_action_new (name, NULL, NULL, NULL, n); ++ gtk_action_set_sensitive (GTK_ACTION (radio_action), npages > 1); + exo_binding_new (G_OBJECT (page), "title", G_OBJECT (radio_action), "label"); + gtk_radio_action_set_group (radio_action, group); + group = gtk_radio_action_get_group (radio_action); +-- +cgit diff --git a/extra/testdisk/PKGBUILD b/extra/testdisk/PKGBUILD index 29ca99100..c4b1b0218 100644 --- a/extra/testdisk/PKGBUILD +++ b/extra/testdisk/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 75596 2010-04-01 22:40:17Z giovanni $ +# $Id: PKGBUILD 123688 2011-05-12 14:06:47Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Michal Krenek <mikos@sg1.cz> pkgname=testdisk -pkgver=6.11.3 -pkgrel=3 +pkgver=6.12 +pkgrel=1 pkgdesc="Checks and undeletes partitions + PhotoRec, signature based recovery tool" arch=('i686' 'x86_64' 'mips64el') url="http://www.cgsecurity.org/index.html?testdisk.html" @@ -13,7 +13,6 @@ license=('GPL') depends=('libjpeg>=8' 'openssl' 'progsreiserfs' 'ntfsprogs') makedepends=('pkgconfig') source=(http://www.cgsecurity.org/${pkgname}-${pkgver}.tar.bz2) -md5sums=('ceee384a8613d8f7ffff5ccfa3fba510') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -24,3 +23,4 @@ build() { make || return 1 make DESTDIR="${pkgdir}/" install || return 1 } +md5sums=('6ef653301f309156f3a802233a3139c1') diff --git a/extra/wireshark/PKGBUILD b/extra/wireshark/PKGBUILD index eaed67b0b..a83355164 100644 --- a/extra/wireshark/PKGBUILD +++ b/extra/wireshark/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 120079 2011-04-19 13:10:40Z guillaume $ +# $Id: PKGBUILD 121168 2011-04-29 06:39:53Z stephane $ # Maintainer: Guillaume ALAUX <guillaume at alaux dot net> # Contributor: Florian Pritz <bluewind at jabber dot ccc dot de> pkgname=(wireshark-cli wireshark-gtk) pkgbase=wireshark pkgver=1.4.6 -pkgrel=1 -arch=('i686' 'x86_64' 'mips64el') +pkgrel=2 +arch=('i686' 'x86_64') license=('GPL2') -makedepends=('bison' 'flex' 'gtk2' 'heimdal' 'libpcap' 'bash' 'gnutls' 'libcap') +makedepends=('bison' 'flex' 'gtk2' 'krb5' 'libpcap' 'bash' 'gnutls' 'libcap') url="http://www.wireshark.org/" options=(!libtool) source=(http://www.wireshark.org/download/src/${pkgbase}-${pkgver}.tar.bz2) @@ -23,7 +23,7 @@ build() { package_wireshark-cli() { pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - CLI version" - depends=('heimdal' 'libpcap' 'bash' 'gnutls' 'libcap' 'glib2') + depends=('krb5' 'libpcap' 'bash' 'gnutls' 'libcap' 'glib2') install=wireshark.install conflicts=(wireshark) diff --git a/extra/xfce4-sensors-plugin/PKGBUILD b/extra/xfce4-sensors-plugin/PKGBUILD index ee62e6d6e..39b1c6e9c 100644 --- a/extra/xfce4-sensors-plugin/PKGBUILD +++ b/extra/xfce4-sensors-plugin/PKGBUILD @@ -1,35 +1,33 @@ -# $Id: PKGBUILD 112922 2011-03-07 18:49:40Z andyrtr $ +# $Id: PKGBUILD 123665 2011-05-12 08:18:26Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Merk Matthias <macem@chello.at> pkgname=xfce4-sensors-plugin -pkgver=1.0.0 -pkgrel=4 +pkgver=1.2.1 +pkgrel=1 pkgdesc="A lm_sensors plugin for the Xfce panel" arch=('i686' 'x86_64' 'mips64el') license=('GPL2') url="http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin" groups=('xfce4-goodies') -depends=('xfce4-panel' 'libxfcegui4' 'lm_sensors' 'libnotify>=0.7.1' 'hicolor-icon-theme') +depends=('xfce4-panel' 'lm_sensors' 'libnotify>=0.7.1' 'hicolor-icon-theme') #'libxfcegui4' makedepends=('pkgconfig' 'intltool' 'hddtemp>=0.3.beta15.45-2' 'gnu-netcat' 'xfce4-dev-tools') optdepends=('gnu-netcat: for hddtemp access') -options=(!libtool) +options=(!libtool !makeflags) install=${pkgname}.install -source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2 - xfce4-sensors-plugin-1.0.0-underlink.patch - xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch) -md5sums=('74d83628246536d575f954c76724982b' - 'f0295e3a7c6beb267355f64fc0ed44d5' - 'b5e9013de01cd8f2b4a72c8f052d2c37') +source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.2/${pkgname}-${pkgver}.tar.bz2 + git.patch) +md5sums=('3fd270762d69eb281594bdf16be924b9' + '181df53dc5bb647274293f72f73ef39b') build() { cd ${srcdir}/${pkgname}-${pkgver} # panel 4.8 patch from http://bugzilla.xfce.org/show_bug.cgi?id=7095 - patch -Np1 -i ${srcdir}/xfce4-sensors-plugin-1.0.0-underlink.patch +# patch -Np1 -i ${srcdir}/xfce4-sensors-plugin-1.0.0-underlink.patch - patch -Np1 -i ${srcdir}/xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch - - xdt-autogen +# patch -Np1 -i ${srcdir}/xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch + patch -Np1 -i ${srcdir}/git.patch + #xdt-autogen ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib \ diff --git a/extra/xfce4-sensors-plugin/git.patch b/extra/xfce4-sensors-plugin/git.patch new file mode 100644 index 000000000..0e2140765 --- /dev/null +++ b/extra/xfce4-sensors-plugin/git.patch @@ -0,0 +1,13319 @@ +From 4b280a23c2a26a77f616efef86ce9784ab513d23 Mon Sep 17 00:00:00 2001 +From: Fabian Nowak <nowak@kit.edu> +Date: Tue, 10 May 2011 09:18:53 +0000 +Subject: False -> FALSE + +--- +diff --git a/lib/sensors-interface.c b/lib/sensors-interface.c +index f501a54..1485e34 100644 +--- a/lib/sensors-interface.c ++++ b/lib/sensors-interface.c +@@ -484,7 +484,7 @@ init_widgets (t_sensors_dialog *sd) + iter, + 0, chipfeature->name, + 1, "0.0", /* chipfeature->formatted_value */ +- 2, False, /* chipfeature->show */ ++ 2, FALSE, /* chipfeature->show */ + 3, "#000000", /* chipfeature->color */ + 4, 0.0, /* chipfeature->min_value */ + 5, 0.0, /* chipfeature->max_value */ +-- +cgit +From 2329169a8528ae02486c8703aed03e41b843d081 Mon Sep 17 00:00:00 2001 +From: Fabian Nowak <nowak@kit.edu> +Date: Tue, 10 May 2011 10:02:57 +0000 +Subject: substitute more libxfcegui4 by libxfce4ui; newer ltmain.sh + +--- +diff --git a/README b/README +index 54d05da..fa6b695 100644 +--- a/README ++++ b/README +@@ -10,12 +10,12 @@ Licence: GPL version 2 (or later at your option) + + Description: Reads your hardware sensor values and displays them in your panel + +-Dependencies: libxfcegui4-4, libxfce4util-i4, libgtk2.0-0, ++Dependencies: libxfce4ui, libxfce4util, libgtk2.0-0, + xfce4-panel +- libxfcegui4-dev, libxfce4util-dev, libgtk2.0-dev, ++ libxfce4ui-dev, libxfce4util-dev, libgtk2.0-dev, + xfce4-panel-dev + +-Optional: hddtemp, netcat, lmsensors3, working ACPI library ++Optional: hddtemp, netcat, lmsensors3, working ACPI library, libnotify, nvidia-utils/xnvctrl + + Installation: ./configure && make && [sudo] make install + +diff --git a/ltmain.sh b/ltmain.sh +index 6f650ae..7ed280b 100755 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -1,9 +1,9 @@ ++# Generated from ltmain.m4sh. + +-# libtool (GNU libtool) 2.4 ++# ltmain.sh (GNU libtool) 2.2.6b + # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + +-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. + # This is free software; see the source for copying conditions. There is NO + # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +@@ -32,56 +32,50 @@ + # + # Provide generalized library-building support services. + # +-# --config show all configuration variables +-# --debug enable verbose shell tracing +-# -n, --dry-run display commands without modifying any files +-# --features display basic configuration information and exit +-# --mode=MODE use operation mode MODE +-# --preserve-dup-deps don't remove duplicate dependency libraries +-# --quiet, --silent don't print informational messages +-# --no-quiet, --no-silent +-# print informational messages (default) +-# --tag=TAG use configuration variables from tag TAG +-# -v, --verbose print more informational messages than default +-# --no-verbose don't print the extra informational messages +-# --version print version information +-# -h, --help, --help-all print short, long, or detailed help message ++# --config show all configuration variables ++# --debug enable verbose shell tracing ++# -n, --dry-run display commands without modifying any files ++# --features display basic configuration information and exit ++# --mode=MODE use operation mode MODE ++# --preserve-dup-deps don't remove duplicate dependency libraries ++# --quiet, --silent don't print informational messages ++# --tag=TAG use configuration variables from tag TAG ++# -v, --verbose print informational messages (default) ++# --version print version information ++# -h, --help print short or long help message + # + # MODE must be one of the following: + # +-# clean remove files from the build directory +-# compile compile a source file into a libtool object +-# execute automatically set library path, then run a program +-# finish complete the installation of libtool libraries +-# install install libraries or executables +-# link create a library or an executable +-# uninstall remove libraries from an installed directory ++# clean remove files from the build directory ++# compile compile a source file into a libtool object ++# execute automatically set library path, then run a program ++# finish complete the installation of libtool libraries ++# install install libraries or executables ++# link create a library or an executable ++# uninstall remove libraries from an installed directory + # +-# MODE-ARGS vary depending on the MODE. When passed as first option, +-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. ++# MODE-ARGS vary depending on the MODE. + # Try `$progname --help --mode=MODE' for a more detailed description of MODE. + # + # When reporting a bug, please describe a test case to reproduce it and + # include the following information: + # +-# host-triplet: $host +-# shell: $SHELL +-# compiler: $LTCC +-# compiler flags: $LTCFLAGS +-# linker: $LD (gnu? $with_gnu_ld) +-# $progname: (GNU libtool) 2.4 Debian-2.4-2 +-# automake: $automake_version +-# autoconf: $autoconf_version ++# host-triplet: $host ++# shell: $SHELL ++# compiler: $LTCC ++# compiler flags: $LTCFLAGS ++# linker: $LD (gnu? $with_gnu_ld) ++# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 ++# automake: $automake_version ++# autoconf: $autoconf_version + # + # Report bugs to <bug-libtool@gnu.org>. +-# GNU libtool home page: <http://www.gnu.org/software/libtool/>. +-# General help using GNU software: <http://www.gnu.org/gethelp/>. + +-PROGRAM=libtool ++PROGRAM=ltmain.sh + PACKAGE=libtool +-VERSION="2.4 Debian-2.4-2" ++VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" + TIMESTAMP="" +-package_revision=1.3293 ++package_revision=1.3017 + + # Be Bourne compatible + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +@@ -97,15 +91,10 @@ fi + BIN_SH=xpg4; export BIN_SH # for Tru64 + DUALCASE=1; export DUALCASE # for MKS sh + +-# A function that is used when there is no print builtin or printf. +-func_fallback_echo () +-{ +- eval 'cat <<_LTECHO_EOF +-$1 +-_LTECHO_EOF' +-} +- + # NLS nuisances: We save the old values to restore during execute mode. ++# Only set LANG and LC_ALL to C if already set. ++# These must not be set unconditionally because not all systems understand ++# e.g. LANG=C (notably SCO). + lt_user_locale= + lt_safe_locale= + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +@@ -118,24 +107,15 @@ do + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" + done +-LC_ALL=C +-LANGUAGE=C +-export LANGUAGE LC_ALL + + $lt_unset CDPATH + + +-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +-# is ksh but when the shell is invoked as "sh" and the current value of +-# the _XPG environment variable is not equal to 1 (one), the special +-# positional parameter $0, within a function call, is the name of the +-# function. +-progpath="$0" + + + + : ${CP="cp -f"} +-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} ++: ${ECHO="echo"} + : ${EGREP="/bin/grep -E"} + : ${FGREP="/bin/grep -F"} + : ${GREP="/bin/grep"} +@@ -164,27 +144,6 @@ IFS=" $lt_nl" + dirname="s,/[^/]*$,," + basename="s,^.*/,," + +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} # func_dirname may be replaced by extended shell implementation +- +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} # func_basename may be replaced by extended shell implementation +- +- + # func_dirname_and_basename file append nondir_replacement + # perform func_basename and func_dirname in a single function + # call: +@@ -199,183 +158,33 @@ func_basename () + # those functions but instead duplicate the functionality here. + func_dirname_and_basename () + { +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +-} # func_dirname_and_basename may be replaced by extended shell implementation +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} # func_stripname may be replaced by extended shell implementation +- +- +-# These SED scripts presuppose an absolute path with a trailing slash. +-pathcar='s,^/\([^/]*\).*$,\1,' +-pathcdr='s,^/[^/]*,,' +-removedotparts=':dotsl +- s@/\./@/@g +- t dotsl +- s,/\.$,/,' +-collapseslashes='s@/\{1,\}@/@g' +-finalslash='s,/*$,/,' +- +-# func_normal_abspath PATH +-# Remove doubled-up and trailing slashes, "." path components, +-# and cancel out any ".." path components in PATH after making +-# it an absolute path. +-# value returned in "$func_normal_abspath_result" +-func_normal_abspath () +-{ +- # Start from root dir and reassemble the path. +- func_normal_abspath_result= +- func_normal_abspath_tpath=$1 +- func_normal_abspath_altnamespace= +- case $func_normal_abspath_tpath in +- "") +- # Empty path, that just means $cwd. +- func_stripname '' '/' "`pwd`" +- func_normal_abspath_result=$func_stripname_result +- return +- ;; +- # The next three entries are used to spot a run of precisely +- # two leading slashes without using negated character classes; +- # we take advantage of case's first-match behaviour. +- ///*) +- # Unusual form of absolute path, do nothing. +- ;; +- //*) +- # Not necessarily an ordinary path; POSIX reserves leading '//' +- # and for example Cygwin uses it to access remote file shares +- # over CIFS/SMB, so we conserve a leading double slash if found. +- func_normal_abspath_altnamespace=/ +- ;; +- /*) +- # Absolute path, do nothing. +- ;; +- *) +- # Relative path, prepend $cwd. +- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath +- ;; +- esac +- # Cancel out all the simple stuff to save iterations. We also want +- # the path to end with a slash for ease of parsing, so make sure +- # there is one (and only one) here. +- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ +- -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` +- while :; do +- # Processed it all yet? +- if test "$func_normal_abspath_tpath" = / ; then +- # If we ascended to the root using ".." the result may be empty now. +- if test -z "$func_normal_abspath_result" ; then +- func_normal_abspath_result=/ +- fi +- break +- fi +- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ +- -e "$pathcar"` +- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ +- -e "$pathcdr"` +- # Figure out what to do with it +- case $func_normal_abspath_tcomponent in +- "") +- # Trailing empty path component, ignore it. +- ;; +- ..) +- # Parent dir; strip last assembled component from result. +- func_dirname "$func_normal_abspath_result" +- func_normal_abspath_result=$func_dirname_result +- ;; +- *) +- # Actual path component, append it. +- func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent +- ;; +- esac +- done +- # Restore leading double-slash if one was found on entry. +- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` + } + +-# func_relative_path SRCDIR DSTDIR +-# generates a relative path from SRCDIR to DSTDIR, with a trailing +-# slash if non-empty, suitable for immediately appending a filename +-# without needing to append a separator. +-# value returned in "$func_relative_path_result" +-func_relative_path () +-{ +- func_relative_path_result= +- func_normal_abspath "$1" +- func_relative_path_tlibdir=$func_normal_abspath_result +- func_normal_abspath "$2" +- func_relative_path_tbindir=$func_normal_abspath_result +- +- # Ascend the tree starting from libdir +- while :; do +- # check if we have found a prefix of bindir +- case $func_relative_path_tbindir in +- $func_relative_path_tlibdir) +- # found an exact match +- func_relative_path_tcancelled= +- break +- ;; +- $func_relative_path_tlibdir*) +- # found a matching prefix +- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" +- func_relative_path_tcancelled=$func_stripname_result +- if test -z "$func_relative_path_result"; then +- func_relative_path_result=. +- fi +- break +- ;; +- *) +- func_dirname $func_relative_path_tlibdir +- func_relative_path_tlibdir=${func_dirname_result} +- if test "x$func_relative_path_tlibdir" = x ; then +- # Have to descend all the way to the root! +- func_relative_path_result=../$func_relative_path_result +- func_relative_path_tcancelled=$func_relative_path_tbindir +- break +- fi +- func_relative_path_result=../$func_relative_path_result +- ;; +- esac +- done +- +- # Now calculate path; take care to avoid doubling-up slashes. +- func_stripname '' '/' "$func_relative_path_result" +- func_relative_path_result=$func_stripname_result +- func_stripname '/' '/' "$func_relative_path_tcancelled" +- if test "x$func_stripname_result" != x ; then +- func_relative_path_result=${func_relative_path_result}/${func_stripname_result} +- fi ++# Generated shell functions inserted here. + +- # Normalisation. If bindir is libdir, return empty string, +- # else relative path ending with a slash; either way, target +- # file name can be directly appended. +- if test ! -z "$func_relative_path_result"; then +- func_stripname './' '' "$func_relative_path_result/" +- func_relative_path_result=$func_stripname_result +- fi +-} ++# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh ++# is ksh but when the shell is invoked as "sh" and the current value of ++# the _XPG environment variable is not equal to 1 (one), the special ++# positional parameter $0, within a function call, is the name of the ++# function. ++progpath="$0" + + # The name of this program: ++# In the unlikely event $progname began with a '-', it would play havoc with ++# func_echo (imagine progname=-n), so we prepend ./ in that case: + func_dirname_and_basename "$progpath" + progname=$func_basename_result ++case $progname in ++ -*) progname=./$progname ;; ++esac + + # Make sure we have an absolute path for reexecution: + case $progpath in +@@ -406,15 +215,6 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + # Same as above, but do not quote variable references. + double_quote_subst='s/\(["`\\]\)/\\\1/g' + +-# Sed substitution that turns a string into a regex matching for the +-# string literally. +-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' +- +-# Sed substitution that converts a w32 file name or path +-# which contains forward slashes, into one that contains +-# (escaped) backslashes. A very naive implementation. +-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +- + # Re-`\' parameter expansions in output of double_quote_subst that were + # `\'-ed in input to the same. If an odd number of `\' preceded a '$' + # in input to double_quote_subst, that '$' was protected from expansion. +@@ -443,7 +243,7 @@ opt_warning=: + # name if it has been set yet. + func_echo () + { +- $ECHO "$progname: ${opt_mode+$opt_mode: }$*" ++ $ECHO "$progname${mode+: }$mode: $*" + } + + # func_verbose arg... +@@ -458,25 +258,18 @@ func_verbose () + : + } + +-# func_echo_all arg... +-# Invoke $ECHO with all args, space-separated. +-func_echo_all () +-{ +- $ECHO "$*" +-} +- + # func_error arg... + # Echo program name prefixed message to standard error. + func_error () + { +- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 ++ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 + } + + # func_warning arg... + # Echo program name prefixed warning message to standard error. + func_warning () + { +- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 ++ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +@@ -533,9 +326,9 @@ func_mkdir_p () + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop +- my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` ++ my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + done +- my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` ++ my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do +@@ -585,7 +378,7 @@ func_mktempdir () + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + +- $ECHO "$my_tmpdir" ++ $ECHO "X$my_tmpdir" | $Xsed + } + + +@@ -599,7 +392,7 @@ func_quote_for_eval () + { + case $1 in + *[\\\`\"\$]*) +- func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; ++ func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac +@@ -626,7 +419,7 @@ func_quote_for_expand () + { + case $1 in + *[\\\`\"]*) +- my_arg=`$ECHO "$1" | $SED \ ++ my_arg=`$ECHO "X$1" | $Xsed \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; +@@ -695,39 +488,15 @@ func_show_eval_locale () + fi + } + +-# func_tr_sh +-# Turn $1 into a string suitable for a shell variable name. +-# Result is stored in $func_tr_sh_result. All characters +-# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +-# if $1 begins with a digit, a '_' is prepended as well. +-func_tr_sh () +-{ +- case $1 in +- [0-9]* | *[!a-zA-Z0-9_]*) +- func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` +- ;; +- * ) +- func_tr_sh_result=$1 +- ;; +- esac +-} ++ ++ + + + # func_version + # Echo version message to standard output and exit. + func_version () + { +- $opt_debug +- +- $SED -n '/(C)/!b go +- :more +- /\./!{ +- N +- s/\n# / / +- b more +- } +- :go +- /^# '$PROGRAM' (GNU /,/# warranty; / { ++ $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ +@@ -740,28 +509,22 @@ func_version () + # Echo short help message to standard output and exit. + func_usage () + { +- $opt_debug +- +- $SED -n '/^# Usage:/,/^# *.*--help/ { ++ $SED -n '/^# Usage:/,/# -h/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" +- echo ++ $ECHO + $ECHO "run \`$progname --help | more' for full usage" + exit $? + } + +-# func_help [NOEXIT] +-# Echo long help message to standard output and exit, +-# unless 'noexit' is passed as argument. ++# func_help ++# Echo long help message to standard output and exit. + func_help () + { +- $opt_debug +- + $SED -n '/^# Usage:/,/# Report bugs to/ { +- :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* +@@ -774,15 +537,8 @@ func_help () + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p +- d +- } +- /^# .* home page:/b print +- /^# General help using/b print +- ' < "$progpath" +- ret=$? +- if test -z "$1"; then +- exit $ret +- fi ++ }' < "$progpath" ++ exit $? + } + + # func_missing_arg argname +@@ -790,106 +546,63 @@ func_help () + # exit_cmd. + func_missing_arg () + { +- $opt_debug +- +- func_error "missing argument for $1." ++ func_error "missing argument for $1" + exit_cmd=exit + } + ++exit_cmd=: + +-# func_split_short_opt shortopt +-# Set func_split_short_opt_name and func_split_short_opt_arg shell +-# variables after splitting SHORTOPT after the 2nd character. +-func_split_short_opt () +-{ +- my_sed_short_opt='1s/^\(..\).*$/\1/;q' +- my_sed_short_rest='1s/^..\(.*\)$/\1/;q' +- +- func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` +- func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +-} # func_split_short_opt may be replaced by extended shell implementation +- +- +-# func_split_long_opt longopt +-# Set func_split_long_opt_name and func_split_long_opt_arg shell +-# variables after splitting LONGOPT at the `=' sign. +-func_split_long_opt () +-{ +- my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' +- my_sed_long_arg='1s/^--[^=]*=//' +- +- func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` +- func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +-} # func_split_long_opt may be replaced by extended shell implementation + +-exit_cmd=: + + + ++# Check that we have a working $ECHO. ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then ++ # Yippee, $ECHO works! ++ : ++else ++ # Restart under the correct shell, and then maybe $ECHO will work. ++ exec $SHELL "$progpath" --no-reexec ${1+"$@"} ++fi + ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++$* ++EOF ++ exit $EXIT_SUCCESS ++fi + + magic="%%%MAGIC variable%%%" + magic_exe="%%%MAGIC EXE variable%%%" + + # Global variables. ++# $mode is unset + nonopt= ++execute_dlfiles= + preserve_args= + lo2o="s/\\.lo\$/.${objext}/" + o2lo="s/\\.${objext}\$/.lo/" + extracted_archives= + extracted_serial=0 + ++opt_dry_run=false ++opt_duplicate_deps=false ++opt_silent=false ++opt_debug=: ++ + # If this variable is set in any of the actions, the command in it + # will be execed at the end. This prevents here-documents from being + # left over by shells. + exec_cmd= + +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "${1}=\$${1}\${2}" +-} # func_append may be replaced by extended shell implementation +- +-# func_append_quoted var value +-# Quote VALUE and append to the end of shell variable VAR, separated +-# by a space. +-func_append_quoted () +-{ +- func_quote_for_eval "${2}" +- eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +-} # func_append_quoted may be replaced by extended shell implementation +- +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "${@}"` +-} # func_arith may be replaced by extended shell implementation +- +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +-} # func_len may be replaced by extended shell implementation +- +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} # func_lo2o may be replaced by extended shell implementation +- +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} # func_xform may be replaced by extended shell implementation +- +- + # func_fatal_configuration arg... + # Echo program name prefixed message to standard error, followed by + # a configuration failure hint, and exit. +@@ -923,16 +636,16 @@ func_config () + # Display the features supported by this script. + func_features () + { +- echo "host: $host" ++ $ECHO "host: $host" + if test "$build_libtool_libs" = yes; then +- echo "enable shared libraries" ++ $ECHO "enable shared libraries" + else +- echo "disable shared libraries" ++ $ECHO "disable shared libraries" + fi + if test "$build_old_libs" = yes; then +- echo "enable static libraries" ++ $ECHO "enable static libraries" + else +- echo "disable static libraries" ++ $ECHO "disable static libraries" + fi + + exit $? +@@ -979,204 +692,117 @@ func_enable_tag () + esac + } + +-# func_check_version_match +-# Ensure that we are using m4 macros, and libtool script from the same +-# release of libtool. +-func_check_version_match () ++# Parse options once, thoroughly. This comes as soon as possible in ++# the script to make things like `libtool --version' happen quickly. + { +- if test "$package_revision" != "$macro_revision"; then +- if test "$VERSION" != "$macro_version"; then +- if test -z "$macro_version"; then +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +-$progname: definition of this LT_INIT comes from an older release. +-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +-$progname: and run autoconf again. +-_LT_EOF +- else +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +-$progname: and run autoconf again. +-_LT_EOF +- fi +- else +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +-$progname: but the definition of this LT_INIT comes from revision $macro_revision. +-$progname: You should recreate aclocal.m4 with macros from revision $package_revision +-$progname: of $PACKAGE $VERSION and run autoconf again. +-_LT_EOF +- fi +- +- exit $EXIT_MISMATCH +- fi +-} +- +- +-# Shorthand for --mode=foo, only valid as the first argument +-case $1 in +-clean|clea|cle|cl) +- shift; set dummy --mode clean ${1+"$@"}; shift +- ;; +-compile|compil|compi|comp|com|co|c) +- shift; set dummy --mode compile ${1+"$@"}; shift +- ;; +-execute|execut|execu|exec|exe|ex|e) +- shift; set dummy --mode execute ${1+"$@"}; shift +- ;; +-finish|finis|fini|fin|fi|f) +- shift; set dummy --mode finish ${1+"$@"}; shift +- ;; +-install|instal|insta|inst|ins|in|i) +- shift; set dummy --mode install ${1+"$@"}; shift +- ;; +-link|lin|li|l) +- shift; set dummy --mode link ${1+"$@"}; shift +- ;; +-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) +- shift; set dummy --mode uninstall ${1+"$@"}; shift +- ;; +-esac +- +- +- +-# Option defaults: +-opt_debug=: +-opt_dry_run=false +-opt_config=false +-opt_preserve_dup_deps=false +-opt_features=false +-opt_finish=false +-opt_help=false +-opt_help_all=false +-opt_silent=: +-opt_verbose=: +-opt_silent=false +-opt_verbose=false + ++ # Shorthand for --mode=foo, only valid as the first argument ++ case $1 in ++ clean|clea|cle|cl) ++ shift; set dummy --mode clean ${1+"$@"}; shift ++ ;; ++ compile|compil|compi|comp|com|co|c) ++ shift; set dummy --mode compile ${1+"$@"}; shift ++ ;; ++ execute|execut|execu|exec|exe|ex|e) ++ shift; set dummy --mode execute ${1+"$@"}; shift ++ ;; ++ finish|finis|fini|fin|fi|f) ++ shift; set dummy --mode finish ${1+"$@"}; shift ++ ;; ++ install|instal|insta|inst|ins|in|i) ++ shift; set dummy --mode install ${1+"$@"}; shift ++ ;; ++ link|lin|li|l) ++ shift; set dummy --mode link ${1+"$@"}; shift ++ ;; ++ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) ++ shift; set dummy --mode uninstall ${1+"$@"}; shift ++ ;; ++ esac + +-# Parse options once, thoroughly. This comes as soon as possible in the +-# script to make things like `--version' happen as quickly as we can. +-{ +- # this just eases exit handling +- while test $# -gt 0; do ++ # Parse non-mode specific arguments: ++ while test "$#" -gt 0; do + opt="$1" + shift ++ + case $opt in +- --debug|-x) opt_debug='set -x' ++ --config) func_config ;; ++ ++ --debug) preserve_args="$preserve_args $opt" + func_echo "enabling shell trace mode" ++ opt_debug='set -x' + $opt_debug + ;; +- --dry-run|--dryrun|-n) +- opt_dry_run=: +- ;; +- --config) +- opt_config=: +-func_config +- ;; +- --dlopen|-dlopen) +- optarg="$1" +- opt_dlopen="${opt_dlopen+$opt_dlopen +-}$optarg" ++ ++ -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ execute_dlfiles="$execute_dlfiles $1" + shift + ;; +- --preserve-dup-deps) +- opt_preserve_dup_deps=: +- ;; +- --features) +- opt_features=: +-func_features +- ;; +- --finish) +- opt_finish=: +-set dummy --mode finish ${1+"$@"}; shift +- ;; +- --help) +- opt_help=: +- ;; +- --help-all) +- opt_help_all=: +-opt_help=': help-all' +- ;; +- --mode) +- test $# = 0 && func_missing_arg $opt && break +- optarg="$1" +- opt_mode="$optarg" +-case $optarg in +- # Valid mode arguments: +- clean|compile|execute|finish|install|link|relink|uninstall) ;; +- +- # Catch anything else as an error +- *) func_error "invalid argument for $opt" +- exit_cmd=exit +- break +- ;; +-esac ++ ++ --dry-run | -n) opt_dry_run=: ;; ++ --features) func_features ;; ++ --finish) mode="finish" ;; ++ ++ --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ case $1 in ++ # Valid mode arguments: ++ clean) ;; ++ compile) ;; ++ execute) ;; ++ finish) ;; ++ install) ;; ++ link) ;; ++ relink) ;; ++ uninstall) ;; ++ ++ # Catch anything else as an error ++ *) func_error "invalid argument for $opt" ++ exit_cmd=exit ++ break ++ ;; ++ esac ++ ++ mode="$1" + shift + ;; +- --no-silent|--no-quiet) +- opt_silent=false +-func_append preserve_args " $opt" +- ;; +- --no-verbose) +- opt_verbose=false +-func_append preserve_args " $opt" +- ;; +- --silent|--quiet) ++ ++ --preserve-dup-deps) ++ opt_duplicate_deps=: ;; ++ ++ --quiet|--silent) preserve_args="$preserve_args $opt" + opt_silent=: +-func_append preserve_args " $opt" +- opt_verbose=false + ;; +- --verbose|-v) +- opt_verbose=: +-func_append preserve_args " $opt" +-opt_silent=false ++ ++ --verbose| -v) preserve_args="$preserve_args $opt" ++ opt_silent=false + ;; +- --tag) +- test $# = 0 && func_missing_arg $opt && break +- optarg="$1" +- opt_tag="$optarg" +-func_append preserve_args " $opt $optarg" +-func_enable_tag "$optarg" ++ ++ --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ preserve_args="$preserve_args $opt $1" ++ func_enable_tag "$1" # tagname is set here + shift + ;; + +- -\?|-h) func_usage ;; +- --help) func_help ;; +- --version) func_version ;; +- + # Separate optargs to long options: +- --*=*) +- func_split_long_opt "$opt" +- set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} ++ -dlopen=*|--mode=*|--tag=*) ++ func_opt_split "$opt" ++ set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + shift + ;; + +- # Separate non-argument short options: +- -\?*|-h*|-n*|-v*) +- func_split_short_opt "$opt" +- set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} +- shift +- ;; ++ -\?|-h) func_usage ;; ++ --help) opt_help=: ;; ++ --version) func_version ;; ++ ++ -*) func_fatal_help "unrecognized option \`$opt'" ;; + +- --) break ;; +- -*) func_fatal_help "unrecognized option \`$opt'" ;; +- *) set dummy "$opt" ${1+"$@"}; shift; break ;; ++ *) nonopt="$opt" ++ break ++ ;; + esac + done + +- # Validate options: +- +- # save first non-option argument +- if test "$#" -gt 0; then +- nonopt="$opt" +- shift +- fi +- +- # preserve --debug +- test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) +@@ -1184,44 +810,82 @@ func_enable_tag "$optarg" + opt_duplicate_compiler_generated_deps=: + ;; + *) +- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ++ opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + ;; + esac + +- $opt_help || { +- # Sanity checks first: +- func_check_version_match ++ # Having warned about all mis-specified options, bail out if ++ # anything was wrong. ++ $exit_cmd $EXIT_FAILURE ++} + +- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then +- func_fatal_configuration "not configured to build any kind of library" ++# func_check_version_match ++# Ensure that we are using m4 macros, and libtool script from the same ++# release of libtool. ++func_check_version_match () ++{ ++ if test "$package_revision" != "$macro_revision"; then ++ if test "$VERSION" != "$macro_version"; then ++ if test -z "$macro_version"; then ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from an older release. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ fi ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, ++$progname: but the definition of this LT_INIT comes from revision $macro_revision. ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision ++$progname: of $PACKAGE $VERSION and run autoconf again. ++_LT_EOF + fi + +- # Darwin sucks +- eval std_shrext=\"$shrext_cmds\" ++ exit $EXIT_MISMATCH ++ fi ++} ++ + +- # Only execute mode is allowed to have -dlopen flags. +- if test -n "$opt_dlopen" && test "$opt_mode" != execute; then +- func_error "unrecognized option \`-dlopen'" +- $ECHO "$help" 1>&2 +- exit $EXIT_FAILURE +- fi ++## ----------- ## ++## Main. ## ++## ----------- ## + +- # Change the help message to a mode-specific one. +- generic_help="$help" +- help="Try \`$progname --help --mode=$opt_mode' for more information." +- } ++$opt_help || { ++ # Sanity checks first: ++ func_check_version_match + ++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ++ func_fatal_configuration "not configured to build any kind of library" ++ fi + +- # Bail if the options were screwed +- $exit_cmd $EXIT_FAILURE +-} ++ test -z "$mode" && func_fatal_error "error: you must specify a MODE." + + ++ # Darwin sucks ++ eval std_shrext=\"$shrext_cmds\" + + +-## ----------- ## +-## Main. ## +-## ----------- ## ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$execute_dlfiles" && test "$mode" != execute; then ++ func_error "unrecognized option \`-dlopen'" ++ $ECHO "$help" 1>&2 ++ exit $EXIT_FAILURE ++ fi ++ ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$progname --help --mode=$mode' for more information." ++} ++ + + # func_lalib_p file + # True iff FILE is a libtool `.la' library or `.lo' object file. +@@ -1286,9 +950,12 @@ func_ltwrapper_executable_p () + # temporary ltwrapper_script. + func_ltwrapper_scriptname () + { +- func_dirname_and_basename "$1" "" "." +- func_stripname '' '.exe' "$func_basename_result" +- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" ++ func_ltwrapper_scriptname_result="" ++ if func_ltwrapper_executable_p "$1"; then ++ func_dirname_and_basename "$1" "" "." ++ func_stripname '' '.exe' "$func_basename_result" ++ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" ++ fi + } + + # func_ltwrapper_p file +@@ -1334,37 +1001,6 @@ func_source () + } + + +-# func_resolve_sysroot PATH +-# Replace a leading = in PATH with a sysroot. Store the result into +-# func_resolve_sysroot_result +-func_resolve_sysroot () +-{ +- func_resolve_sysroot_result=$1 +- case $func_resolve_sysroot_result in +- =*) +- func_stripname '=' '' "$func_resolve_sysroot_result" +- func_resolve_sysroot_result=$lt_sysroot$func_stripname_result +- ;; +- esac +-} +- +-# func_replace_sysroot PATH +-# If PATH begins with the sysroot, replace it with = and +-# store the result into func_replace_sysroot_result. +-func_replace_sysroot () +-{ +- case "$lt_sysroot:$1" in +- ?*:"$lt_sysroot"*) +- func_stripname "$lt_sysroot" '' "$1" +- func_replace_sysroot_result="=$func_stripname_result" +- ;; +- *) +- # Including no sysroot. +- func_replace_sysroot_result=$1 +- ;; +- esac +-} +- + # func_infer_tag arg + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. +@@ -1377,15 +1013,13 @@ func_infer_tag () + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do +- func_append_quoted CC_quoted "$arg" ++ func_quote_for_eval "$arg" ++ CC_quoted="$CC_quoted $func_quote_for_eval_result" + done +- CC_expanded=`func_echo_all $CC` +- CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. +- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ +- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; ++ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) +@@ -1396,13 +1030,11 @@ func_infer_tag () + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. +- func_append_quoted CC_quoted "$arg" ++ func_quote_for_eval "$arg" ++ CC_quoted="$CC_quoted $func_quote_for_eval_result" + done +- CC_expanded=`func_echo_all $CC` +- CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in +- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ +- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ++ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. +@@ -1465,486 +1097,6 @@ EOF + } + } + +- +-################################################## +-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +-################################################## +- +-# func_convert_core_file_wine_to_w32 ARG +-# Helper function used by file name conversion functions when $build is *nix, +-# and $host is mingw, cygwin, or some other w32 environment. Relies on a +-# correctly configured wine environment available, with the winepath program +-# in $build's $PATH. +-# +-# ARG is the $build file name to be converted to w32 format. +-# Result is available in $func_convert_core_file_wine_to_w32_result, and will +-# be empty on error (or when ARG is empty) +-func_convert_core_file_wine_to_w32 () +-{ +- $opt_debug +- func_convert_core_file_wine_to_w32_result="$1" +- if test -n "$1"; then +- # Unfortunately, winepath does not exit with a non-zero error code, so we +- # are forced to check the contents of stdout. On the other hand, if the +- # command is not found, the shell will set an exit code of 127 and print +- # *an error message* to stdout. So we must check for both error code of +- # zero AND non-empty stdout, which explains the odd construction: +- func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` +- if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then +- func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | +- $SED -e "$lt_sed_naive_backslashify"` +- else +- func_convert_core_file_wine_to_w32_result= +- fi +- fi +-} +-# end: func_convert_core_file_wine_to_w32 +- +- +-# func_convert_core_path_wine_to_w32 ARG +-# Helper function used by path conversion functions when $build is *nix, and +-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +-# configured wine environment available, with the winepath program in $build's +-# $PATH. Assumes ARG has no leading or trailing path separator characters. +-# +-# ARG is path to be converted from $build format to win32. +-# Result is available in $func_convert_core_path_wine_to_w32_result. +-# Unconvertible file (directory) names in ARG are skipped; if no directory names +-# are convertible, then the result may be empty. +-func_convert_core_path_wine_to_w32 () +-{ +- $opt_debug +- # unfortunately, winepath doesn't convert paths, only file names +- func_convert_core_path_wine_to_w32_result="" +- if test -n "$1"; then +- oldIFS=$IFS +- IFS=: +- for func_convert_core_path_wine_to_w32_f in $1; do +- IFS=$oldIFS +- func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" +- if test -n "$func_convert_core_file_wine_to_w32_result" ; then +- if test -z "$func_convert_core_path_wine_to_w32_result"; then +- func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" +- else +- func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" +- fi +- fi +- done +- IFS=$oldIFS +- fi +-} +-# end: func_convert_core_path_wine_to_w32 +- +- +-# func_cygpath ARGS... +-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +-# (2), returns the Cygwin file name or path in func_cygpath_result (input +-# file name or path is assumed to be in w32 format, as previously converted +-# from $build's *nix or MSYS format). In case (3), returns the w32 file name +-# or path in func_cygpath_result (input file name or path is assumed to be in +-# Cygwin format). Returns an empty string on error. +-# +-# ARGS are passed to cygpath, with the last one being the file name or path to +-# be converted. +-# +-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +-# environment variable; do not put it in $PATH. +-func_cygpath () +-{ +- $opt_debug +- if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then +- func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` +- if test "$?" -ne 0; then +- # on failure, ensure result is empty +- func_cygpath_result= +- fi +- else +- func_cygpath_result= +- func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" +- fi +-} +-#end: func_cygpath +- +- +-# func_convert_core_msys_to_w32 ARG +-# Convert file name or path ARG from MSYS format to w32 format. Return +-# result in func_convert_core_msys_to_w32_result. +-func_convert_core_msys_to_w32 () +-{ +- $opt_debug +- # awkward: cmd appends spaces to result +- func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | +- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +-} +-#end: func_convert_core_msys_to_w32 +- +- +-# func_convert_file_check ARG1 ARG2 +-# Verify that ARG1 (a file name in $build format) was converted to $host +-# format in ARG2. Otherwise, emit an error message, but continue (resetting +-# func_to_host_file_result to ARG1). +-func_convert_file_check () +-{ +- $opt_debug +- if test -z "$2" && test -n "$1" ; then +- func_error "Could not determine host file name corresponding to" +- func_error " \`$1'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback: +- func_to_host_file_result="$1" +- fi +-} +-# end func_convert_file_check +- +- +-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +-# Verify that FROM_PATH (a path in $build format) was converted to $host +-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +-# func_to_host_file_result to a simplistic fallback value (see below). +-func_convert_path_check () +-{ +- $opt_debug +- if test -z "$4" && test -n "$3"; then +- func_error "Could not determine the host path corresponding to" +- func_error " \`$3'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback. This is a deliberately simplistic "conversion" and +- # should not be "improved". See libtool.info. +- if test "x$1" != "x$2"; then +- lt_replace_pathsep_chars="s|$1|$2|g" +- func_to_host_path_result=`echo "$3" | +- $SED -e "$lt_replace_pathsep_chars"` +- else +- func_to_host_path_result="$3" +- fi +- fi +-} +-# end func_convert_path_check +- +- +-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +-# and appending REPL if ORIG matches BACKPAT. +-func_convert_path_front_back_pathsep () +-{ +- $opt_debug +- case $4 in +- $1 ) func_to_host_path_result="$3$func_to_host_path_result" +- ;; +- esac +- case $4 in +- $2 ) func_append func_to_host_path_result "$3" +- ;; +- esac +-} +-# end func_convert_path_front_back_pathsep +- +- +-################################################## +-# $build to $host FILE NAME CONVERSION FUNCTIONS # +-################################################## +-# invoked via `$to_host_file_cmd ARG' +-# +-# In each case, ARG is the path to be converted from $build to $host format. +-# Result will be available in $func_to_host_file_result. +- +- +-# func_to_host_file ARG +-# Converts the file name ARG from $build format to $host format. Return result +-# in func_to_host_file_result. +-func_to_host_file () +-{ +- $opt_debug +- $to_host_file_cmd "$1" +-} +-# end func_to_host_file +- +- +-# func_to_tool_file ARG LAZY +-# converts the file name ARG from $build format to toolchain format. Return +-# result in func_to_tool_file_result. If the conversion in use is listed +-# in (the comma separated) LAZY, no conversion takes place. +-func_to_tool_file () +-{ +- $opt_debug +- case ,$2, in +- *,"$to_tool_file_cmd",*) +- func_to_tool_file_result=$1 +- ;; +- *) +- $to_tool_file_cmd "$1" +- func_to_tool_file_result=$func_to_host_file_result +- ;; +- esac +-} +-# end func_to_tool_file +- +- +-# func_convert_file_noop ARG +-# Copy ARG to func_to_host_file_result. +-func_convert_file_noop () +-{ +- func_to_host_file_result="$1" +-} +-# end func_convert_file_noop +- +- +-# func_convert_file_msys_to_w32 ARG +-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +-# conversion to w32 is not available inside the cwrapper. Returns result in +-# func_to_host_file_result. +-func_convert_file_msys_to_w32 () +-{ +- $opt_debug +- func_to_host_file_result="$1" +- if test -n "$1"; then +- func_convert_core_msys_to_w32 "$1" +- func_to_host_file_result="$func_convert_core_msys_to_w32_result" +- fi +- func_convert_file_check "$1" "$func_to_host_file_result" +-} +-# end func_convert_file_msys_to_w32 +- +- +-# func_convert_file_cygwin_to_w32 ARG +-# Convert file name ARG from Cygwin to w32 format. Returns result in +-# func_to_host_file_result. +-func_convert_file_cygwin_to_w32 () +-{ +- $opt_debug +- func_to_host_file_result="$1" +- if test -n "$1"; then +- # because $build is cygwin, we call "the" cygpath in $PATH; no need to use +- # LT_CYGPATH in this case. +- func_to_host_file_result=`cygpath -m "$1"` +- fi +- func_convert_file_check "$1" "$func_to_host_file_result" +-} +-# end func_convert_file_cygwin_to_w32 +- +- +-# func_convert_file_nix_to_w32 ARG +-# Convert file name ARG from *nix to w32 format. Requires a wine environment +-# and a working winepath. Returns result in func_to_host_file_result. +-func_convert_file_nix_to_w32 () +-{ +- $opt_debug +- func_to_host_file_result="$1" +- if test -n "$1"; then +- func_convert_core_file_wine_to_w32 "$1" +- func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" +- fi +- func_convert_file_check "$1" "$func_to_host_file_result" +-} +-# end func_convert_file_nix_to_w32 +- +- +-# func_convert_file_msys_to_cygwin ARG +-# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +-# Returns result in func_to_host_file_result. +-func_convert_file_msys_to_cygwin () +-{ +- $opt_debug +- func_to_host_file_result="$1" +- if test -n "$1"; then +- func_convert_core_msys_to_w32 "$1" +- func_cygpath -u "$func_convert_core_msys_to_w32_result" +- func_to_host_file_result="$func_cygpath_result" +- fi +- func_convert_file_check "$1" "$func_to_host_file_result" +-} +-# end func_convert_file_msys_to_cygwin +- +- +-# func_convert_file_nix_to_cygwin ARG +-# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +-# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +-# in func_to_host_file_result. +-func_convert_file_nix_to_cygwin () +-{ +- $opt_debug +- func_to_host_file_result="$1" +- if test -n "$1"; then +- # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. +- func_convert_core_file_wine_to_w32 "$1" +- func_cygpath -u "$func_convert_core_file_wine_to_w32_result" +- func_to_host_file_result="$func_cygpath_result" +- fi +- func_convert_file_check "$1" "$func_to_host_file_result" +-} +-# end func_convert_file_nix_to_cygwin +- +- +-############################################# +-# $build to $host PATH CONVERSION FUNCTIONS # +-############################################# +-# invoked via `$to_host_path_cmd ARG' +-# +-# In each case, ARG is the path to be converted from $build to $host format. +-# The result will be available in $func_to_host_path_result. +-# +-# Path separators are also converted from $build format to $host format. If +-# ARG begins or ends with a path separator character, it is preserved (but +-# converted to $host format) on output. +-# +-# All path conversion functions are named using the following convention: +-# file name conversion function : func_convert_file_X_to_Y () +-# path conversion function : func_convert_path_X_to_Y () +-# where, for any given $build/$host combination the 'X_to_Y' value is the +-# same. If conversion functions are added for new $build/$host combinations, +-# the two new functions must follow this pattern, or func_init_to_host_path_cmd +-# will break. +- +- +-# func_init_to_host_path_cmd +-# Ensures that function "pointer" variable $to_host_path_cmd is set to the +-# appropriate value, based on the value of $to_host_file_cmd. +-to_host_path_cmd= +-func_init_to_host_path_cmd () +-{ +- $opt_debug +- if test -z "$to_host_path_cmd"; then +- func_stripname 'func_convert_file_' '' "$to_host_file_cmd" +- to_host_path_cmd="func_convert_path_${func_stripname_result}" +- fi +-} +- +- +-# func_to_host_path ARG +-# Converts the path ARG from $build format to $host format. Return result +-# in func_to_host_path_result. +-func_to_host_path () +-{ +- $opt_debug +- func_init_to_host_path_cmd +- $to_host_path_cmd "$1" +-} +-# end func_to_host_path +- +- +-# func_convert_path_noop ARG +-# Copy ARG to func_to_host_path_result. +-func_convert_path_noop () +-{ +- func_to_host_path_result="$1" +-} +-# end func_convert_path_noop +- +- +-# func_convert_path_msys_to_w32 ARG +-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +-# conversion to w32 is not available inside the cwrapper. Returns result in +-# func_to_host_path_result. +-func_convert_path_msys_to_w32 () +-{ +- $opt_debug +- func_to_host_path_result="$1" +- if test -n "$1"; then +- # Remove leading and trailing path separator characters from ARG. MSYS +- # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; +- # and winepath ignores them completely. +- func_stripname : : "$1" +- func_to_host_path_tmp1=$func_stripname_result +- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" +- func_to_host_path_result="$func_convert_core_msys_to_w32_result" +- func_convert_path_check : ";" \ +- "$func_to_host_path_tmp1" "$func_to_host_path_result" +- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" +- fi +-} +-# end func_convert_path_msys_to_w32 +- +- +-# func_convert_path_cygwin_to_w32 ARG +-# Convert path ARG from Cygwin to w32 format. Returns result in +-# func_to_host_file_result. +-func_convert_path_cygwin_to_w32 () +-{ +- $opt_debug +- func_to_host_path_result="$1" +- if test -n "$1"; then +- # See func_convert_path_msys_to_w32: +- func_stripname : : "$1" +- func_to_host_path_tmp1=$func_stripname_result +- func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` +- func_convert_path_check : ";" \ +- "$func_to_host_path_tmp1" "$func_to_host_path_result" +- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" +- fi +-} +-# end func_convert_path_cygwin_to_w32 +- +- +-# func_convert_path_nix_to_w32 ARG +-# Convert path ARG from *nix to w32 format. Requires a wine environment and +-# a working winepath. Returns result in func_to_host_file_result. +-func_convert_path_nix_to_w32 () +-{ +- $opt_debug +- func_to_host_path_result="$1" +- if test -n "$1"; then +- # See func_convert_path_msys_to_w32: +- func_stripname : : "$1" +- func_to_host_path_tmp1=$func_stripname_result +- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" +- func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" +- func_convert_path_check : ";" \ +- "$func_to_host_path_tmp1" "$func_to_host_path_result" +- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" +- fi +-} +-# end func_convert_path_nix_to_w32 +- +- +-# func_convert_path_msys_to_cygwin ARG +-# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +-# Returns result in func_to_host_file_result. +-func_convert_path_msys_to_cygwin () +-{ +- $opt_debug +- func_to_host_path_result="$1" +- if test -n "$1"; then +- # See func_convert_path_msys_to_w32: +- func_stripname : : "$1" +- func_to_host_path_tmp1=$func_stripname_result +- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" +- func_cygpath -u -p "$func_convert_core_msys_to_w32_result" +- func_to_host_path_result="$func_cygpath_result" +- func_convert_path_check : : \ +- "$func_to_host_path_tmp1" "$func_to_host_path_result" +- func_convert_path_front_back_pathsep ":*" "*:" : "$1" +- fi +-} +-# end func_convert_path_msys_to_cygwin +- +- +-# func_convert_path_nix_to_cygwin ARG +-# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +-# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +-# func_to_host_file_result. +-func_convert_path_nix_to_cygwin () +-{ +- $opt_debug +- func_to_host_path_result="$1" +- if test -n "$1"; then +- # Remove leading and trailing path separator characters from +- # ARG. msys behavior is inconsistent here, cygpath turns them +- # into '.;' and ';.', and winepath ignores them completely. +- func_stripname : : "$1" +- func_to_host_path_tmp1=$func_stripname_result +- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" +- func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" +- func_to_host_path_result="$func_cygpath_result" +- func_convert_path_check : : \ +- "$func_to_host_path_tmp1" "$func_to_host_path_result" +- func_convert_path_front_back_pathsep ":*" "*:" : "$1" +- fi +-} +-# end func_convert_path_nix_to_cygwin +- +- + # func_mode_compile arg... + func_mode_compile () + { +@@ -1985,12 +1137,12 @@ func_mode_compile () + ;; + + -pie | -fpie | -fPIE) +- func_append pie_flag " $arg" ++ pie_flag="$pie_flag $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) +- func_append later " $arg" ++ later="$later $arg" + continue + ;; + +@@ -2011,14 +1163,15 @@ func_mode_compile () + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" +- func_append_quoted lastarg "$arg" ++ func_quote_for_eval "$arg" ++ lastarg="$lastarg $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. +- func_append base_compile " $lastarg" ++ base_compile="$base_compile $lastarg" + continue + ;; + +@@ -2034,7 +1187,8 @@ func_mode_compile () + esac # case $arg_mode + + # Aesthetically quote the previous argument. +- func_append_quoted base_compile "$lastarg" ++ func_quote_for_eval "$lastarg" ++ base_compile="$base_compile $func_quote_for_eval_result" + done # for arg + + case $arg_mode in +@@ -2059,7 +1213,7 @@ func_mode_compile () + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ +- *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) ++ *.[fF][09]? | *.for | *.java | *.obj | *.sx) + func_xform "$libobj" + libobj=$func_xform_result + ;; +@@ -2134,7 +1288,7 @@ func_mode_compile () + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then +- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} ++ output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= +@@ -2165,16 +1319,17 @@ compiler." + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi +- func_append removelist " $output_obj" ++ removelist="$removelist $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist +- func_append removelist " $lockfile" ++ removelist="$removelist $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + +- func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 +- srcfile=$func_to_tool_file_result ++ if test -n "$fix_srcfile_path"; then ++ eval srcfile=\"$fix_srcfile_path\" ++ fi + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + +@@ -2194,7 +1349,7 @@ compiler." + + if test -z "$output_obj"; then + # Place PIC objects in $objdir +- func_append command " -o $lobj" ++ command="$command -o $lobj" + fi + + func_show_eval_locale "$command" \ +@@ -2241,11 +1396,11 @@ compiler." + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then +- func_append command " -o $obj" ++ command="$command -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. +- func_append command "$suppress_output" ++ command="$command$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + +@@ -2290,13 +1445,13 @@ compiler." + } + + $opt_help || { +- test "$opt_mode" = compile && func_mode_compile ${1+"$@"} ++test "$mode" = compile && func_mode_compile ${1+"$@"} + } + + func_mode_help () + { + # We need to display help for each of the modes. +- case $opt_mode in ++ case $mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. +@@ -2327,11 +1482,10 @@ This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes +- -prefer-pic try to build PIC objects only +- -prefer-non-pic try to build non-PIC objects only ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking +- -Wc,FLAG pass FLAG directly to the compiler + + COMPILE-COMMAND is a command to be used in creating a \`standard' object file + from the given SOURCEFILE. +@@ -2384,7 +1538,7 @@ either the \`install' or \`cp' program. + + The following components of INSTALL-COMMAND are treated specially: + +- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation ++ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + + The rest of the components are interpreted as arguments to that command (only + BSD-compatible install options are recognized)." +@@ -2404,8 +1558,6 @@ The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible +- -bindir BINDIR specify path to binaries directory (for systems where +- libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) +@@ -2434,11 +1586,6 @@ The following components of LINK-COMMAND are treated specially: + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface +- -Wc,FLAG +- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler +- -Wl,FLAG +- -Xlinker FLAG pass linker-specific FLAG directly to the linker +- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + + All other options (arguments beginning with \`-') are ignored. + +@@ -2472,44 +1619,18 @@ Otherwise, only FILE itself is deleted using RM." + ;; + + *) +- func_fatal_help "invalid operation mode \`$opt_mode'" ++ func_fatal_help "invalid operation mode \`$mode'" + ;; + esac + +- echo ++ $ECHO + $ECHO "Try \`$progname --help' for more information about other modes." ++ ++ exit $? + } + +-# Now that we've collected a possible --mode arg, show help if necessary +-if $opt_help; then +- if test "$opt_help" = :; then +- func_mode_help +- else +- { +- func_help noexit +- for opt_mode in compile link execute install finish uninstall clean; do +- func_mode_help +- done +- } | sed -n '1p; 2,$s/^Usage:/ or: /p' +- { +- func_help noexit +- for opt_mode in compile link execute install finish uninstall clean; do +- echo +- func_mode_help +- done +- } | +- sed '1d +- /^When reporting/,/^Report/{ +- H +- d +- } +- $x +- /information about other modes/d +- /more detailed .*MODE/d +- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' +- fi +- exit $? +-fi ++ # Now that we've collected a possible --mode arg, show help if necessary ++ $opt_help && func_mode_help + + + # func_mode_execute arg... +@@ -2522,16 +1643,13 @@ func_mode_execute () + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. +- for file in $opt_dlopen; do ++ for file in $execute_dlfiles; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) +- func_resolve_sysroot "$file" +- file=$func_resolve_sysroot_result +- + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" +@@ -2553,7 +1671,7 @@ func_mode_execute () + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then +- func_append dir "/$objdir" ++ dir="$dir/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" +@@ -2594,7 +1712,7 @@ func_mode_execute () + for file + do + case $file in +- -* | *.la | *.lo ) ;; ++ -*) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then +@@ -2610,7 +1728,8 @@ func_mode_execute () + ;; + esac + # Quote arguments (to preserve shell metacharacters). +- func_append_quoted args "$file" ++ func_quote_for_eval "$file" ++ args="$args $func_quote_for_eval_result" + done + + if test "X$opt_dry_run" = Xfalse; then +@@ -2635,66 +1754,29 @@ func_mode_execute () + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" +- echo "export $shlibpath_var" ++ $ECHO "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi + } + +-test "$opt_mode" = execute && func_mode_execute ${1+"$@"} ++test "$mode" = execute && func_mode_execute ${1+"$@"} + + + # func_mode_finish arg... + func_mode_finish () + { + $opt_debug +- libs= +- libdirs= ++ libdirs="$nonopt" + admincmds= + +- for opt in "$nonopt" ${1+"$@"} +- do +- if test -d "$opt"; then +- func_append libdirs " $opt" +- +- elif test -f "$opt"; then +- if func_lalib_unsafe_p "$opt"; then +- func_append libs " $opt" +- else +- func_warning "\`$opt' is not a valid libtool archive" +- fi +- +- else +- func_fatal_error "invalid argument \`$opt'" +- fi +- done +- +- if test -n "$libs"; then +- if test -n "$lt_sysroot"; then +- sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` +- sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" +- else +- sysroot_cmd= +- fi +- +- # Remove sysroot references +- if $opt_dry_run; then +- for lib in $libs; do +- echo "removing references to $lt_sysroot and \`=' prefixes from $lib" +- done +- else +- tmpdir=`func_mktempdir` +- for lib in $libs; do +- sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ +- > $tmpdir/tmp-la +- mv -f $tmpdir/tmp-la $lib +- done +- ${RM}r "$tmpdir" +- fi +- fi +- + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ for dir ++ do ++ libdirs="$libdirs $dir" ++ done ++ + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. +@@ -2704,7 +1786,7 @@ func_mode_finish () + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" +- $opt_dry_run || eval "$cmds" || func_append admincmds " ++ $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done +@@ -2713,55 +1795,53 @@ func_mode_finish () + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + +- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then +- echo "----------------------------------------------------------------------" +- echo "Libraries have been installed in:" +- for libdir in $libdirs; do +- $ECHO " $libdir" +- done +- echo +- echo "If you ever happen to want to link against installed libraries" +- echo "in a given directory, LIBDIR, you must either use libtool, and" +- echo "specify the full pathname of the library, or use the \`-LLIBDIR'" +- echo "flag during linking and do at least one of the following:" +- if test -n "$shlibpath_var"; then +- echo " - add LIBDIR to the \`$shlibpath_var' environment variable" +- echo " during execution" +- fi +- if test -n "$runpath_var"; then +- echo " - add LIBDIR to the \`$runpath_var' environment variable" +- echo " during linking" +- fi +- if test -n "$hardcode_libdir_flag_spec"; then +- libdir=LIBDIR +- eval flag=\"$hardcode_libdir_flag_spec\" +- +- $ECHO " - use the \`$flag' linker flag" +- fi +- if test -n "$admincmds"; then +- $ECHO " - have your system administrator run these commands:$admincmds" +- fi +- if test -f /etc/ld.so.conf; then +- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" +- fi +- echo ++ $ECHO "X----------------------------------------------------------------------" | $Xsed ++ $ECHO "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ $ECHO " $libdir" ++ done ++ $ECHO ++ $ECHO "If you ever happen to want to link against installed libraries" ++ $ECHO "in a given directory, LIBDIR, you must either use libtool, and" ++ $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" ++ $ECHO "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" ++ $ECHO " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" ++ $ECHO " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" + +- echo "See any operating system documentation about shared libraries for" +- case $host in +- solaris2.[6789]|solaris2.1[0-9]) +- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" +- echo "pages." +- ;; +- *) +- echo "more information, such as the ld(1) and ld.so(8) manual pages." +- ;; +- esac +- echo "----------------------------------------------------------------------" ++ $ECHO " - use the \`$flag' linker flag" + fi ++ if test -n "$admincmds"; then ++ $ECHO " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ++ fi ++ $ECHO ++ ++ $ECHO "See any operating system documentation about shared libraries for" ++ case $host in ++ solaris2.[6789]|solaris2.1[0-9]) ++ $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" ++ $ECHO "pages." ++ ;; ++ *) ++ $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ++ ;; ++ esac ++ $ECHO "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS + } + +-test "$opt_mode" = finish && func_mode_finish ${1+"$@"} ++test "$mode" = finish && func_mode_finish ${1+"$@"} + + + # func_mode_install arg... +@@ -2772,7 +1852,7 @@ func_mode_install () + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. +- case $nonopt in *shtool*) :;; *) false;; esac; then ++ $ECHO "X$nonopt" | $GREP shtool >/dev/null; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " +@@ -2786,12 +1866,7 @@ func_mode_install () + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" +- func_append install_prog "$func_quote_for_eval_result" +- install_shared_prog=$install_prog +- case " $install_prog " in +- *[\\\ /]cp\ *) install_cp=: ;; +- *) install_cp=false ;; +- esac ++ install_prog="$install_prog$func_quote_for_eval_result" + + # We need to accept at least all the BSD install flags. + dest= +@@ -2801,12 +1876,10 @@ func_mode_install () + install_type= + isdir=no + stripme= +- no_mode=: + for arg + do +- arg2= + if test -n "$dest"; then +- func_append files " $dest" ++ files="$files $dest" + dest=$arg + continue + fi +@@ -2814,9 +1887,10 @@ func_mode_install () + case $arg in + -d) isdir=yes ;; + -f) +- if $install_cp; then :; else +- prev=$arg +- fi ++ case " $install_prog " in ++ *[\\\ /]cp\ *) ;; ++ *) prev=$arg ;; ++ esac + ;; + -g | -m | -o) + prev=$arg +@@ -2830,10 +1904,6 @@ func_mode_install () + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then +- if test "x$prev" = x-m && test -n "$install_override_mode"; then +- arg2=$install_override_mode +- no_mode=false +- fi + prev= + else + dest=$arg +@@ -2844,11 +1914,7 @@ func_mode_install () + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" +- func_append install_prog " $func_quote_for_eval_result" +- if test -n "$arg2"; then +- func_quote_for_eval "$arg2" +- fi +- func_append install_shared_prog " $func_quote_for_eval_result" ++ install_prog="$install_prog $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ +@@ -2857,13 +1923,6 @@ func_mode_install () + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + +- if test -n "$install_override_mode" && $no_mode; then +- if $install_cp; then :; else +- func_quote_for_eval "$install_override_mode" +- func_append install_shared_prog " -m $func_quote_for_eval_result" +- fi +- fi +- + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" +@@ -2918,13 +1977,10 @@ func_mode_install () + case $file in + *.$libext) + # Do the static libraries later. +- func_append staticlibs " $file" ++ staticlibs="$staticlibs $file" + ;; + + *.la) +- func_resolve_sysroot "$file" +- file=$func_resolve_sysroot_result +- + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" +@@ -2938,23 +1994,23 @@ func_mode_install () + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; +- *) func_append current_libdirs " $libdir" ;; ++ *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; +- *) func_append future_libdirs " $libdir" ;; ++ *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" +- func_append dir "$objdir" ++ dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. +- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` ++ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that +@@ -2967,9 +2023,9 @@ func_mode_install () + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. +- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else +- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" +@@ -2987,7 +2043,7 @@ func_mode_install () + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. +- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ ++ func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in +@@ -3027,7 +2083,7 @@ func_mode_install () + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. +- test -n "$old_library" && func_append staticlibs " $dir/$old_library" ++ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) +@@ -3127,7 +2183,7 @@ func_mode_install () + if test -f "$lib"; then + func_source "$lib" + fi +- libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no +@@ -3146,7 +2202,7 @@ func_mode_install () + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. +- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" +@@ -3165,7 +2221,7 @@ func_mode_install () + } + else + # Install the binary that we compiled earlier. +- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` ++ file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + +@@ -3224,7 +2280,7 @@ func_mode_install () + fi + } + +-test "$opt_mode" = install && func_mode_install ${1+"$@"} ++test "$mode" = install && func_mode_install ${1+"$@"} + + + # func_generate_dlsyms outputname originator pic_p +@@ -3267,22 +2323,6 @@ func_generate_dlsyms () + extern \"C\" { + #endif + +-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +-#endif +- +-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +-/* DATA imports from DLLs on WIN32 con't be const, because runtime +- relocations are performed -- see ld's documentation on pseudo-relocs. */ +-# define LT_DLSYM_CONST +-#elif defined(__osf__) +-/* This system does not cope well with relocations in const data. */ +-# define LT_DLSYM_CONST +-#else +-# define LT_DLSYM_CONST const +-#endif +- + /* External symbol declarations for the compiler. */\ + " + +@@ -3292,11 +2332,10 @@ extern \"C\" { + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. +- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for progfile in $progfiles; do +- func_to_tool_file "$progfile" func_convert_file_msys_to_w32 +- func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" +- $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" ++ func_verbose "extracting global C symbols from \`$progfile'" ++ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then +@@ -3332,7 +2371,7 @@ extern \"C\" { + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in +- *cygwin* | *mingw* | *cegcc* ) ++ *cygwin | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; +@@ -3345,52 +2384,10 @@ extern \"C\" { + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" +- case $host in +- *cygwin* | *mingw* | *cegcc* ) +- # if an import library, we need to obtain dlname +- if func_win32_import_lib_p "$dlprefile"; then +- func_tr_sh "$dlprefile" +- eval "curr_lafile=\$libfile_$func_tr_sh_result" +- dlprefile_dlbasename="" +- if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then +- # Use subshell, to avoid clobbering current variable values +- dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` +- if test -n "$dlprefile_dlname" ; then +- func_basename "$dlprefile_dlname" +- dlprefile_dlbasename="$func_basename_result" +- else +- # no lafile. user explicitly requested -dlpreopen <import library>. +- $sharedlib_from_linklib_cmd "$dlprefile" +- dlprefile_dlbasename=$sharedlib_from_linklib_result +- fi +- fi +- $opt_dry_run || { +- if test -n "$dlprefile_dlbasename" ; then +- eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' +- else +- func_warning "Could not compute DLL name from $name" +- eval '$ECHO ": $name " >> "$nlist"' +- fi +- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 +- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | +- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" +- } +- else # not an import lib +- $opt_dry_run || { +- eval '$ECHO ": $name " >> "$nlist"' +- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 +- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" +- } +- fi +- ;; +- *) +- $opt_dry_run || { +- eval '$ECHO ": $name " >> "$nlist"' +- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 +- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" +- } +- ;; +- esac ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } + done + + $opt_dry_run || { +@@ -3418,19 +2415,36 @@ extern \"C\" { + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else +- echo '/* NONE */' >> "$output_objdir/$my_dlsyms" ++ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + +- echo >> "$output_objdir/$my_dlsyms" "\ ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ + + /* The mapping between symbol names and symbols. */ + typedef struct { + const char *name; + void *address; + } lt_dlsymlist; +-extern LT_DLSYM_CONST lt_dlsymlist ++" ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++/* DATA imports from DLLs on WIN32 con't be const, because ++ runtime relocations are performed -- see ld's documentation ++ on pseudo-relocs. */" ++ lt_dlsym_const= ;; ++ *osf5*) ++ echo >> "$output_objdir/$my_dlsyms" "\ ++/* This system does not cope well with relocations in const data */" ++ lt_dlsym_const= ;; ++ *) ++ lt_dlsym_const=const ;; ++ esac ++ ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++extern $lt_dlsym_const lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[]; +-LT_DLSYM_CONST lt_dlsymlist ++$lt_dlsym_const lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[] = + {\ + { \"$my_originator\", (void *) 0 }," +@@ -3443,7 +2457,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] = + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac +- echo >> "$output_objdir/$my_dlsyms" "\ ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} + }; + +@@ -3486,7 +2500,7 @@ static const void *lt_preloaded_setup() { + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; +- *) func_append symtab_cflags " $arg" ;; ++ *) symtab_cflags="$symtab_cflags $arg" ;; + esac + done + +@@ -3501,16 +2515,16 @@ static const void *lt_preloaded_setup() { + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then +- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` +- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else +- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` +- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) +- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` +- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; +@@ -3524,8 +2538,8 @@ static const void *lt_preloaded_setup() { + # really was required. + + # Nullify the symbol file. +- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` +- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi + } + +@@ -3535,7 +2549,6 @@ static const void *lt_preloaded_setup() { + # Need a lot of goo to handle *both* DLLs and import libs + # Has to be a shell function in order to 'eat' the argument + # that is supplied when $file_magic_command is called. +-# Despite the name, also deal with 64 bit binaries. + func_win32_libid () + { + $opt_debug +@@ -3546,11 +2559,9 @@ func_win32_libid () + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static +- # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | +- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then +- func_to_tool_file "$1" func_convert_file_msys_to_w32 +- win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | ++ $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then ++ win32_nmres=`eval $NM -f posix -A $1 | + $SED -n -e ' + 1,100{ + / I /{ +@@ -3579,131 +2590,6 @@ func_win32_libid () + $ECHO "$win32_libid_type" + } + +-# func_cygming_dll_for_implib ARG +-# +-# Platform-specific function to extract the +-# name of the DLL associated with the specified +-# import library ARG. +-# Invoked by eval'ing the libtool variable +-# $sharedlib_from_linklib_cmd +-# Result is available in the variable +-# $sharedlib_from_linklib_result +-func_cygming_dll_for_implib () +-{ +- $opt_debug +- sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +-} +- +-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +-# +-# The is the core of a fallback implementation of a +-# platform-specific function to extract the name of the +-# DLL associated with the specified import library LIBNAME. +-# +-# SECTION_NAME is either .idata$6 or .idata$7, depending +-# on the platform and compiler that created the implib. +-# +-# Echos the name of the DLL associated with the +-# specified import library. +-func_cygming_dll_for_implib_fallback_core () +-{ +- $opt_debug +- match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` +- $OBJDUMP -s --section "$1" "$2" 2>/dev/null | +- $SED '/^Contents of section '"$match_literal"':/{ +- # Place marker at beginning of archive member dllname section +- s/.*/====MARK====/ +- p +- d +- } +- # These lines can sometimes be longer than 43 characters, but +- # are always uninteresting +- /:[ ]*file format pe[i]\{,1\}-/d +- /^In archive [^:]*:/d +- # Ensure marker is printed +- /^====MARK====/p +- # Remove all lines with less than 43 characters +- /^.\{43\}/!d +- # From remaining lines, remove first 43 characters +- s/^.\{43\}//' | +- $SED -n ' +- # Join marker and all lines until next marker into a single line +- /^====MARK====/ b para +- H +- $ b para +- b +- :para +- x +- s/\n//g +- # Remove the marker +- s/^====MARK====// +- # Remove trailing dots and whitespace +- s/[\. \t]*$// +- # Print +- /./p' | +- # we now have a list, one entry per line, of the stringified +- # contents of the appropriate section of all members of the +- # archive which possess that section. Heuristic: eliminate +- # all those which have a first or second character that is +- # a '.' (that is, objdump's representation of an unprintable +- # character.) This should work for all archives with less than +- # 0x302f exports -- but will fail for DLLs whose name actually +- # begins with a literal '.' or a single character followed by +- # a '.'. +- # +- # Of those that remain, print the first one. +- $SED -e '/^\./d;/^.\./d;q' +-} +- +-# func_cygming_gnu_implib_p ARG +-# This predicate returns with zero status (TRUE) if +-# ARG is a GNU/binutils-style import library. Returns +-# with nonzero status (FALSE) otherwise. +-func_cygming_gnu_implib_p () +-{ +- $opt_debug +- func_to_tool_file "$1" func_convert_file_msys_to_w32 +- func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` +- test -n "$func_cygming_gnu_implib_tmp" +-} +- +-# func_cygming_ms_implib_p ARG +-# This predicate returns with zero status (TRUE) if +-# ARG is an MS-style import library. Returns +-# with nonzero status (FALSE) otherwise. +-func_cygming_ms_implib_p () +-{ +- $opt_debug +- func_to_tool_file "$1" func_convert_file_msys_to_w32 +- func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` +- test -n "$func_cygming_ms_implib_tmp" +-} +- +-# func_cygming_dll_for_implib_fallback ARG +-# Platform-specific function to extract the +-# name of the DLL associated with the specified +-# import library ARG. +-# +-# This fallback implementation is for use when $DLLTOOL +-# does not support the --identify-strict option. +-# Invoked by eval'ing the libtool variable +-# $sharedlib_from_linklib_cmd +-# Result is available in the variable +-# $sharedlib_from_linklib_result +-func_cygming_dll_for_implib_fallback () +-{ +- $opt_debug +- if func_cygming_gnu_implib_p "$1" ; then +- # binutils import library +- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` +- elif func_cygming_ms_implib_p "$1" ; then +- # ms-generated import library +- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` +- else +- # unknown +- sharedlib_from_linklib_result="" +- fi +-} + + + # func_extract_an_archive dir oldlib +@@ -3712,18 +2598,7 @@ func_extract_an_archive () + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" +- if test "$lock_old_archive_extraction" = yes; then +- lockfile=$f_ex_an_ar_oldlib.lock +- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do +- func_echo "Waiting for $lockfile to be removed" +- sleep 2 +- done +- fi +- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ +- 'stat=$?; rm -f "$lockfile"; exit $stat' +- if test "$lock_old_archive_extraction" = yes; then +- $opt_dry_run || rm -f "$lockfile" +- fi ++ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else +@@ -3794,7 +2669,7 @@ func_extract_archives () + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -3809,30 +2684,25 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" + } + + +-# func_emit_wrapper [arg=no] +-# +-# Emit a libtool wrapper script on stdout. +-# Don't directly open a file because we may want to +-# incorporate the script contents within a cygwin/mingw +-# wrapper executable. Must ONLY be called from within +-# func_mode_link because it depends on a number of variables +-# set therein. ++ ++# func_emit_wrapper_part1 [arg=no] + # +-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +-# variable will take. If 'yes', then the emitted script +-# will assume that the directory in which it is stored is +-# the $objdir directory. This is a cygwin/mingw-specific +-# behavior. +-func_emit_wrapper () ++# Emit the first part of a libtool wrapper script on stdout. ++# For more information, see the description associated with ++# func_emit_wrapper(), below. ++func_emit_wrapper_part1 () + { +- func_emit_wrapper_arg1=${1-no} ++ func_emit_wrapper_part1_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_part1_arg1=$1 ++ fi + + $ECHO "\ + #! $SHELL +@@ -3848,6 +2718,7 @@ func_emit_wrapper () + + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. ++Xsed='${SED} -e 1s/^X//' + sed_quote_subst='$sed_quote_subst' + + # Be Bourne compatible +@@ -3878,132 +2749,31 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then + else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then +- file=\"\$0\"" +- +- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` +- $ECHO "\ +- +-# A function that is used when there is no print builtin or printf. +-func_fallback_echo () +-{ +- eval 'cat <<_LTECHO_EOF +-\$1 +-_LTECHO_EOF' +-} +- ECHO=\"$qECHO\" +- fi +- +-# Very basic option parsing. These options are (a) specific to +-# the libtool wrapper, (b) are identical between the wrapper +-# /script/ and the wrapper /executable/ which is used only on +-# windows platforms, and (c) all begin with the string "--lt-" +-# (application programs are unlikely to have options which match +-# this pattern). +-# +-# There are only two supported options: --lt-debug and +-# --lt-dump-script. There is, deliberately, no --lt-help. +-# +-# The first argument to this parsing function should be the +-# script's $0 value, followed by "$@". +-lt_option_debug= +-func_parse_lt_options () +-{ +- lt_script_arg0=\$0 +- shift +- for lt_opt +- do +- case \"\$lt_opt\" in +- --lt-debug) lt_option_debug=1 ;; +- --lt-dump-script) +- lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` +- test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. +- lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` +- cat \"\$lt_dump_D/\$lt_dump_F\" +- exit 0 +- ;; +- --lt-*) +- \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 +- exit 1 +- ;; +- esac +- done +- +- # Print the debug banner immediately: +- if test -n \"\$lt_option_debug\"; then +- echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 +- fi +-} +- +-# Used when --lt-debug. Prints its arguments to stdout +-# (redirection is the responsibility of the caller) +-func_lt_dump_args () +-{ +- lt_dump_args_N=1; +- for lt_arg +- do +- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" +- lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` +- done +-} +- +-# Core function for launching the target application +-func_exec_program_core () +-{ +-" +- case $host in +- # Backslashes separate directories on plain windows +- *-*-mingw | *-*-os2* | *-cegcc*) +- $ECHO "\ +- if test -n \"\$lt_option_debug\"; then +- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 +- func_lt_dump_args \${1+\"\$@\"} 1>&2 +- fi +- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +-" +- ;; +- +- *) +- $ECHO "\ +- if test -n \"\$lt_option_debug\"; then +- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 +- func_lt_dump_args \${1+\"\$@\"} 1>&2 +- fi +- exec \"\$progdir/\$program\" \${1+\"\$@\"} ++ ECHO=\"$qecho\" ++ file=\"\$0\" ++ # Make sure echo works. ++ if test \"X\$1\" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++ elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then ++ # Yippee, \$ECHO works! ++ : ++ else ++ # Restart under the correct shell, and then maybe \$ECHO will work. ++ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} ++ fi ++ fi\ + " +- ;; +- esac +- $ECHO "\ +- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 +- exit 1 +-} +- +-# A function to encapsulate launching the target application +-# Strips options in the --lt-* namespace from \$@ and +-# launches target application with the remaining arguments. +-func_exec_program () +-{ +- for lt_wr_arg +- do +- case \$lt_wr_arg in +- --lt-*) ;; +- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; +- esac +- shift +- done +- func_exec_program_core \${1+\"\$@\"} +-} +- +- # Parse options +- func_parse_lt_options \"\$0\" \${1+\"\$@\"} ++ $ECHO "\ + + # Find the directory that this script lives in. +- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` ++ thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. +- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` ++ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do +- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` ++ destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then +@@ -4013,13 +2783,30 @@ func_exec_program () + esac + fi + +- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` +- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` ++ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done ++" ++} ++# end: func_emit_wrapper_part1 ++ ++# func_emit_wrapper_part2 [arg=no] ++# ++# Emit the second part of a libtool wrapper script on stdout. ++# For more information, see the description associated with ++# func_emit_wrapper(), below. ++func_emit_wrapper_part2 () ++{ ++ func_emit_wrapper_part2_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_part2_arg1=$1 ++ fi ++ ++ $ECHO "\ + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. +- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 ++ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then +@@ -4027,7 +2814,7 @@ func_exec_program () + fi + # remove .libs from thisdir + case \"\$thisdir\" in +- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; ++ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi +@@ -4082,18 +2869,6 @@ func_exec_program () + + if test -f \"\$progdir/\$program\"; then" + +- # fixup the dll searchpath if we need to. +- # +- # Fix the DLL searchpath if we need to. Do this before prepending +- # to shlibpath, because on Windows, both are PATH and uninstalled +- # libraries must come first. +- if test -n "$dllsearchpath"; then +- $ECHO "\ +- # Add the dll search path components to the executable PATH +- PATH=$dllsearchpath:\$PATH +-" +- fi +- + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ +@@ -4102,28 +2877,253 @@ func_exec_program () + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed +- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` ++ $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var + " + fi + ++ # fixup the dll searchpath if we need to. ++ if test -n "$dllsearchpath"; then ++ $ECHO "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +- func_exec_program \${1+\"\$@\"} ++" ++ case $host in ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2* | *-cegcc*) ++ $ECHO "\ ++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $ECHO "\ ++ exec \"\$progdir/\$program\" \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $ECHO "\ ++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ++ exit 1 + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 +- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 ++ $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi + fi\ + " + } ++# end: func_emit_wrapper_part2 ++ ++ ++# func_emit_wrapper [arg=no] ++# ++# Emit a libtool wrapper script on stdout. ++# Don't directly open a file because we may want to ++# incorporate the script contents within a cygwin/mingw ++# wrapper executable. Must ONLY be called from within ++# func_mode_link because it depends on a number of variables ++# set therein. ++# ++# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR ++# variable will take. If 'yes', then the emitted script ++# will assume that the directory in which it is stored is ++# the $objdir directory. This is a cygwin/mingw-specific ++# behavior. ++func_emit_wrapper () ++{ ++ func_emit_wrapper_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_arg1=$1 ++ fi ++ ++ # split this up so that func_emit_cwrapperexe_src ++ # can call each part independently. ++ func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" ++ func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" ++} ++ ++ ++# func_to_host_path arg ++# ++# Convert paths to host format when used with build tools. ++# Intended for use with "native" mingw (where libtool itself ++# is running under the msys shell), or in the following cross- ++# build environments: ++# $build $host ++# mingw (msys) mingw [e.g. native] ++# cygwin mingw ++# *nix + wine mingw ++# where wine is equipped with the `winepath' executable. ++# In the native mingw case, the (msys) shell automatically ++# converts paths for any non-msys applications it launches, ++# but that facility isn't available from inside the cwrapper. ++# Similar accommodations are necessary for $host mingw and ++# $build cygwin. Calling this function does no harm for other ++# $host/$build combinations not listed above. ++# ++# ARG is the path (on $build) that should be converted to ++# the proper representation for $host. The result is stored ++# in $func_to_host_path_result. ++func_to_host_path () ++{ ++ func_to_host_path_result="$1" ++ if test -n "$1" ; then ++ case $host in ++ *mingw* ) ++ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ case $build in ++ *mingw* ) # actually, msys ++ # awkward: cmd appends spaces to result ++ lt_sed_strip_trailing_spaces="s/[ ]*\$//" ++ func_to_host_path_tmp1=`( cmd //c echo "$1" |\ ++ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ *cygwin* ) ++ func_to_host_path_tmp1=`cygpath -w "$1"` ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ * ) ++ # Unfortunately, winepath does not exit with a non-zero ++ # error code, so we are forced to check the contents of ++ # stdout. On the other hand, if the command is not ++ # found, the shell will set an exit code of 127 and print ++ # *an error message* to stdout. So we must check for both ++ # error code of zero AND non-empty stdout, which explains ++ # the odd construction: ++ func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` ++ if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ else ++ # Allow warning below. ++ func_to_host_path_result="" ++ fi ++ ;; ++ esac ++ if test -z "$func_to_host_path_result" ; then ++ func_error "Could not determine host path corresponding to" ++ func_error " '$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback: ++ func_to_host_path_result="$1" ++ fi ++ ;; ++ esac ++ fi ++} ++# end: func_to_host_path + ++# func_to_host_pathlist arg ++# ++# Convert pathlists to host format when used with build tools. ++# See func_to_host_path(), above. This function supports the ++# following $build/$host combinations (but does no harm for ++# combinations not listed here): ++# $build $host ++# mingw (msys) mingw [e.g. native] ++# cygwin mingw ++# *nix + wine mingw ++# ++# Path separators are also converted from $build format to ++# $host format. If ARG begins or ends with a path separator ++# character, it is preserved (but converted to $host format) ++# on output. ++# ++# ARG is a pathlist (on $build) that should be converted to ++# the proper representation on $host. The result is stored ++# in $func_to_host_pathlist_result. ++func_to_host_pathlist () ++{ ++ func_to_host_pathlist_result="$1" ++ if test -n "$1" ; then ++ case $host in ++ *mingw* ) ++ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ # Remove leading and trailing path separator characters from ++ # ARG. msys behavior is inconsistent here, cygpath turns them ++ # into '.;' and ';.', and winepath ignores them completely. ++ func_to_host_pathlist_tmp2="$1" ++ # Once set for this call, this variable should not be ++ # reassigned. It is used in tha fallback case. ++ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e 's|^:*||' -e 's|:*$||'` ++ case $build in ++ *mingw* ) # Actually, msys. ++ # Awkward: cmd appends spaces to result. ++ lt_sed_strip_trailing_spaces="s/[ ]*\$//" ++ func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ ++ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ *cygwin* ) ++ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ * ) ++ # unfortunately, winepath doesn't convert pathlists ++ func_to_host_pathlist_result="" ++ func_to_host_pathlist_oldIFS=$IFS ++ IFS=: ++ for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do ++ IFS=$func_to_host_pathlist_oldIFS ++ if test -n "$func_to_host_pathlist_f" ; then ++ func_to_host_path "$func_to_host_pathlist_f" ++ if test -n "$func_to_host_path_result" ; then ++ if test -z "$func_to_host_pathlist_result" ; then ++ func_to_host_pathlist_result="$func_to_host_path_result" ++ else ++ func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" ++ fi ++ fi ++ fi ++ IFS=: ++ done ++ IFS=$func_to_host_pathlist_oldIFS ++ ;; ++ esac ++ if test -z "$func_to_host_pathlist_result" ; then ++ func_error "Could not determine the host path(s) corresponding to" ++ func_error " '$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback. This may break if $1 contains DOS-style drive ++ # specifications. The fix is not to complicate the expression ++ # below, but for the user to provide a working wine installation ++ # with winepath so that path translation in the cross-to-mingw ++ # case works properly. ++ lt_replace_pathsep_nix_to_dos="s|:|;|g" ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ ++ $SED -e "$lt_replace_pathsep_nix_to_dos"` ++ fi ++ # Now, add the leading and trailing path separators back ++ case "$1" in ++ :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ++ ;; ++ esac ++ case "$1" in ++ *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ++ ;; ++ esac ++ ;; ++ esac ++ fi ++} ++# end: func_to_host_pathlist + + # func_emit_cwrapperexe_src + # emit the source code for a wrapper executable on stdout +@@ -4141,23 +3141,31 @@ func_emit_cwrapperexe_src () + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. ++ ++ Currently, it simply execs the wrapper *script* "$SHELL $output", ++ but could eventually absorb all of the scripts functionality and ++ exec $objdir/$outputname directly. + */ + EOF + cat <<"EOF" +-#ifdef _MSC_VER +-# define _CRT_SECURE_NO_DEPRECATE 1 +-#endif + #include <stdio.h> + #include <stdlib.h> + #ifdef _MSC_VER + # include <direct.h> + # include <process.h> + # include <io.h> ++# define setmode _setmode + #else + # include <unistd.h> + # include <stdint.h> + # ifdef __CYGWIN__ + # include <io.h> ++# define HAVE_SETENV ++# ifdef __STRICT_ANSI__ ++char *realpath (const char *, char *); ++int putenv (char *); ++int setenv (const char *, const char *, int); ++# endif + # endif + #endif + #include <malloc.h> +@@ -4169,44 +3177,6 @@ EOF + #include <fcntl.h> + #include <sys/stat.h> + +-/* declarations of non-ANSI functions */ +-#if defined(__MINGW32__) +-# ifdef __STRICT_ANSI__ +-int _putenv (const char *); +-# endif +-#elif defined(__CYGWIN__) +-# ifdef __STRICT_ANSI__ +-char *realpath (const char *, char *); +-int putenv (char *); +-int setenv (const char *, const char *, int); +-# endif +-/* #elif defined (other platforms) ... */ +-#endif +- +-/* portability defines, excluding path handling macros */ +-#if defined(_MSC_VER) +-# define setmode _setmode +-# define stat _stat +-# define chmod _chmod +-# define getcwd _getcwd +-# define putenv _putenv +-# define S_IXUSR _S_IEXEC +-# ifndef _INTPTR_T_DEFINED +-# define _INTPTR_T_DEFINED +-# define intptr_t int +-# endif +-#elif defined(__MINGW32__) +-# define setmode _setmode +-# define stat _stat +-# define chmod _chmod +-# define getcwd _getcwd +-# define putenv _putenv +-#elif defined(__CYGWIN__) +-# define HAVE_SETENV +-# define FOPEN_WB "wb" +-/* #elif defined (other platforms) ... */ +-#endif +- + #if defined(PATH_MAX) + # define LT_PATHMAX PATH_MAX + #elif defined(MAXPATHLEN) +@@ -4222,7 +3192,14 @@ int setenv (const char *, const char *, int); + # define S_IXGRP 0 + #endif + +-/* path handling portability macros */ ++#ifdef _MSC_VER ++# define S_IXUSR _S_IEXEC ++# define stat _stat ++# ifndef _INTPTR_T_DEFINED ++# define intptr_t int ++# endif ++#endif ++ + #ifndef DIR_SEPARATOR + # define DIR_SEPARATOR '/' + # define PATH_SEPARATOR ':' +@@ -4253,6 +3230,10 @@ int setenv (const char *, const char *, int); + # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) + #endif /* PATH_SEPARATOR_2 */ + ++#ifdef __CYGWIN__ ++# define FOPEN_WB "wb" ++#endif ++ + #ifndef FOPEN_WB + # define FOPEN_WB "w" + #endif +@@ -4265,13 +3246,22 @@ int setenv (const char *, const char *, int); + if (stale) { free ((void *) stale); stale = 0; } \ + } while (0) + +-#if defined(LT_DEBUGWRAPPER) +-static int lt_debug = 1; ++#undef LTWRAPPER_DEBUGPRINTF ++#if defined DEBUGWRAPPER ++# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args ++static void ++ltwrapper_debugprintf (const char *fmt, ...) ++{ ++ va_list args; ++ va_start (args, fmt); ++ (void) vfprintf (stderr, fmt, args); ++ va_end (args); ++} + #else +-static int lt_debug = 0; ++# define LTWRAPPER_DEBUGPRINTF(args) + #endif + +-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ ++const char *program_name = NULL; + + void *xmalloc (size_t num); + char *xstrdup (const char *string); +@@ -4281,27 +3271,41 @@ char *chase_symlinks (const char *pathspec); + int make_executable (const char *path); + int check_executable (const char *path); + char *strendzap (char *str, const char *pat); +-void lt_debugprintf (const char *file, int line, const char *fmt, ...); +-void lt_fatal (const char *file, int line, const char *message, ...); +-static const char *nonnull (const char *s); +-static const char *nonempty (const char *s); ++void lt_fatal (const char *message, ...); + void lt_setenv (const char *name, const char *value); + char *lt_extend_str (const char *orig_value, const char *add, int to_end); ++void lt_opt_process_env_set (const char *arg); ++void lt_opt_process_env_prepend (const char *arg); ++void lt_opt_process_env_append (const char *arg); ++int lt_split_name_value (const char *arg, char** name, char** value); + void lt_update_exe_path (const char *name, const char *value); + void lt_update_lib_path (const char *name, const char *value); +-char **prepare_spawn (char **argv); +-void lt_dump_script (FILE *f); ++ ++static const char *script_text_part1 = + EOF + ++ func_emit_wrapper_part1 yes | ++ $SED -e 's/\([\\"]\)/\\\1/g' \ ++ -e 's/^/ "/' -e 's/$/\\n"/' ++ echo ";" + cat <<EOF +-volatile const char * MAGIC_EXE = "$magic_exe"; ++ ++static const char *script_text_part2 = ++EOF ++ func_emit_wrapper_part2 yes | ++ $SED -e 's/\([\\"]\)/\\\1/g' \ ++ -e 's/^/ "/' -e 's/$/\\n"/' ++ echo ";" ++ ++ cat <<EOF ++const char * MAGIC_EXE = "$magic_exe"; + const char * LIB_PATH_VARNAME = "$shlibpath_var"; + EOF + + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then +- func_to_host_path "$temp_rpath" ++ func_to_host_pathlist "$temp_rpath" + cat <<EOF +-const char * LIB_PATH_VALUE = "$func_to_host_path_result"; ++const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; + EOF + else + cat <<"EOF" +@@ -4310,10 +3314,10 @@ EOF + fi + + if test -n "$dllsearchpath"; then +- func_to_host_path "$dllsearchpath:" ++ func_to_host_pathlist "$dllsearchpath:" + cat <<EOF + const char * EXE_PATH_VARNAME = "PATH"; +-const char * EXE_PATH_VALUE = "$func_to_host_path_result"; ++const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; + EOF + else + cat <<"EOF" +@@ -4336,10 +3340,24 @@ EOF + cat <<"EOF" + + #define LTWRAPPER_OPTION_PREFIX "--lt-" ++#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 + ++static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; + static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; ++ + static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; +-static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; ++ ++static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; ++static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; ++ /* argument is putenv-style "foo=bar", value of foo is set to bar */ ++ ++static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; ++static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; ++ /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ ++ ++static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; ++static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; ++ /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ + + int + main (int argc, char *argv[]) +@@ -4356,13 +3374,10 @@ main (int argc, char *argv[]) + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); +- newargz = XMALLOC (char *, argc + 1); ++ LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); ++ LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); + +- /* very simple arg parsing; don't want to rely on getopt +- * also, copy all non cwrapper options to newargz, except +- * argz[0], which is handled differently +- */ +- newargc=0; ++ /* very simple arg parsing; don't want to rely on getopt */ + for (i = 1; i < argc; i++) + { + if (strcmp (argv[i], dumpscript_opt) == 0) +@@ -4376,57 +3391,25 @@ EOF + esac + + cat <<"EOF" +- lt_dump_script (stdout); ++ printf ("%s", script_text_part1); ++ printf ("%s", script_text_part2); + return 0; + } +- if (strcmp (argv[i], debug_opt) == 0) +- { +- lt_debug = 1; +- continue; +- } +- if (strcmp (argv[i], ltwrapper_option_prefix) == 0) +- { +- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX +- namespace, but it is not one of the ones we know about and +- have already dealt with, above (inluding dump-script), then +- report an error. Otherwise, targets might begin to believe +- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX +- namespace. The first time any user complains about this, we'll +- need to make LTWRAPPER_OPTION_PREFIX a configure-time option +- or a configure.ac-settable value. +- */ +- lt_fatal (__FILE__, __LINE__, +- "unrecognized %s option: '%s'", +- ltwrapper_option_prefix, argv[i]); +- } +- /* otherwise ... */ +- newargz[++newargc] = xstrdup (argv[i]); + } +- newargz[++newargc] = NULL; +- +-EOF +- cat <<EOF +- /* The GNU banner must be the first non-error debug message */ +- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); +-EOF +- cat <<"EOF" +- lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); +- lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); + ++ newargz = XMALLOC (char *, argc + 1); + tmp_pathspec = find_executable (argv[0]); + if (tmp_pathspec == NULL) +- lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); +- lt_debugprintf (__FILE__, __LINE__, +- "(main) found exe (before symlink chase) at: %s\n", +- tmp_pathspec); ++ lt_fatal ("Couldn't find %s", argv[0]); ++ LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", ++ tmp_pathspec)); + + actual_cwrapper_path = chase_symlinks (tmp_pathspec); +- lt_debugprintf (__FILE__, __LINE__, +- "(main) found exe (after symlink chase) at: %s\n", +- actual_cwrapper_path); ++ LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", ++ actual_cwrapper_path)); + XFREE (tmp_pathspec); + +- actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); ++ actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); + strendzap (actual_cwrapper_path, actual_cwrapper_name); + + /* wrapper name transforms */ +@@ -4444,9 +3427,8 @@ EOF + target_name = tmp_pathspec; + tmp_pathspec = 0; + +- lt_debugprintf (__FILE__, __LINE__, +- "(main) libtool target name: %s\n", +- target_name); ++ LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", ++ target_name)); + EOF + + cat <<EOF +@@ -4496,19 +3478,80 @@ EOF + + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ +- /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must +- be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) +- because on Windows, both *_VARNAMEs are PATH but uninstalled +- libraries must come first. */ +- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); ++ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + +- lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", +- nonnull (lt_argv_zero)); ++ newargc=0; ++ for (i = 1; i < argc; i++) ++ { ++ if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) ++ { ++ if (argv[i][env_set_opt_len] == '=') ++ { ++ const char *p = argv[i] + env_set_opt_len + 1; ++ lt_opt_process_env_set (p); ++ } ++ else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) ++ { ++ lt_opt_process_env_set (argv[++i]); /* don't copy */ ++ } ++ else ++ lt_fatal ("%s missing required argument", env_set_opt); ++ continue; ++ } ++ if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) ++ { ++ if (argv[i][env_prepend_opt_len] == '=') ++ { ++ const char *p = argv[i] + env_prepend_opt_len + 1; ++ lt_opt_process_env_prepend (p); ++ } ++ else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) ++ { ++ lt_opt_process_env_prepend (argv[++i]); /* don't copy */ ++ } ++ else ++ lt_fatal ("%s missing required argument", env_prepend_opt); ++ continue; ++ } ++ if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) ++ { ++ if (argv[i][env_append_opt_len] == '=') ++ { ++ const char *p = argv[i] + env_append_opt_len + 1; ++ lt_opt_process_env_append (p); ++ } ++ else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) ++ { ++ lt_opt_process_env_append (argv[++i]); /* don't copy */ ++ } ++ else ++ lt_fatal ("%s missing required argument", env_append_opt); ++ continue; ++ } ++ if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) ++ { ++ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX ++ namespace, but it is not one of the ones we know about and ++ have already dealt with, above (inluding dump-script), then ++ report an error. Otherwise, targets might begin to believe ++ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX ++ namespace. The first time any user complains about this, we'll ++ need to make LTWRAPPER_OPTION_PREFIX a configure-time option ++ or a configure.ac-settable value. ++ */ ++ lt_fatal ("Unrecognized option in %s namespace: '%s'", ++ ltwrapper_option_prefix, argv[i]); ++ } ++ /* otherwise ... */ ++ newargz[++newargc] = xstrdup (argv[i]); ++ } ++ newargz[++newargc] = NULL; ++ ++ LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); + for (i = 0; i < newargc; i++) + { +- lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", +- i, nonnull (newargz[i])); ++ LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); + } + + EOF +@@ -4517,14 +3560,11 @@ EOF + mingw*) + cat <<"EOF" + /* execv doesn't actually work on mingw as expected on unix */ +- newargz = prepare_spawn (newargz); + rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); + if (rval == -1) + { + /* failed to start process */ +- lt_debugprintf (__FILE__, __LINE__, +- "(main) failed to launch target \"%s\": %s\n", +- lt_argv_zero, nonnull (strerror (errno))); ++ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); + return 127; + } + return rval; +@@ -4546,7 +3586,7 @@ xmalloc (size_t num) + { + void *p = (void *) malloc (num); + if (!p) +- lt_fatal (__FILE__, __LINE__, "memory exhausted"); ++ lt_fatal ("Memory exhausted"); + + return p; + } +@@ -4580,8 +3620,8 @@ check_executable (const char *path) + { + struct stat st; + +- lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", +- nonempty (path)); ++ LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", ++ path ? (*path ? path : "EMPTY!") : "NULL!")); + if ((!path) || (!*path)) + return 0; + +@@ -4598,8 +3638,8 @@ make_executable (const char *path) + int rval = 0; + struct stat st; + +- lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", +- nonempty (path)); ++ LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", ++ path ? (*path ? path : "EMPTY!") : "NULL!")); + if ((!path) || (!*path)) + return 0; + +@@ -4625,8 +3665,8 @@ find_executable (const char *wrapper) + int tmp_len; + char *concat_name; + +- lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", +- nonempty (wrapper)); ++ LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", ++ wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; +@@ -4679,8 +3719,7 @@ find_executable (const char *wrapper) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", +- nonnull (strerror (errno))); ++ lt_fatal ("getcwd failed"); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); +@@ -4705,8 +3744,7 @@ find_executable (const char *wrapper) + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", +- nonnull (strerror (errno))); ++ lt_fatal ("getcwd failed"); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); +@@ -4732,9 +3770,8 @@ chase_symlinks (const char *pathspec) + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { +- lt_debugprintf (__FILE__, __LINE__, +- "checking path component for symlinks: %s\n", +- tmp_pathspec); ++ LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", ++ tmp_pathspec)); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) +@@ -4756,9 +3793,8 @@ chase_symlinks (const char *pathspec) + } + else + { +- lt_fatal (__FILE__, __LINE__, +- "error accessing file \"%s\": %s", +- tmp_pathspec, nonnull (strerror (errno))); ++ char *errstr = strerror (errno); ++ lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); + } + } + XFREE (tmp_pathspec); +@@ -4771,8 +3807,7 @@ chase_symlinks (const char *pathspec) + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { +- lt_fatal (__FILE__, __LINE__, +- "could not follow symlinks for %s", pathspec); ++ lt_fatal ("Could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); + #endif +@@ -4798,25 +3833,11 @@ strendzap (char *str, const char *pat) + return str; + } + +-void +-lt_debugprintf (const char *file, int line, const char *fmt, ...) +-{ +- va_list args; +- if (lt_debug) +- { +- (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); +- va_start (args, fmt); +- (void) vfprintf (stderr, fmt, args); +- va_end (args); +- } +-} +- + static void +-lt_error_core (int exit_status, const char *file, +- int line, const char *mode, ++lt_error_core (int exit_status, const char *mode, + const char *message, va_list ap) + { +- fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); ++ fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + +@@ -4825,32 +3846,20 @@ lt_error_core (int exit_status, const char *file, + } + + void +-lt_fatal (const char *file, int line, const char *message, ...) ++lt_fatal (const char *message, ...) + { + va_list ap; + va_start (ap, message); +- lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); ++ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); + } + +-static const char * +-nonnull (const char *s) +-{ +- return s ? s : "(null)"; +-} +- +-static const char * +-nonempty (const char *s) +-{ +- return (s && !*s) ? "(empty)" : nonnull (s); +-} +- + void + lt_setenv (const char *name, const char *value) + { +- lt_debugprintf (__FILE__, __LINE__, +- "(lt_setenv) setting '%s' to '%s'\n", +- nonnull (name), nonnull (value)); ++ LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", ++ (name ? name : "<NULL>"), ++ (value ? value : "<NULL>"))); + { + #ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ +@@ -4895,12 +3904,95 @@ lt_extend_str (const char *orig_value, const char *add, int to_end) + return new_value; + } + ++int ++lt_split_name_value (const char *arg, char** name, char** value) ++{ ++ const char *p; ++ int len; ++ if (!arg || !*arg) ++ return 1; ++ ++ p = strchr (arg, (int)'='); ++ ++ if (!p) ++ return 1; ++ ++ *value = xstrdup (++p); ++ ++ len = strlen (arg) - strlen (*value); ++ *name = XMALLOC (char, len); ++ strncpy (*name, arg, len-1); ++ (*name)[len - 1] = '\0'; ++ ++ return 0; ++} ++ ++void ++lt_opt_process_env_set (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); ++ } ++ ++ lt_setenv (name, value); ++ XFREE (name); ++ XFREE (value); ++} ++ ++void ++lt_opt_process_env_prepend (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ char *new_value = NULL; ++ ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); ++ } ++ ++ new_value = lt_extend_str (getenv (name), value, 0); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ XFREE (name); ++ XFREE (value); ++} ++ ++void ++lt_opt_process_env_append (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ char *new_value = NULL; ++ ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); ++ } ++ ++ new_value = lt_extend_str (getenv (name), value, 1); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ XFREE (name); ++ XFREE (value); ++} ++ + void + lt_update_exe_path (const char *name, const char *value) + { +- lt_debugprintf (__FILE__, __LINE__, +- "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", +- nonnull (name), nonnull (value)); ++ LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ++ (name ? name : "<NULL>"), ++ (value ? value : "<NULL>"))); + + if (name && *name && value && *value) + { +@@ -4919,9 +4011,9 @@ lt_update_exe_path (const char *name, const char *value) + void + lt_update_lib_path (const char *name, const char *value) + { +- lt_debugprintf (__FILE__, __LINE__, +- "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", +- nonnull (name), nonnull (value)); ++ LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ++ (name ? name : "<NULL>"), ++ (value ? value : "<NULL>"))); + + if (name && *name && value && *value) + { +@@ -4931,152 +4023,11 @@ lt_update_lib_path (const char *name, const char *value) + } + } + +-EOF +- case $host_os in +- mingw*) +- cat <<"EOF" +- +-/* Prepares an argument vector before calling spawn(). +- Note that spawn() does not by itself call the command interpreter +- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : +- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); +- GetVersionEx(&v); +- v.dwPlatformId == VER_PLATFORM_WIN32_NT; +- }) ? "cmd.exe" : "command.com"). +- Instead it simply concatenates the arguments, separated by ' ', and calls +- CreateProcess(). We must quote the arguments since Win32 CreateProcess() +- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a +- special way: +- - Space and tab are interpreted as delimiters. They are not treated as +- delimiters if they are surrounded by double quotes: "...". +- - Unescaped double quotes are removed from the input. Their only effect is +- that within double quotes, space and tab are treated like normal +- characters. +- - Backslashes not followed by double quotes are not special. +- - But 2*n+1 backslashes followed by a double quote become +- n backslashes followed by a double quote (n >= 0): +- \" -> " +- \\\" -> \" +- \\\\\" -> \\" +- */ +-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +-char ** +-prepare_spawn (char **argv) +-{ +- size_t argc; +- char **new_argv; +- size_t i; +- +- /* Count number of arguments. */ +- for (argc = 0; argv[argc] != NULL; argc++) +- ; +- +- /* Allocate new argument vector. */ +- new_argv = XMALLOC (char *, argc + 1); +- +- /* Put quoted arguments into the new argument vector. */ +- for (i = 0; i < argc; i++) +- { +- const char *string = argv[i]; +- +- if (string[0] == '\0') +- new_argv[i] = xstrdup ("\"\""); +- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) +- { +- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); +- size_t length; +- unsigned int backslashes; +- const char *s; +- char *quoted_string; +- char *p; +- +- length = 0; +- backslashes = 0; +- if (quote_around) +- length++; +- for (s = string; *s != '\0'; s++) +- { +- char c = *s; +- if (c == '"') +- length += backslashes + 1; +- length++; +- if (c == '\\') +- backslashes++; +- else +- backslashes = 0; +- } +- if (quote_around) +- length += backslashes + 1; + +- quoted_string = XMALLOC (char, length + 1); +- +- p = quoted_string; +- backslashes = 0; +- if (quote_around) +- *p++ = '"'; +- for (s = string; *s != '\0'; s++) +- { +- char c = *s; +- if (c == '"') +- { +- unsigned int j; +- for (j = backslashes + 1; j > 0; j--) +- *p++ = '\\'; +- } +- *p++ = c; +- if (c == '\\') +- backslashes++; +- else +- backslashes = 0; +- } +- if (quote_around) +- { +- unsigned int j; +- for (j = backslashes; j > 0; j--) +- *p++ = '\\'; +- *p++ = '"'; +- } +- *p = '\0'; +- +- new_argv[i] = quoted_string; +- } +- else +- new_argv[i] = (char *) string; +- } +- new_argv[argc] = NULL; +- +- return new_argv; +-} +-EOF +- ;; +- esac +- +- cat <<"EOF" +-void lt_dump_script (FILE* f) +-{ +-EOF +- func_emit_wrapper yes | +- $SED -e 's/\([\\"]\)/\\\1/g' \ +- -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' +- +- cat <<"EOF" +-} + EOF + } + # end: func_emit_cwrapperexe_src + +-# func_win32_import_lib_p ARG +-# True if ARG is an import lib, as indicated by $file_magic_cmd +-func_win32_import_lib_p () +-{ +- $opt_debug +- case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in +- *import*) : ;; +- *) false ;; +- esac +-} +- + # func_mode_link arg... + func_mode_link () + { +@@ -5121,7 +4072,6 @@ func_mode_link () + new_inherited_linker_flags= + + avoid_version=no +- bindir= + dlfiles= + dlprefiles= + dlself=no +@@ -5214,11 +4164,6 @@ func_mode_link () + esac + + case $prev in +- bindir) +- bindir="$arg" +- prev= +- continue +- ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. +@@ -5250,9 +4195,9 @@ func_mode_link () + ;; + *) + if test "$prev" = dlfiles; then +- func_append dlfiles " $arg" ++ dlfiles="$dlfiles $arg" + else +- func_append dlprefiles " $arg" ++ dlprefiles="$dlprefiles $arg" + fi + prev= + continue +@@ -5276,7 +4221,7 @@ func_mode_link () + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; +- *) func_append deplibs " $qarg.ltframework" # this is fixed later ++ *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + ;; + esac + ;; +@@ -5295,7 +4240,7 @@ func_mode_link () + moreargs= + for fil in `cat "$save_arg"` + do +-# func_append moreargs " $fil" ++# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + +@@ -5324,7 +4269,7 @@ func_mode_link () + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- func_append dlfiles " $pic_object" ++ dlfiles="$dlfiles $pic_object" + prev= + continue + else +@@ -5336,7 +4281,7 @@ func_mode_link () + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- func_append dlprefiles " $pic_object" ++ dlprefiles="$dlprefiles $pic_object" + prev= + fi + +@@ -5406,12 +4351,12 @@ func_mode_link () + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; +- *) func_append rpath " $arg" ;; ++ *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; +- *) func_append xrpath " $arg" ;; ++ *) xrpath="$xrpath $arg" ;; + esac + fi + prev= +@@ -5423,28 +4368,28 @@ func_mode_link () + continue + ;; + weak) +- func_append weak_libs " $arg" ++ weak_libs="$weak_libs $arg" + prev= + continue + ;; + xcclinker) +- func_append linker_flags " $qarg" +- func_append compiler_flags " $qarg" ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) +- func_append compiler_flags " $qarg" ++ compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) +- func_append linker_flags " $qarg" +- func_append compiler_flags " $wl$qarg" ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" +@@ -5480,11 +4425,6 @@ func_mode_link () + continue + ;; + +- -bindir) +- prev=bindir +- continue +- ;; +- + -dlopen) + prev=dlfiles + continue +@@ -5535,16 +4475,15 @@ func_mode_link () + ;; + + -L*) +- func_stripname "-L" '' "$arg" +- if test -z "$func_stripname_result"; then ++ func_stripname '-L' '' "$arg" ++ dir=$func_stripname_result ++ if test -z "$dir"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi +- func_resolve_sysroot "$func_stripname_result" +- dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; +@@ -5556,30 +4495,24 @@ func_mode_link () + ;; + esac + case "$deplibs " in +- *" -L$dir "* | *" $arg "*) +- # Will only happen for absolute or sysroot arguments +- ;; ++ *" -L$dir "*) ;; + *) +- # Preserve sysroot, but never include relative directories +- case $dir in +- [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; +- *) func_append deplibs " -L$dir" ;; +- esac +- func_append lib_search_path " $dir" ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) +- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` ++ testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; +- *) func_append dllsearchpath ":$dir";; ++ *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) func_append dllsearchpath ":$testbindir";; ++ *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac +@@ -5589,7 +4522,7 @@ func_mode_link () + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + # These systems don't actually have a C or math library (as such) + continue + ;; +@@ -5603,7 +4536,7 @@ func_mode_link () + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework +- func_append deplibs " System.ltframework" ++ deplibs="$deplibs System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) +@@ -5623,7 +4556,7 @@ func_mode_link () + ;; + esac + fi +- func_append deplibs " $arg" ++ deplibs="$deplibs $arg" + continue + ;; + +@@ -5635,8 +4568,8 @@ func_mode_link () + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. +- -model|-arch|-isysroot|--sysroot) +- func_append compiler_flags " $arg" ++ -model|-arch|-isysroot) ++ compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler +@@ -5644,12 +4577,12 @@ func_mode_link () + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) +- func_append compiler_flags " $arg" ++ compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; +- * ) func_append new_inherited_linker_flags " $arg" ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + esac + continue + ;; +@@ -5716,17 +4649,13 @@ func_mode_link () + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; +- =*) +- func_stripname '=' '' "$dir" +- dir=$lt_sysroot$func_stripname_result +- ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; +- *) func_append xrpath " $dir" ;; ++ *) xrpath="$xrpath $dir" ;; + esac + continue + ;; +@@ -5779,8 +4708,8 @@ func_mode_link () + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- func_append arg " $func_quote_for_eval_result" +- func_append compiler_flags " $func_quote_for_eval_result" ++ arg="$arg $wl$func_quote_for_eval_result" ++ compiler_flags="$compiler_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" +@@ -5795,9 +4724,9 @@ func_mode_link () + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- func_append arg " $wl$func_quote_for_eval_result" +- func_append compiler_flags " $wl$func_quote_for_eval_result" +- func_append linker_flags " $func_quote_for_eval_result" ++ arg="$arg $wl$func_quote_for_eval_result" ++ compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" ++ linker_flags="$linker_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" +@@ -5825,27 +4754,23 @@ func_mode_link () + arg="$func_quote_for_eval_result" + ;; + +- # Flags to be passed through unchanged, with rationale: +- # -64, -mips[0-9] enable 64-bit mode for the SGI compiler +- # -r[0-9][0-9]* specify processor for the SGI compiler +- # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler +- # +DA*, +DD* enable 64-bit mode for the HP compiler +- # -q* compiler args for the IBM compiler +- # -m*, -t[45]*, -txscale* architecture-specific flags for GCC +- # -F/path path to uninstalled frameworks, gcc on darwin +- # -p, -pg, --coverage, -fprofile-* profiling flags for GCC +- # @file GCC response files +- # -tp=* Portland pgcc target processor selection +- # --sysroot=* for sysroot support +- # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization ++ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler ++ # -r[0-9][0-9]* specifies the processor on the SGI compiler ++ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler ++ # +DA*, +DD* enable 64-bit mode on the HP compiler ++ # -q* pass through compiler args for the IBM compiler ++ # -m*, -t[45]*, -txscale* pass through architecture-specific ++ # compiler args for GCC ++ # -F/path gives path to uninstalled frameworks, gcc on darwin ++ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC ++ # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ +- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ +- -O*|-flto*|-fwhopr*|-fuse-linker-plugin) ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" +- func_append compiler_flags " $arg" ++ compiler_flags="$compiler_flags $arg" + continue + ;; + +@@ -5857,7 +4782,7 @@ func_mode_link () + + *.$objext) + # A standard object. +- func_append objs " $arg" ++ objs="$objs $arg" + ;; + + *.lo) +@@ -5888,7 +4813,7 @@ func_mode_link () + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- func_append dlfiles " $pic_object" ++ dlfiles="$dlfiles $pic_object" + prev= + continue + else +@@ -5900,7 +4825,7 @@ func_mode_link () + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- func_append dlprefiles " $pic_object" ++ dlprefiles="$dlprefiles $pic_object" + prev= + fi + +@@ -5945,25 +4870,24 @@ func_mode_link () + + *.$libext) + # An archive. +- func_append deplibs " $arg" +- func_append old_deplibs " $arg" ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + +- func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. +- func_append dlfiles " $func_resolve_sysroot_result" ++ dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. +- func_append dlprefiles " $func_resolve_sysroot_result" ++ dlprefiles="$dlprefiles $arg" + prev= + else +- func_append deplibs " $func_resolve_sysroot_result" ++ deplibs="$deplibs $arg" + fi + continue + ;; +@@ -6001,7 +4925,7 @@ func_mode_link () + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var +- eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` ++ eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi +@@ -6010,8 +4934,6 @@ func_mode_link () + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" +- func_to_tool_file "$output_objdir/" +- tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + +@@ -6032,12 +4954,12 @@ func_mode_link () + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do +- if $opt_preserve_dup_deps ; then ++ if $opt_duplicate_deps ; then + case "$libs " in +- *" $deplib "*) func_append specialdeplibs " $deplib" ;; ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi +- func_append libs " $deplib" ++ libs="$libs $deplib" + done + + if test "$linkmode" = lib; then +@@ -6050,9 +4972,9 @@ func_mode_link () + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in +- *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; ++ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac +- func_append pre_post_deps " $pre_post_dep" ++ pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= +@@ -6122,19 +5044,17 @@ func_mode_link () + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= +- func_resolve_sysroot "$lib" + case $lib in +- *.la) func_source "$func_resolve_sysroot_result" ;; ++ *.la) func_source "$lib" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do +- func_basename "$deplib" +- deplib_base=$func_basename_result ++ deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + case " $weak_libs " in + *" $deplib_base "*) ;; +- *) func_append deplibs " $deplib" ;; ++ *) deplibs="$deplibs $deplib" ;; + esac + done + done +@@ -6155,11 +5075,11 @@ func_mode_link () + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- func_append compiler_flags " $deplib" ++ compiler_flags="$compiler_flags $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) func_append new_inherited_linker_flags " $deplib" ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi +@@ -6244,7 +5164,7 @@ func_mode_link () + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) func_append new_inherited_linker_flags " $deplib" ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi +@@ -6257,8 +5177,7 @@ func_mode_link () + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" +- func_resolve_sysroot "$func_stripname_result" +- func_append newlib_search_path " $func_resolve_sysroot_result" ++ newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + prog) + if test "$pass" = conv; then +@@ -6272,8 +5191,7 @@ func_mode_link () + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" +- func_resolve_sysroot "$func_stripname_result" +- func_append newlib_search_path " $func_resolve_sysroot_result" ++ newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" +@@ -6284,21 +5202,17 @@ func_mode_link () + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" +- func_resolve_sysroot "$func_stripname_result" +- dir=$func_resolve_sysroot_result ++ dir=$func_stripname_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; +- *) func_append xrpath " $dir" ;; ++ *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; +- *.la) +- func_resolve_sysroot "$deplib" +- lib=$func_resolve_sysroot_result +- ;; ++ *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" +@@ -6316,7 +5230,7 @@ func_mode_link () + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` +- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ ++ if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi +@@ -6326,15 +5240,15 @@ func_mode_link () + ;; + esac + if test "$valid_a_lib" != yes; then +- echo ++ $ECHO + $ECHO "*** Warning: Trying to link with static lib archive $deplib." +- echo "*** I have the capability to make that library automatically link in when" +- echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have" +- echo "*** because the file extensions .$libext of this argument makes me believe" +- echo "*** that it is just a static archive that I should not use here." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have" ++ $ECHO "*** because the file extensions .$libext of this argument makes me believe" ++ $ECHO "*** that it is just a static archive that I should not use here." + else +- echo ++ $ECHO + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" +@@ -6361,11 +5275,11 @@ func_mode_link () + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. +- func_append newdlprefiles " $deplib" ++ newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- func_append newdlfiles " $deplib" ++ newdlfiles="$newdlfiles $deplib" + fi + fi + continue +@@ -6407,20 +5321,20 @@ func_mode_link () + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +- *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; ++ *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + esac + done + fi +- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then +- test -n "$dlopen" && func_append dlfiles " $dlopen" +- test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" ++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then +@@ -6431,17 +5345,17 @@ func_mode_link () + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. +- func_append convenience " $ladir/$objdir/$old_library" +- func_append old_convenience " $ladir/$objdir/$old_library" ++ convenience="$convenience $ladir/$objdir/$old_library" ++ old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" +- if $opt_preserve_dup_deps ; then ++ if $opt_duplicate_deps ; then + case "$tmp_libs " in +- *" $deplib "*) func_append specialdeplibs " $deplib" ;; ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi +- func_append tmp_libs " $deplib" ++ tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" +@@ -6452,15 +5366,9 @@ func_mode_link () + + # Get the name of the library we link against. + linklib= +- if test -n "$old_library" && +- { test "$prefer_static_libs" = yes || +- test "$prefer_static_libs,$installed" = "built,no"; }; then +- linklib=$old_library +- else +- for l in $old_library $library_names; do +- linklib="$l" +- done +- fi ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi +@@ -6477,9 +5385,9 @@ func_mode_link () + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. +- func_append dlprefiles " $lib $dependency_libs" ++ dlprefiles="$dlprefiles $lib $dependency_libs" + else +- func_append newdlfiles " $lib" ++ newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen +@@ -6501,14 +5409,14 @@ func_mode_link () + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then +- if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else +- dir="$lt_sysroot$libdir" +- absdir="$lt_sysroot$libdir" ++ dir="$libdir" ++ absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else +@@ -6516,12 +5424,12 @@ func_mode_link () + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later +- func_append notinst_path " $abs_ladir" ++ notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later +- func_append notinst_path " $abs_ladir" ++ notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" +@@ -6532,46 +5440,20 @@ func_mode_link () + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi +- case "$host" in +- # special handling for platforms with PE-DLLs. +- *cygwin* | *mingw* | *cegcc* ) +- # Linker will automatically link against shared library if both +- # static and shared are present. Therefore, ensure we extract +- # symbols from the import library if a shared library is present +- # (otherwise, the dlopen module name will be incorrect). We do +- # this by putting the import library name into $newdlprefiles. +- # We recover the dlopen module name by 'saving' the la file +- # name in a special purpose variable, and (later) extracting the +- # dlname from the la file. +- if test -n "$dlname"; then +- func_tr_sh "$dir/$linklib" +- eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" +- func_append newdlprefiles " $dir/$linklib" +- else +- func_append newdlprefiles " $dir/$old_library" +- # Keep a list of preopened convenience libraries to check +- # that they are being used correctly in the link pass. +- test -z "$libdir" && \ +- func_append dlpreconveniencelibs " $dir/$old_library" +- fi +- ;; +- * ) +- # Prefer using a static library (so that no silly _DYNAMIC symbols +- # are required to link). +- if test -n "$old_library"; then +- func_append newdlprefiles " $dir/$old_library" +- # Keep a list of preopened convenience libraries to check +- # that they are being used correctly in the link pass. +- test -z "$libdir" && \ +- func_append dlpreconveniencelibs " $dir/$old_library" +- # Otherwise, use the dlname, so that lt_dlopen finds it. +- elif test -n "$dlname"; then +- func_append newdlprefiles " $dir/$dlname" +- else +- func_append newdlprefiles " $dir/$linklib" +- fi +- ;; +- esac ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ newdlprefiles="$newdlprefiles $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ newdlprefiles="$newdlprefiles $dir/$dlname" ++ else ++ newdlprefiles="$newdlprefiles $dir/$linklib" ++ fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then +@@ -6589,7 +5471,7 @@ func_mode_link () + + + if test "$linkmode" = prog && test "$pass" != link; then +- func_append newlib_search_path " $ladir" ++ newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no +@@ -6602,8 +5484,7 @@ func_mode_link () + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" +- func_resolve_sysroot "$func_stripname_result" +- func_append newlib_search_path " $func_resolve_sysroot_result" ++ newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + esac + # Need to link against all dependency_libs? +@@ -6614,12 +5495,12 @@ func_mode_link () + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi +- if $opt_preserve_dup_deps ; then ++ if $opt_duplicate_deps ; then + case "$tmp_libs " in +- *" $deplib "*) func_append specialdeplibs " $deplib" ;; ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi +- func_append tmp_libs " $deplib" ++ tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... +@@ -6634,7 +5515,7 @@ func_mode_link () + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; +- *) func_append temp_rpath "$absdir:" ;; ++ *) temp_rpath="$temp_rpath$absdir:" ;; + esac + fi + +@@ -6646,7 +5527,7 @@ func_mode_link () + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) func_append compile_rpath " $absdir" ;; ++ *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac +@@ -6655,7 +5536,7 @@ func_mode_link () + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) func_append finalize_rpath " $libdir" ;; ++ *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac +@@ -6680,12 +5561,12 @@ func_mode_link () + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded +- func_append notinst_deplibs " $lib" ++ notinst_deplibs="$notinst_deplibs $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then +- func_append notinst_deplibs " $lib" ++ notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + ;; +@@ -6702,7 +5583,7 @@ func_mode_link () + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then +- echo ++ $ECHO + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else +@@ -6720,7 +5601,7 @@ func_mode_link () + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) func_append compile_rpath " $absdir" ;; ++ *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac +@@ -6729,7 +5610,7 @@ func_mode_link () + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) func_append finalize_rpath " $libdir" ;; ++ *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac +@@ -6783,7 +5664,7 @@ func_mode_link () + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + +- if test "$linkmode" = prog || test "$opt_mode" != relink; then ++ if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= +@@ -6805,9 +5686,9 @@ func_mode_link () + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then +- echo +- echo "*** And there doesn't seem to be a static archive available" +- echo "*** The link will probably fail, sorry" ++ $ECHO ++ $ECHO "*** And there doesn't seem to be a static archive available" ++ $ECHO "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi +@@ -6839,7 +5720,7 @@ func_mode_link () + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- func_append add_dir " -L$inst_prefix_dir$libdir" ++ add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -6861,7 +5742,7 @@ func_mode_link () + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; +- *) func_append compile_shlibpath "$add_shlibpath:" ;; ++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then +@@ -6875,13 +5756,13 @@ func_mode_link () + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) func_append finalize_shlibpath "$libdir:" ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + +- if test "$linkmode" = prog || test "$opt_mode" = relink; then ++ if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= +@@ -6895,7 +5776,7 @@ func_mode_link () + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) func_append finalize_shlibpath "$libdir:" ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then +@@ -6912,7 +5793,7 @@ func_mode_link () + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- func_append add_dir " -L$inst_prefix_dir$libdir" ++ add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -6947,21 +5828,21 @@ func_mode_link () + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. +- echo ++ $ECHO + $ECHO "*** Warning: This system can not link to static lib archive $lib." +- echo "*** I have the capability to make that library automatically link in when" +- echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then +- echo "*** But as you try to build a module library, libtool will still create " +- echo "*** a static module, that should work as long as the dlopening application" +- echo "*** is linked with the -dlopen flag to resolve symbols at runtime." ++ $ECHO "*** But as you try to build a module library, libtool will still create " ++ $ECHO "*** a static module, that should work as long as the dlopening application" ++ $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then +- echo +- echo "*** However, this would only work if libtool was able to extract symbol" +- echo "*** lists from a program, using \`nm' or equivalent, but libtool could" +- echo "*** not find such a program. So, this module is probably useless." +- echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ $ECHO ++ $ECHO "*** However, this would only work if libtool was able to extract symbol" ++ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ $ECHO "*** not find such a program. So, this module is probably useless." ++ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module +@@ -6989,33 +5870,27 @@ func_mode_link () + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; +- *) func_append xrpath " $temp_xrpath";; ++ *) xrpath="$xrpath $temp_xrpath";; + esac;; +- *) func_append temp_deplibs " $libdir";; ++ *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + +- func_append newlib_search_path " $absdir" ++ newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" +- case $deplib in +- -L*) func_stripname '-L' '' "$deplib" +- func_resolve_sysroot "$func_stripname_result";; +- *) func_resolve_sysroot "$deplib" ;; +- esac +- if $opt_preserve_dup_deps ; then ++ if $opt_duplicate_deps ; then + case "$tmp_libs " in +- *" $func_resolve_sysroot_result "*) +- func_append specialdeplibs " $func_resolve_sysroot_result" ;; ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi +- func_append tmp_libs " $func_resolve_sysroot_result" ++ tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then +@@ -7025,10 +5900,8 @@ func_mode_link () + case $deplib in + -L*) path="$deplib" ;; + *.la) +- func_resolve_sysroot "$deplib" +- deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." +- dir=$func_dirname_result ++ dir="$func_dirname_result" + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; +@@ -7055,8 +5928,8 @@ func_mode_link () + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi +- func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" +- func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" ++ compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" ++ linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi +@@ -7089,7 +5962,7 @@ func_mode_link () + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else +- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" +@@ -7106,7 +5979,7 @@ func_mode_link () + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; +- *) func_append lib_search_path " $dir" ;; ++ *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= +@@ -7164,10 +6037,10 @@ func_mode_link () + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; +- *) func_append tmp_libs " $deplib" ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; +- *) func_append tmp_libs " $deplib" ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" +@@ -7183,7 +6056,7 @@ func_mode_link () + ;; + esac + if test -n "$i" ; then +- func_append tmp_libs " $i" ++ tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs +@@ -7224,7 +6097,7 @@ func_mode_link () + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" +- func_append objs "$old_deplibs" ++ objs="$objs$old_deplibs" + ;; + + lib) +@@ -7257,10 +6130,10 @@ func_mode_link () + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else +- echo ++ $ECHO + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" +- func_append libobjs " $objs" ++ libobjs="$libobjs $objs" + fi + fi + +@@ -7325,7 +6198,7 @@ func_mode_link () + age="$number_minor" + revision="$number_revision" + ;; +- freebsd-aout|freebsd-elf|qnx|sunos) ++ freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" +@@ -7461,7 +6334,7 @@ func_mode_link () + done + + # Make executables depend on our current version. +- func_append verstring ":${current}.0" ++ verstring="$verstring:${current}.0" + ;; + + qnx) +@@ -7529,10 +6402,10 @@ func_mode_link () + fi + + func_generate_dlsyms "$libname" "$libname" "yes" +- func_append libobjs " $symfileobj" ++ libobjs="$libobjs $symfileobj" + test "X$libobjs" = "X " && libobjs= + +- if test "$opt_mode" != relink; then ++ if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= +@@ -7548,7 +6421,7 @@ func_mode_link () + continue + fi + fi +- func_append removelist " $p" ++ removelist="$removelist $p" + ;; + *) ;; + esac +@@ -7559,28 +6432,27 @@ func_mode_link () + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then +- func_append oldlibs " $output_objdir/$libname.$libext" ++ oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. +- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` ++ oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do +- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` +- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` +- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` ++ # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` ++ # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` ++ # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do +- func_replace_sysroot "$libdir" +- func_append temp_xrpath " -R$func_replace_sysroot_result" ++ temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) func_append finalize_rpath " $libdir" ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then +@@ -7594,7 +6466,7 @@ func_mode_link () + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; +- *) func_append dlfiles " $lib" ;; ++ *) dlfiles="$dlfiles $lib" ;; + esac + done + +@@ -7604,19 +6476,19 @@ func_mode_link () + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; +- *) func_append dlprefiles " $lib" ;; ++ *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework +- func_append deplibs " System.ltframework" ++ deplibs="$deplibs System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. +@@ -7633,7 +6505,7 @@ func_mode_link () + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then +- func_append deplibs " -lc" ++ deplibs="$deplibs -lc" + fi + ;; + esac +@@ -7682,7 +6554,7 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- func_append newdeplibs " $i" ++ newdeplibs="$newdeplibs $i" + i="" + ;; + esac +@@ -7693,21 +6565,21 @@ EOF + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- func_append newdeplibs " $i" ++ newdeplibs="$newdeplibs $i" + else + droppeddeps=yes +- echo ++ $ECHO + $ECHO "*** Warning: dynamic linker does not accept needed library $i." +- echo "*** I have the capability to make that library automatically link in when" +- echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which I believe you do not have" +- echo "*** because a test_compile did reveal that the linker did not use it for" +- echo "*** its dynamic dependency list that programs get resolved with at runtime." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which I believe you do not have" ++ $ECHO "*** because a test_compile did reveal that the linker did not use it for" ++ $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + fi + fi + ;; + *) +- func_append newdeplibs " $i" ++ newdeplibs="$newdeplibs $i" + ;; + esac + done +@@ -7725,7 +6597,7 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- func_append newdeplibs " $i" ++ newdeplibs="$newdeplibs $i" + i="" + ;; + esac +@@ -7736,29 +6608,29 @@ EOF + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- func_append newdeplibs " $i" ++ newdeplibs="$newdeplibs $i" + else + droppeddeps=yes +- echo ++ $ECHO + $ECHO "*** Warning: dynamic linker does not accept needed library $i." +- echo "*** I have the capability to make that library automatically link in when" +- echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have" +- echo "*** because a test_compile did reveal that the linker did not use this one" +- echo "*** as a dynamic dependency that programs can get resolved with at runtime." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have" ++ $ECHO "*** because a test_compile did reveal that the linker did not use this one" ++ $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + fi + else + droppeddeps=yes +- echo ++ $ECHO + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" +- echo "*** make it link in! You will probably need to install it or some" +- echo "*** library that it depends on before this library will be fully" +- echo "*** functional. Installing it before continuing would be even better." ++ $ECHO "*** make it link in! You will probably need to install it or some" ++ $ECHO "*** library that it depends on before this library will be fully" ++ $ECHO "*** functional. Installing it before continuing would be even better." + fi + ;; + *) +- func_append newdeplibs " $i" ++ newdeplibs="$newdeplibs $i" + ;; + esac + done +@@ -7775,27 +6647,15 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- func_append newdeplibs " $a_deplib" ++ newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` +- if test -n "$file_magic_glob"; then +- libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` +- else +- libnameglob=$libname +- fi +- test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do +- if test "$want_nocaseglob" = yes; then +- shopt -s nocaseglob +- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` +- $nocaseglob +- else +- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` +- fi ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | +@@ -7812,13 +6672,13 @@ EOF + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; +- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; ++ *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then +- func_append newdeplibs " $a_deplib" ++ newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi +@@ -7827,12 +6687,12 @@ EOF + fi + if test -n "$a_deplib" ; then + droppeddeps=yes +- echo ++ $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." +- echo "*** I have the capability to make that library automatically link in when" +- echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have" +- echo "*** because I did check the linker path looking for a file starting" ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have" ++ $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else +@@ -7843,7 +6703,7 @@ EOF + ;; + *) + # Add a -L argument. +- func_append newdeplibs " $a_deplib" ++ newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. +@@ -7859,7 +6719,7 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- func_append newdeplibs " $a_deplib" ++ newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac +@@ -7870,9 +6730,9 @@ EOF + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test +- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ ++ if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then +- func_append newdeplibs " $a_deplib" ++ newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi +@@ -7881,12 +6741,12 @@ EOF + fi + if test -n "$a_deplib" ; then + droppeddeps=yes +- echo ++ $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." +- echo "*** I have the capability to make that library automatically link in when" +- echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have" +- echo "*** because I did check the linker path looking for a file starting" ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have" ++ $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else +@@ -7897,32 +6757,32 @@ EOF + ;; + *) + # Add a -L argument. +- func_append newdeplibs " $a_deplib" ++ newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" +- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` ++ tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ ++ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' +- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` ++ tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + done + fi +- case $tmp_deplibs in +- *[!\ \ ]*) +- echo ++ if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | ++ $GREP . >/dev/null; then ++ $ECHO + if test "X$deplibs_check_method" = "Xnone"; then +- echo "*** Warning: inter-library dependencies are not supported in this platform." ++ $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + else +- echo "*** Warning: inter-library dependencies are not known to be supported." ++ $ECHO "*** Warning: inter-library dependencies are not known to be supported." + fi +- echo "*** All declared inter-library dependencies are being dropped." ++ $ECHO "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes +- ;; +- esac ++ fi + ;; + esac + versuffix=$versuffix_save +@@ -7934,23 +6794,23 @@ EOF + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework +- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ++ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then +- echo +- echo "*** Warning: libtool could not satisfy all declared inter-library" ++ $ECHO ++ $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" +- echo "*** a static module, that should work as long as the dlopening" +- echo "*** application is linked with the -dlopen flag." ++ $ECHO "*** a static module, that should work as long as the dlopening" ++ $ECHO "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then +- echo +- echo "*** However, this would only work if libtool was able to extract symbol" +- echo "*** lists from a program, using \`nm' or equivalent, but libtool could" +- echo "*** not find such a program. So, this module is probably useless." +- echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ $ECHO ++ $ECHO "*** However, this would only work if libtool was able to extract symbol" ++ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ $ECHO "*** not find such a program. So, this module is probably useless." ++ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" +@@ -7960,16 +6820,16 @@ EOF + build_libtool_libs=no + fi + else +- echo "*** The inter-library dependencies that have been dropped here will be" +- echo "*** automatically added whenever a program is linked with this library" +- echo "*** or is declared to -dlopen it." ++ $ECHO "*** The inter-library dependencies that have been dropped here will be" ++ $ECHO "*** automatically added whenever a program is linked with this library" ++ $ECHO "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then +- echo +- echo "*** Since this library must not contain undefined symbols," +- echo "*** because either the platform does not support them or" +- echo "*** it was explicitly requested with -no-undefined," +- echo "*** libtool will only create a static version of it." ++ $ECHO ++ $ECHO "*** Since this library must not contain undefined symbols," ++ $ECHO "*** because either the platform does not support them or" ++ $ECHO "*** it was explicitly requested with -no-undefined," ++ $ECHO "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module +@@ -7986,9 +6846,9 @@ EOF + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) +- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` +- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` +- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + +@@ -8001,7 +6861,7 @@ EOF + *) + case " $deplibs " in + *" -L$path/$objdir "*) +- func_append new_libs " -L$path/$objdir" ;; ++ new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac +@@ -8011,10 +6871,10 @@ EOF + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) func_append new_libs " $deplib" ;; ++ *) new_libs="$new_libs $deplib" ;; + esac + ;; +- *) func_append new_libs " $deplib" ;; ++ *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" +@@ -8031,12 +6891,10 @@ EOF + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" +- test "$opt_mode" != relink && rpath="$compile_rpath$rpath" ++ test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then +- func_replace_sysroot "$libdir" +- libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else +@@ -8045,18 +6903,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- func_append dep_rpath " $flag" ++ dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) func_apped perm_rpath " $libdir" ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done +@@ -8074,7 +6932,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- func_append rpath "$dir:" ++ rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi +@@ -8082,7 +6940,7 @@ EOF + fi + + shlibpath="$finalize_shlibpath" +- test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi +@@ -8108,18 +6966,18 @@ EOF + linknames= + for link + do +- func_append linknames " $link" ++ linknames="$linknames $link" + done + + # Use standard objects if they are pic +- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" +- func_append delfiles " $export_symbols" ++ delfiles="$delfiles $export_symbols" + fi + + orig_export_symbols= +@@ -8150,45 +7008,13 @@ EOF + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' +- for cmd1 in $cmds; do ++ for cmd in $cmds; do + IFS="$save_ifs" +- # Take the normal branch if the nm_file_list_spec branch +- # doesn't work or if tool conversion is not needed. +- case $nm_file_list_spec~$to_tool_file_cmd in +- *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) +- try_normal_branch=yes +- eval cmd=\"$cmd1\" +- func_len " $cmd" +- len=$func_len_result +- ;; +- *) +- try_normal_branch=no +- ;; +- esac +- if test "$try_normal_branch" = yes \ +- && { test "$len" -lt "$max_cmd_len" \ +- || test "$max_cmd_len" -le -1; } +- then +- func_show_eval "$cmd" 'exit $?' +- skipped_export=false +- elif test -n "$nm_file_list_spec"; then +- func_basename "$output" +- output_la=$func_basename_result +- save_libobjs=$libobjs +- save_output=$output +- output=${output_objdir}/${output_la}.nm +- func_to_tool_file "$output" +- libobjs=$nm_file_list_spec$func_to_tool_file_result +- func_append delfiles " $output" +- func_verbose "creating $NM input file list: $output" +- for obj in $save_libobjs; do +- func_to_tool_file "$obj" +- $ECHO "$func_to_tool_file_result" +- done > "$output" +- eval cmd=\"$cmd1\" ++ eval cmd=\"$cmd\" ++ func_len " $cmd" ++ len=$func_len_result ++ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + func_show_eval "$cmd" 'exit $?' +- output=$save_output +- libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. +@@ -8210,7 +7036,7 @@ EOF + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" +- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' ++ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then +@@ -8222,7 +7048,7 @@ EOF + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter +- func_append delfiles " $export_symbols $output_objdir/$libname.filter" ++ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi +@@ -8232,7 +7058,7 @@ EOF + case " $convenience " in + *" $test_deplib "*) ;; + *) +- func_append tmp_deplibs " $test_deplib" ++ tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done +@@ -8252,21 +7078,21 @@ EOF + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" +- func_append generated " $gentop" ++ generated="$generated $gentop" + + func_extract_archives $gentop $convenience +- func_append libobjs " $func_extract_archives_result" ++ libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" +- func_append linker_flags " $flag" ++ linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking +- if test "$opt_mode" = relink; then ++ if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + +@@ -8311,8 +7137,7 @@ EOF + save_libobjs=$libobjs + fi + save_output=$output +- func_basename "$output" +- output_la=$func_basename_result ++ output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. +@@ -8325,16 +7150,13 @@ EOF + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" +- echo 'INPUT (' > $output ++ $ECHO 'INPUT (' > $output + for obj in $save_libobjs + do +- func_to_tool_file "$obj" +- $ECHO "$func_to_tool_file_result" >> $output ++ $ECHO "$obj" >> $output + done +- echo ')' >> $output +- func_append delfiles " $output" +- func_to_tool_file "$output" +- output=$func_to_tool_file_result ++ $ECHO ')' >> $output ++ delfiles="$delfiles $output" + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" +@@ -8348,12 +7170,10 @@ EOF + fi + for obj + do +- func_to_tool_file "$obj" +- $ECHO "$func_to_tool_file_result" >> $output ++ $ECHO "$obj" >> $output + done +- func_append delfiles " $output" +- func_to_tool_file "$output" +- output=$firstobj\"$file_list_spec$func_to_tool_file_result\" ++ delfiles="$delfiles $output" ++ output=$firstobj\"$file_list_spec$output\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." +@@ -8377,19 +7197,17 @@ EOF + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. +- reload_objs=$objlist +- eval concat_cmds=\"$reload_cmds\" ++ eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. +- reload_objs="$objlist $last_robj" +- eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" ++ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext +- objlist=" $obj" ++ objlist=$obj + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result +@@ -8399,12 +7217,11 @@ EOF + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ +- reload_objs="$objlist $last_robj" +- eval concat_cmds=\"\${concat_cmds}$reload_cmds\" ++ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi +- func_append delfiles " $output" ++ delfiles="$delfiles $output" + + else + output= +@@ -8438,7 +7255,7 @@ EOF + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$opt_mode" = relink; then ++ if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -8459,7 +7276,7 @@ EOF + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" +- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' ++ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then +@@ -8471,7 +7288,7 @@ EOF + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter +- func_append delfiles " $export_symbols $output_objdir/$libname.filter" ++ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi +@@ -8512,10 +7329,10 @@ EOF + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- func_append generated " $gentop" ++ generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles +- func_append libobjs " $func_extract_archives_result" ++ libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + +@@ -8531,7 +7348,7 @@ EOF + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$opt_mode" = relink; then ++ if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -8543,7 +7360,7 @@ EOF + IFS="$save_ifs" + + # Restore the uninstalled library and exit +- if test "$opt_mode" = relink; then ++ if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then +@@ -8624,21 +7441,18 @@ EOF + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" +- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` ++ reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else + gentop="$output_objdir/${obj}x" +- func_append generated " $gentop" ++ generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + +- # If we're not building shared, we need to use non_pic_objs +- test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" +- + # Create the old-style object. +- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test ++ reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' +@@ -8698,8 +7512,8 @@ EOF + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework +- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` +- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ++ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; + esac + +@@ -8710,14 +7524,14 @@ EOF + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) +- func_append compile_command " ${wl}-bind_at_load" +- func_append finalize_command " ${wl}-bind_at_load" ++ compile_command="$compile_command ${wl}-bind_at_load" ++ finalize_command="$finalize_command ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" +- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` +- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + +@@ -8731,7 +7545,7 @@ EOF + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) +- func_append new_libs " -L$path/$objdir" ;; ++ new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac +@@ -8741,17 +7555,17 @@ EOF + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) func_append new_libs " $deplib" ;; ++ *) new_libs="$new_libs $deplib" ;; + esac + ;; +- *) func_append new_libs " $deplib" ;; ++ *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + +- func_append compile_command " $compile_deplibs" +- func_append finalize_command " $finalize_deplibs" ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. +@@ -8759,7 +7573,7 @@ EOF + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) func_append finalize_rpath " $libdir" ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi +@@ -8778,18 +7592,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- func_append rpath " $flag" ++ rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) func_append perm_rpath " $libdir" ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in +@@ -8798,12 +7612,12 @@ EOF + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; +- *) func_append dllsearchpath ":$libdir";; ++ *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) func_append dllsearchpath ":$testbindir";; ++ *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac +@@ -8829,18 +7643,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- func_append rpath " $flag" ++ rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; +- *) func_append finalize_perm_rpath " $libdir" ;; ++ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done +@@ -8854,8 +7668,8 @@ EOF + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. +- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` +- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" +@@ -8867,15 +7681,15 @@ EOF + + wrappers_required=yes + case $host in +- *cegcc* | *mingw32ce*) +- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. +- wrappers_required=no +- ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; ++ *cegcc) ++ # Disable wrappers for cegcc, we are cross compiling anyway. ++ wrappers_required=no ++ ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no +@@ -8884,19 +7698,13 @@ EOF + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. +- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + +- if test -n "$postlink_cmds"; then +- func_to_tool_file "$output" +- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` +- func_execute_cmds "$postlink_cmds" 'exit $?' +- fi +- + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' +@@ -8919,7 +7727,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- func_append rpath "$dir:" ++ rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -8927,7 +7735,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do +- func_append rpath "$dir:" ++ rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -8937,18 +7745,11 @@ EOF + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. +- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` ++ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' +- +- if test -n "$postlink_cmds"; then +- func_to_tool_file "$output" +- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` +- func_execute_cmds "$postlink_cmds" 'exit $?' +- fi +- + exit $EXIT_SUCCESS + fi + +@@ -8963,7 +7764,7 @@ EOF + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then +- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ++ relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= +@@ -8975,19 +7776,13 @@ EOF + fi + + # Replace the output file specification. +- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + +- if test -n "$postlink_cmds"; then +- func_to_tool_file "$output_objdir/$outputname" +- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` +- func_execute_cmds "$postlink_cmds" 'exit $?' +- fi +- + # Now create the wrapper script. + func_verbose "creating $output" + +@@ -9005,7 +7800,18 @@ EOF + fi + done + relink_command="(cd `pwd`; $relink_command)" +- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Quote $ECHO for shipping. ++ if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then ++ case $progpath in ++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; ++ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; ++ esac ++ qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` ++ else ++ qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. +@@ -9085,7 +7891,7 @@ EOF + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then +- func_append oldobjs " $symfileobj" ++ oldobjs="$oldobjs $symfileobj" + fi + fi + addlibs="$old_convenience" +@@ -9093,10 +7899,10 @@ EOF + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" +- func_append generated " $gentop" ++ generated="$generated $gentop" + + func_extract_archives $gentop $addlibs +- func_append oldobjs " $func_extract_archives_result" ++ oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. +@@ -9107,10 +7913,10 @@ EOF + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- func_append generated " $gentop" ++ generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles +- func_append oldobjs " $func_extract_archives_result" ++ oldobjs="$oldobjs $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have +@@ -9126,9 +7932,9 @@ EOF + done | sort | sort -uc >/dev/null 2>&1); then + : + else +- echo "copying selected object files to avoid basename conflicts..." ++ $ECHO "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" +- func_append generated " $gentop" ++ generated="$generated $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= +@@ -9152,9 +7958,9 @@ EOF + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" +- func_append oldobjs " $gentop/$newobj" ++ oldobjs="$oldobjs $gentop/$newobj" + ;; +- *) func_append oldobjs " $obj" ;; ++ *) oldobjs="$oldobjs $obj" ;; + esac + done + fi +@@ -9164,16 +7970,6 @@ EOF + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds +- elif test -n "$archiver_list_spec"; then +- func_verbose "using command file archive linking..." +- for obj in $oldobjs +- do +- func_to_tool_file "$obj" +- $ECHO "$func_to_tool_file_result" +- done > $output_objdir/$libname.libcmd +- func_to_tool_file "$output_objdir/$libname.libcmd" +- oldobjs=" $archiver_list_spec$func_to_tool_file_result" +- cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." +@@ -9247,7 +8043,7 @@ EOF + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" +- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi +@@ -9270,19 +8066,9 @@ EOF + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" +- func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" +- ;; +- -L*) +- func_stripname -L '' "$deplib" +- func_replace_sysroot "$func_stripname_result" +- func_append newdependency_libs " -L$func_replace_sysroot_result" +- ;; +- -R*) +- func_stripname -R '' "$deplib" +- func_replace_sysroot "$func_stripname_result" +- func_append newdependency_libs " -R$func_replace_sysroot_result" ++ newdependency_libs="$newdependency_libs $libdir/$name" + ;; +- *) func_append newdependency_libs " $deplib" ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" +@@ -9296,9 +8082,9 @@ EOF + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ++ newdlfiles="$newdlfiles $libdir/$name" + ;; +- *) func_append newdlfiles " $lib" ;; ++ *) newdlfiles="$newdlfiles $lib" ;; + esac + done + dlfiles="$newdlfiles" +@@ -9315,7 +8101,7 @@ EOF + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ++ newdlprefiles="$newdlprefiles $libdir/$name" + ;; + esac + done +@@ -9327,7 +8113,7 @@ EOF + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- func_append newdlfiles " $abs" ++ newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= +@@ -9336,33 +8122,15 @@ EOF + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- func_append newdlprefiles " $abs" ++ newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin +- # In fact, it would be nice if we could use this code for all target +- # systems that can't hard-code library paths into their executables +- # and that have no shared library path variable independent of PATH, +- # but it turns out we can't easily determine that from inspecting +- # libtool variables, so we have to hard-code the OSs to which it +- # applies here; at the moment, that means platforms that use the PE +- # object format with DLL files. See the long comment at the top of +- # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in +- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) +- # If a -bindir argument was supplied, place the dll there. +- if test "x$bindir" != x ; +- then +- func_relative_path "$install_libdir" "$bindir" +- tdlname=$func_relative_path_result$dlname +- else +- # Otherwise fall back on heuristic. +- tdlname=../bin/$dlname +- fi +- ;; ++ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $ECHO > $output "\ + # $outputname - a libtool library file +@@ -9421,7 +8189,7 @@ relink_command=\"$relink_command\"" + exit $EXIT_SUCCESS + } + +-{ test "$opt_mode" = link || test "$opt_mode" = relink; } && ++{ test "$mode" = link || test "$mode" = relink; } && + func_mode_link ${1+"$@"} + + +@@ -9441,9 +8209,9 @@ func_mode_uninstall () + for arg + do + case $arg in +- -f) func_append RM " $arg"; rmforce=yes ;; +- -*) func_append RM " $arg" ;; +- *) func_append files " $arg" ;; ++ -f) RM="$RM $arg"; rmforce=yes ;; ++ -*) RM="$RM $arg" ;; ++ *) files="$files $arg" ;; + esac + done + +@@ -9452,23 +8220,24 @@ func_mode_uninstall () + + rmdirs= + ++ origobjdir="$objdir" + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then +- odir="$objdir" ++ objdir="$origobjdir" + else +- odir="$dir/$objdir" ++ objdir="$dir/$origobjdir" + fi + func_basename "$file" + name="$func_basename_result" +- test "$opt_mode" = uninstall && odir="$dir" ++ test "$mode" = uninstall && objdir="$dir" + +- # Remember odir for removal later, being careful to avoid duplicates +- if test "$opt_mode" = clean; then ++ # Remember objdir for removal later, being careful to avoid duplicates ++ if test "$mode" = clean; then + case " $rmdirs " in +- *" $odir "*) ;; +- *) func_append rmdirs " $odir" ;; ++ *" $objdir "*) ;; ++ *) rmdirs="$rmdirs $objdir" ;; + esac + fi + +@@ -9494,17 +8263,18 @@ func_mode_uninstall () + + # Delete the libtool libraries and symlinks. + for n in $library_names; do +- func_append rmfiles " $odir/$n" ++ rmfiles="$rmfiles $objdir/$n" + done +- test -n "$old_library" && func_append rmfiles " $odir/$old_library" ++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + +- case "$opt_mode" in ++ case "$mode" in + clean) +- case " $library_names " in ++ case " $library_names " in ++ # " " in the beginning catches empty $dlname + *" $dlname "*) ;; +- *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; ++ *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac +- test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ++ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then +@@ -9532,19 +8302,19 @@ func_mode_uninstall () + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then +- func_append rmfiles " $dir/$pic_object" ++ rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then +- func_append rmfiles " $dir/$non_pic_object" ++ rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) +- if test "$opt_mode" = clean ; then ++ if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) +@@ -9554,7 +8324,7 @@ func_mode_uninstall () + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe +- func_append rmfiles " $file" ++ rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. +@@ -9563,7 +8333,7 @@ func_mode_uninstall () + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result +- func_append rmfiles " $func_ltwrapper_scriptname_result" ++ rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename +@@ -9571,12 +8341,12 @@ func_mode_uninstall () + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles +- func_append rmfiles " $odir/$name $odir/${name}S.${objext}" ++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then +- func_append rmfiles " $odir/lt-$name" ++ rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then +- func_append rmfiles " $odir/lt-${noexename}.c" ++ rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi +@@ -9584,6 +8354,7 @@ func_mode_uninstall () + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done ++ objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do +@@ -9595,16 +8366,16 @@ func_mode_uninstall () + exit $exit_status + } + +-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && ++{ test "$mode" = uninstall || test "$mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +-test -z "$opt_mode" && { ++test -z "$mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" + } + + test -z "$exec_cmd" && \ +- func_fatal_help "invalid operation mode \`$opt_mode'" ++ func_fatal_help "invalid operation mode \`$mode'" + + if test -n "$exec_cmd"; then + eval exec "$exec_cmd" +diff --git a/src/actions.c b/src/actions.c +index 600a70e..723b7a5 100644 +--- a/src/actions.c ++++ b/src/actions.c +@@ -28,7 +28,8 @@ + #include <gtk/gtk.h> + + /* Xfce includes */ +-#include <libxfcegui4/libxfcegui4.h> ++//#include <libxfcegui4/libxfcegui4.h> ++#include <libxfce4ui/libxfce4ui.h> + + /* Package includes */ + #include <middlelayer.h> +diff --git a/src/callbacks.c b/src/callbacks.c +index fa87b39..8681f13 100644 +--- a/src/callbacks.c ++++ b/src/callbacks.c +@@ -27,7 +27,8 @@ + #include <stdlib.h> + + /* Xfce includes */ +-#include <libxfcegui4/libxfcegui4.h> ++//#include <libxfcegui4/libxfcegui4.h> ++#include <libxfce4ui/libxfce4ui.h> + + /* Package includes */ + #include <sensors-interface.h> +diff --git a/src/interface.c b/src/interface.c +index a81bef7..0799848 100644 +--- a/src/interface.c ++++ b/src/interface.c +@@ -24,7 +24,8 @@ + #endif + + /* Xfce includes */ +-#include <libxfcegui4/libxfcegui4.h> ++//#include <libxfcegui4/libxfcegui4.h> ++#include <libxfce4ui/libxfce4ui.h> + + /* Package includes */ + #include <cpu.h> +-- +cgit +From d3e83a4991876bcfadf90e8c781f0bb82c30230d Mon Sep 17 00:00:00 2001 +From: Fabian Nowak <nowak@kit.edu> +Date: Tue, 10 May 2011 09:24:31 +0000 +Subject: try replacing #elseif with #elif because the former does no longer seem to be supported on some compilers + +--- +diff --git a/lib/hddtemp.c b/lib/hddtemp.c +index ba70ab4..052f943 100644 +--- a/lib/hddtemp.c ++++ b/lib/hddtemp.c +@@ -117,7 +117,7 @@ void quick_message_notify (gchar *message) + + #ifdef HAVE_LIBNOTIFY7 + nn = notify_notification_new (summary, body, icon); +-#elseif HAVE_LIBNOTIFY4 ++#elif HAVE_LIBNOTIFY4 + nn = notify_notification_new (summary, body, icon, NULL); + #endif + /* FIXME: Use channels or propagate private object or use static global variable */ +diff --git a/lib/sensors-interface.c b/lib/sensors-interface.c +index 1485e34..3ae927c 100644 +--- a/lib/sensors-interface.c ++++ b/lib/sensors-interface.c +@@ -108,7 +108,7 @@ fill_gtkTreeStore (GtkTreeStore *model, t_chip *chip, t_tempscale scale, t_senso + + #ifdef HAVE_LIBNOTIFY7 + nn = notify_notification_new (summary, body, icon); +-#elseif HAVE_LIBNOTIFY4 ++#elif HAVE_LIBNOTIFY4 + nn = notify_notification_new (summary, body, icon, NULL); + #endif + notify_notification_show(nn, &error); +-- +cgit +From eecce36b535fb189bc2a7e4da19a6be3221235de Mon Sep 17 00:00:00 2001 +From: Fabian <timystery@arcor.de> +Date: Mon, 09 May 2011 22:05:45 +0000 +Subject: remove libxfcegui4 from sensors-interface-common + +--- +diff --git a/lib/sensors-interface.c b/lib/sensors-interface.c +index b0e40c1..f501a54 100644 +--- a/lib/sensors-interface.c ++++ b/lib/sensors-interface.c +@@ -34,7 +34,8 @@ + #include <gtk/gtk.h> + + /* Xfce includes */ +-#include <libxfcegui4/libxfcegui4.h> ++//#include <libxfcegui4/libxfcegui4.h> ++#include <libxfce4ui/libxfce4ui.h> + + /* Package includes */ + #include <sensors-interface-common.h> +-- +cgit +From e8037664c3ea24df9bb4c4ef03707e64ab6cfa48 Mon Sep 17 00:00:00 2001 +From: Fabian <timystery@arcor.de> +Date: Wed, 11 May 2011 21:11:24 +0000 +Subject: use old debian ltmain.sh again + +--- +diff --git a/ltmain.sh b/ltmain.sh +index 7ed280b..6f650ae 100755 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -1,9 +1,9 @@ +-# Generated from ltmain.m4sh. + +-# ltmain.sh (GNU libtool) 2.2.6b ++# libtool (GNU libtool) 2.4 + # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + +-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, ++# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + # This is free software; see the source for copying conditions. There is NO + # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +@@ -32,50 +32,56 @@ + # + # Provide generalized library-building support services. + # +-# --config show all configuration variables +-# --debug enable verbose shell tracing +-# -n, --dry-run display commands without modifying any files +-# --features display basic configuration information and exit +-# --mode=MODE use operation mode MODE +-# --preserve-dup-deps don't remove duplicate dependency libraries +-# --quiet, --silent don't print informational messages +-# --tag=TAG use configuration variables from tag TAG +-# -v, --verbose print informational messages (default) +-# --version print version information +-# -h, --help print short or long help message ++# --config show all configuration variables ++# --debug enable verbose shell tracing ++# -n, --dry-run display commands without modifying any files ++# --features display basic configuration information and exit ++# --mode=MODE use operation mode MODE ++# --preserve-dup-deps don't remove duplicate dependency libraries ++# --quiet, --silent don't print informational messages ++# --no-quiet, --no-silent ++# print informational messages (default) ++# --tag=TAG use configuration variables from tag TAG ++# -v, --verbose print more informational messages than default ++# --no-verbose don't print the extra informational messages ++# --version print version information ++# -h, --help, --help-all print short, long, or detailed help message + # + # MODE must be one of the following: + # +-# clean remove files from the build directory +-# compile compile a source file into a libtool object +-# execute automatically set library path, then run a program +-# finish complete the installation of libtool libraries +-# install install libraries or executables +-# link create a library or an executable +-# uninstall remove libraries from an installed directory ++# clean remove files from the build directory ++# compile compile a source file into a libtool object ++# execute automatically set library path, then run a program ++# finish complete the installation of libtool libraries ++# install install libraries or executables ++# link create a library or an executable ++# uninstall remove libraries from an installed directory + # +-# MODE-ARGS vary depending on the MODE. ++# MODE-ARGS vary depending on the MODE. When passed as first option, ++# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. + # Try `$progname --help --mode=MODE' for a more detailed description of MODE. + # + # When reporting a bug, please describe a test case to reproduce it and + # include the following information: + # +-# host-triplet: $host +-# shell: $SHELL +-# compiler: $LTCC +-# compiler flags: $LTCFLAGS +-# linker: $LD (gnu? $with_gnu_ld) +-# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 +-# automake: $automake_version +-# autoconf: $autoconf_version ++# host-triplet: $host ++# shell: $SHELL ++# compiler: $LTCC ++# compiler flags: $LTCFLAGS ++# linker: $LD (gnu? $with_gnu_ld) ++# $progname: (GNU libtool) 2.4 Debian-2.4-2 ++# automake: $automake_version ++# autoconf: $autoconf_version + # + # Report bugs to <bug-libtool@gnu.org>. ++# GNU libtool home page: <http://www.gnu.org/software/libtool/>. ++# General help using GNU software: <http://www.gnu.org/gethelp/>. + +-PROGRAM=ltmain.sh ++PROGRAM=libtool + PACKAGE=libtool +-VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" ++VERSION="2.4 Debian-2.4-2" + TIMESTAMP="" +-package_revision=1.3017 ++package_revision=1.3293 + + # Be Bourne compatible + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +@@ -91,10 +97,15 @@ fi + BIN_SH=xpg4; export BIN_SH # for Tru64 + DUALCASE=1; export DUALCASE # for MKS sh + ++# A function that is used when there is no print builtin or printf. ++func_fallback_echo () ++{ ++ eval 'cat <<_LTECHO_EOF ++$1 ++_LTECHO_EOF' ++} ++ + # NLS nuisances: We save the old values to restore during execute mode. +-# Only set LANG and LC_ALL to C if already set. +-# These must not be set unconditionally because not all systems understand +-# e.g. LANG=C (notably SCO). + lt_user_locale= + lt_safe_locale= + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +@@ -107,15 +118,24 @@ do + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" + done ++LC_ALL=C ++LANGUAGE=C ++export LANGUAGE LC_ALL + + $lt_unset CDPATH + + ++# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh ++# is ksh but when the shell is invoked as "sh" and the current value of ++# the _XPG environment variable is not equal to 1 (one), the special ++# positional parameter $0, within a function call, is the name of the ++# function. ++progpath="$0" + + + + : ${CP="cp -f"} +-: ${ECHO="echo"} ++test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} + : ${EGREP="/bin/grep -E"} + : ${FGREP="/bin/grep -F"} + : ${GREP="/bin/grep"} +@@ -144,6 +164,27 @@ IFS=" $lt_nl" + dirname="s,/[^/]*$,," + basename="s,^.*/,," + ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++} # func_dirname may be replaced by extended shell implementation ++ ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result=`$ECHO "${1}" | $SED "$basename"` ++} # func_basename may be replaced by extended shell implementation ++ ++ + # func_dirname_and_basename file append nondir_replacement + # perform func_basename and func_dirname in a single function + # call: +@@ -158,33 +199,183 @@ basename="s,^.*/,," + # those functions but instead duplicate the functionality here. + func_dirname_and_basename () + { +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +- func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` ++} # func_dirname_and_basename may be replaced by extended shell implementation ++ ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# func_strip_suffix prefix name ++func_stripname () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ++ esac ++} # func_stripname may be replaced by extended shell implementation ++ ++ ++# These SED scripts presuppose an absolute path with a trailing slash. ++pathcar='s,^/\([^/]*\).*$,\1,' ++pathcdr='s,^/[^/]*,,' ++removedotparts=':dotsl ++ s@/\./@/@g ++ t dotsl ++ s,/\.$,/,' ++collapseslashes='s@/\{1,\}@/@g' ++finalslash='s,/*$,/,' ++ ++# func_normal_abspath PATH ++# Remove doubled-up and trailing slashes, "." path components, ++# and cancel out any ".." path components in PATH after making ++# it an absolute path. ++# value returned in "$func_normal_abspath_result" ++func_normal_abspath () ++{ ++ # Start from root dir and reassemble the path. ++ func_normal_abspath_result= ++ func_normal_abspath_tpath=$1 ++ func_normal_abspath_altnamespace= ++ case $func_normal_abspath_tpath in ++ "") ++ # Empty path, that just means $cwd. ++ func_stripname '' '/' "`pwd`" ++ func_normal_abspath_result=$func_stripname_result ++ return ++ ;; ++ # The next three entries are used to spot a run of precisely ++ # two leading slashes without using negated character classes; ++ # we take advantage of case's first-match behaviour. ++ ///*) ++ # Unusual form of absolute path, do nothing. ++ ;; ++ //*) ++ # Not necessarily an ordinary path; POSIX reserves leading '//' ++ # and for example Cygwin uses it to access remote file shares ++ # over CIFS/SMB, so we conserve a leading double slash if found. ++ func_normal_abspath_altnamespace=/ ++ ;; ++ /*) ++ # Absolute path, do nothing. ++ ;; ++ *) ++ # Relative path, prepend $cwd. ++ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ++ ;; ++ esac ++ # Cancel out all the simple stuff to save iterations. We also want ++ # the path to end with a slash for ease of parsing, so make sure ++ # there is one (and only one) here. ++ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ ++ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` ++ while :; do ++ # Processed it all yet? ++ if test "$func_normal_abspath_tpath" = / ; then ++ # If we ascended to the root using ".." the result may be empty now. ++ if test -z "$func_normal_abspath_result" ; then ++ func_normal_abspath_result=/ ++ fi ++ break ++ fi ++ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ ++ -e "$pathcar"` ++ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ ++ -e "$pathcdr"` ++ # Figure out what to do with it ++ case $func_normal_abspath_tcomponent in ++ "") ++ # Trailing empty path component, ignore it. ++ ;; ++ ..) ++ # Parent dir; strip last assembled component from result. ++ func_dirname "$func_normal_abspath_result" ++ func_normal_abspath_result=$func_dirname_result ++ ;; ++ *) ++ # Actual path component, append it. ++ func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ++ ;; ++ esac ++ done ++ # Restore leading double-slash if one was found on entry. ++ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result + } + +-# Generated shell functions inserted here. ++# func_relative_path SRCDIR DSTDIR ++# generates a relative path from SRCDIR to DSTDIR, with a trailing ++# slash if non-empty, suitable for immediately appending a filename ++# without needing to append a separator. ++# value returned in "$func_relative_path_result" ++func_relative_path () ++{ ++ func_relative_path_result= ++ func_normal_abspath "$1" ++ func_relative_path_tlibdir=$func_normal_abspath_result ++ func_normal_abspath "$2" ++ func_relative_path_tbindir=$func_normal_abspath_result ++ ++ # Ascend the tree starting from libdir ++ while :; do ++ # check if we have found a prefix of bindir ++ case $func_relative_path_tbindir in ++ $func_relative_path_tlibdir) ++ # found an exact match ++ func_relative_path_tcancelled= ++ break ++ ;; ++ $func_relative_path_tlibdir*) ++ # found a matching prefix ++ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" ++ func_relative_path_tcancelled=$func_stripname_result ++ if test -z "$func_relative_path_result"; then ++ func_relative_path_result=. ++ fi ++ break ++ ;; ++ *) ++ func_dirname $func_relative_path_tlibdir ++ func_relative_path_tlibdir=${func_dirname_result} ++ if test "x$func_relative_path_tlibdir" = x ; then ++ # Have to descend all the way to the root! ++ func_relative_path_result=../$func_relative_path_result ++ func_relative_path_tcancelled=$func_relative_path_tbindir ++ break ++ fi ++ func_relative_path_result=../$func_relative_path_result ++ ;; ++ esac ++ done + +-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +-# is ksh but when the shell is invoked as "sh" and the current value of +-# the _XPG environment variable is not equal to 1 (one), the special +-# positional parameter $0, within a function call, is the name of the +-# function. +-progpath="$0" ++ # Now calculate path; take care to avoid doubling-up slashes. ++ func_stripname '' '/' "$func_relative_path_result" ++ func_relative_path_result=$func_stripname_result ++ func_stripname '/' '/' "$func_relative_path_tcancelled" ++ if test "x$func_stripname_result" != x ; then ++ func_relative_path_result=${func_relative_path_result}/${func_stripname_result} ++ fi ++ ++ # Normalisation. If bindir is libdir, return empty string, ++ # else relative path ending with a slash; either way, target ++ # file name can be directly appended. ++ if test ! -z "$func_relative_path_result"; then ++ func_stripname './' '' "$func_relative_path_result/" ++ func_relative_path_result=$func_stripname_result ++ fi ++} + + # The name of this program: +-# In the unlikely event $progname began with a '-', it would play havoc with +-# func_echo (imagine progname=-n), so we prepend ./ in that case: + func_dirname_and_basename "$progpath" + progname=$func_basename_result +-case $progname in +- -*) progname=./$progname ;; +-esac + + # Make sure we have an absolute path for reexecution: + case $progpath in +@@ -215,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + # Same as above, but do not quote variable references. + double_quote_subst='s/\(["`\\]\)/\\\1/g' + ++# Sed substitution that turns a string into a regex matching for the ++# string literally. ++sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' ++ ++# Sed substitution that converts a w32 file name or path ++# which contains forward slashes, into one that contains ++# (escaped) backslashes. A very naive implementation. ++lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ + # Re-`\' parameter expansions in output of double_quote_subst that were + # `\'-ed in input to the same. If an odd number of `\' preceded a '$' + # in input to double_quote_subst, that '$' was protected from expansion. +@@ -243,7 +443,7 @@ opt_warning=: + # name if it has been set yet. + func_echo () + { +- $ECHO "$progname${mode+: }$mode: $*" ++ $ECHO "$progname: ${opt_mode+$opt_mode: }$*" + } + + # func_verbose arg... +@@ -258,18 +458,25 @@ func_verbose () + : + } + ++# func_echo_all arg... ++# Invoke $ECHO with all args, space-separated. ++func_echo_all () ++{ ++ $ECHO "$*" ++} ++ + # func_error arg... + # Echo program name prefixed message to standard error. + func_error () + { +- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 ++ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 + } + + # func_warning arg... + # Echo program name prefixed warning message to standard error. + func_warning () + { +- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 ++ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +@@ -326,9 +533,9 @@ func_mkdir_p () + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop +- my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` ++ my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done +- my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` ++ my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do +@@ -378,7 +585,7 @@ func_mktempdir () + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + +- $ECHO "X$my_tmpdir" | $Xsed ++ $ECHO "$my_tmpdir" + } + + +@@ -392,7 +599,7 @@ func_quote_for_eval () + { + case $1 in + *[\\\`\"\$]*) +- func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; ++ func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac +@@ -419,7 +626,7 @@ func_quote_for_expand () + { + case $1 in + *[\\\`\"]*) +- my_arg=`$ECHO "X$1" | $Xsed \ ++ my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; +@@ -488,15 +695,39 @@ func_show_eval_locale () + fi + } + +- +- ++# func_tr_sh ++# Turn $1 into a string suitable for a shell variable name. ++# Result is stored in $func_tr_sh_result. All characters ++# not in the set a-zA-Z0-9_ are replaced with '_'. Further, ++# if $1 begins with a digit, a '_' is prepended as well. ++func_tr_sh () ++{ ++ case $1 in ++ [0-9]* | *[!a-zA-Z0-9_]*) ++ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ++ ;; ++ * ) ++ func_tr_sh_result=$1 ++ ;; ++ esac ++} + + + # func_version + # Echo version message to standard output and exit. + func_version () + { +- $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { ++ $opt_debug ++ ++ $SED -n '/(C)/!b go ++ :more ++ /\./!{ ++ N ++ s/\n# / / ++ b more ++ } ++ :go ++ /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ +@@ -509,22 +740,28 @@ func_version () + # Echo short help message to standard output and exit. + func_usage () + { +- $SED -n '/^# Usage:/,/# -h/ { ++ $opt_debug ++ ++ $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" +- $ECHO ++ echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? + } + +-# func_help +-# Echo long help message to standard output and exit. ++# func_help [NOEXIT] ++# Echo long help message to standard output and exit, ++# unless 'noexit' is passed as argument. + func_help () + { ++ $opt_debug ++ + $SED -n '/^# Usage:/,/# Report bugs to/ { ++ :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* +@@ -537,8 +774,15 @@ func_help () + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p +- }' < "$progpath" +- exit $? ++ d ++ } ++ /^# .* home page:/b print ++ /^# General help using/b print ++ ' < "$progpath" ++ ret=$? ++ if test -z "$1"; then ++ exit $ret ++ fi + } + + # func_missing_arg argname +@@ -546,63 +790,106 @@ func_help () + # exit_cmd. + func_missing_arg () + { +- func_error "missing argument for $1" ++ $opt_debug ++ ++ func_error "missing argument for $1." + exit_cmd=exit + } + +-exit_cmd=: + ++# func_split_short_opt shortopt ++# Set func_split_short_opt_name and func_split_short_opt_arg shell ++# variables after splitting SHORTOPT after the 2nd character. ++func_split_short_opt () ++{ ++ my_sed_short_opt='1s/^\(..\).*$/\1/;q' ++ my_sed_short_rest='1s/^..\(.*\)$/\1/;q' ++ ++ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` ++ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` ++} # func_split_short_opt may be replaced by extended shell implementation + + ++# func_split_long_opt longopt ++# Set func_split_long_opt_name and func_split_long_opt_arg shell ++# variables after splitting LONGOPT at the `=' sign. ++func_split_long_opt () ++{ ++ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' ++ my_sed_long_arg='1s/^--[^=]*=//' ++ ++ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` ++ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` ++} # func_split_long_opt may be replaced by extended shell implementation ++ ++exit_cmd=: ++ + + +-# Check that we have a working $ECHO. +-if test "X$1" = X--no-reexec; then +- # Discard the --no-reexec flag, and continue. +- shift +-elif test "X$1" = X--fallback-echo; then +- # Avoid inline document here, it may be left over +- : +-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then +- # Yippee, $ECHO works! +- : +-else +- # Restart under the correct shell, and then maybe $ECHO will work. +- exec $SHELL "$progpath" --no-reexec ${1+"$@"} +-fi + +-if test "X$1" = X--fallback-echo; then +- # used as fallback echo +- shift +- cat <<EOF +-$* +-EOF +- exit $EXIT_SUCCESS +-fi + + magic="%%%MAGIC variable%%%" + magic_exe="%%%MAGIC EXE variable%%%" + + # Global variables. +-# $mode is unset + nonopt= +-execute_dlfiles= + preserve_args= + lo2o="s/\\.lo\$/.${objext}/" + o2lo="s/\\.${objext}\$/.lo/" + extracted_archives= + extracted_serial=0 + +-opt_dry_run=false +-opt_duplicate_deps=false +-opt_silent=false +-opt_debug=: +- + # If this variable is set in any of the actions, the command in it + # will be execed at the end. This prevents here-documents from being + # left over by shells. + exec_cmd= + ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "${1}=\$${1}\${2}" ++} # func_append may be replaced by extended shell implementation ++ ++# func_append_quoted var value ++# Quote VALUE and append to the end of shell variable VAR, separated ++# by a space. ++func_append_quoted () ++{ ++ func_quote_for_eval "${2}" ++ eval "${1}=\$${1}\\ \$func_quote_for_eval_result" ++} # func_append_quoted may be replaced by extended shell implementation ++ ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=`expr "${@}"` ++} # func_arith may be replaced by extended shell implementation ++ ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` ++} # func_len may be replaced by extended shell implementation ++ ++ ++# func_lo2o object ++func_lo2o () ++{ ++ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` ++} # func_lo2o may be replaced by extended shell implementation ++ ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` ++} # func_xform may be replaced by extended shell implementation ++ ++ + # func_fatal_configuration arg... + # Echo program name prefixed message to standard error, followed by + # a configuration failure hint, and exit. +@@ -636,16 +923,16 @@ func_config () + # Display the features supported by this script. + func_features () + { +- $ECHO "host: $host" ++ echo "host: $host" + if test "$build_libtool_libs" = yes; then +- $ECHO "enable shared libraries" ++ echo "enable shared libraries" + else +- $ECHO "disable shared libraries" ++ echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then +- $ECHO "enable static libraries" ++ echo "enable static libraries" + else +- $ECHO "disable static libraries" ++ echo "disable static libraries" + fi + + exit $? +@@ -692,117 +979,204 @@ func_enable_tag () + esac + } + +-# Parse options once, thoroughly. This comes as soon as possible in +-# the script to make things like `libtool --version' happen quickly. ++# func_check_version_match ++# Ensure that we are using m4 macros, and libtool script from the same ++# release of libtool. ++func_check_version_match () + { ++ if test "$package_revision" != "$macro_revision"; then ++ if test "$VERSION" != "$macro_version"; then ++ if test -z "$macro_version"; then ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from an older release. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ fi ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, ++$progname: but the definition of this LT_INIT comes from revision $macro_revision. ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision ++$progname: of $PACKAGE $VERSION and run autoconf again. ++_LT_EOF ++ fi + +- # Shorthand for --mode=foo, only valid as the first argument +- case $1 in +- clean|clea|cle|cl) +- shift; set dummy --mode clean ${1+"$@"}; shift +- ;; +- compile|compil|compi|comp|com|co|c) +- shift; set dummy --mode compile ${1+"$@"}; shift +- ;; +- execute|execut|execu|exec|exe|ex|e) +- shift; set dummy --mode execute ${1+"$@"}; shift +- ;; +- finish|finis|fini|fin|fi|f) +- shift; set dummy --mode finish ${1+"$@"}; shift +- ;; +- install|instal|insta|inst|ins|in|i) +- shift; set dummy --mode install ${1+"$@"}; shift +- ;; +- link|lin|li|l) +- shift; set dummy --mode link ${1+"$@"}; shift +- ;; +- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) +- shift; set dummy --mode uninstall ${1+"$@"}; shift +- ;; +- esac ++ exit $EXIT_MISMATCH ++ fi ++} ++ ++ ++# Shorthand for --mode=foo, only valid as the first argument ++case $1 in ++clean|clea|cle|cl) ++ shift; set dummy --mode clean ${1+"$@"}; shift ++ ;; ++compile|compil|compi|comp|com|co|c) ++ shift; set dummy --mode compile ${1+"$@"}; shift ++ ;; ++execute|execut|execu|exec|exe|ex|e) ++ shift; set dummy --mode execute ${1+"$@"}; shift ++ ;; ++finish|finis|fini|fin|fi|f) ++ shift; set dummy --mode finish ${1+"$@"}; shift ++ ;; ++install|instal|insta|inst|ins|in|i) ++ shift; set dummy --mode install ${1+"$@"}; shift ++ ;; ++link|lin|li|l) ++ shift; set dummy --mode link ${1+"$@"}; shift ++ ;; ++uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) ++ shift; set dummy --mode uninstall ${1+"$@"}; shift ++ ;; ++esac + +- # Parse non-mode specific arguments: +- while test "$#" -gt 0; do ++ ++ ++# Option defaults: ++opt_debug=: ++opt_dry_run=false ++opt_config=false ++opt_preserve_dup_deps=false ++opt_features=false ++opt_finish=false ++opt_help=false ++opt_help_all=false ++opt_silent=: ++opt_verbose=: ++opt_silent=false ++opt_verbose=false ++ ++ ++# Parse options once, thoroughly. This comes as soon as possible in the ++# script to make things like `--version' happen as quickly as we can. ++{ ++ # this just eases exit handling ++ while test $# -gt 0; do + opt="$1" + shift +- + case $opt in +- --config) func_config ;; +- +- --debug) preserve_args="$preserve_args $opt" ++ --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" +- opt_debug='set -x' + $opt_debug + ;; +- +- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break +- execute_dlfiles="$execute_dlfiles $1" +- shift ++ --dry-run|--dryrun|-n) ++ opt_dry_run=: + ;; +- +- --dry-run | -n) opt_dry_run=: ;; +- --features) func_features ;; +- --finish) mode="finish" ;; +- +- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break +- case $1 in +- # Valid mode arguments: +- clean) ;; +- compile) ;; +- execute) ;; +- finish) ;; +- install) ;; +- link) ;; +- relink) ;; +- uninstall) ;; +- +- # Catch anything else as an error +- *) func_error "invalid argument for $opt" +- exit_cmd=exit +- break +- ;; +- esac +- +- mode="$1" ++ --config) ++ opt_config=: ++func_config ++ ;; ++ --dlopen|-dlopen) ++ optarg="$1" ++ opt_dlopen="${opt_dlopen+$opt_dlopen ++}$optarg" + shift + ;; +- + --preserve-dup-deps) +- opt_duplicate_deps=: ;; +- +- --quiet|--silent) preserve_args="$preserve_args $opt" +- opt_silent=: ++ opt_preserve_dup_deps=: + ;; +- +- --verbose| -v) preserve_args="$preserve_args $opt" ++ --features) ++ opt_features=: ++func_features ++ ;; ++ --finish) ++ opt_finish=: ++set dummy --mode finish ${1+"$@"}; shift ++ ;; ++ --help) ++ opt_help=: ++ ;; ++ --help-all) ++ opt_help_all=: ++opt_help=': help-all' ++ ;; ++ --mode) ++ test $# = 0 && func_missing_arg $opt && break ++ optarg="$1" ++ opt_mode="$optarg" ++case $optarg in ++ # Valid mode arguments: ++ clean|compile|execute|finish|install|link|relink|uninstall) ;; ++ ++ # Catch anything else as an error ++ *) func_error "invalid argument for $opt" ++ exit_cmd=exit ++ break ++ ;; ++esac ++ shift ++ ;; ++ --no-silent|--no-quiet) + opt_silent=false ++func_append preserve_args " $opt" + ;; +- +- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break +- preserve_args="$preserve_args $opt $1" +- func_enable_tag "$1" # tagname is set here ++ --no-verbose) ++ opt_verbose=false ++func_append preserve_args " $opt" ++ ;; ++ --silent|--quiet) ++ opt_silent=: ++func_append preserve_args " $opt" ++ opt_verbose=false ++ ;; ++ --verbose|-v) ++ opt_verbose=: ++func_append preserve_args " $opt" ++opt_silent=false ++ ;; ++ --tag) ++ test $# = 0 && func_missing_arg $opt && break ++ optarg="$1" ++ opt_tag="$optarg" ++func_append preserve_args " $opt $optarg" ++func_enable_tag "$optarg" + shift + ;; + ++ -\?|-h) func_usage ;; ++ --help) func_help ;; ++ --version) func_version ;; ++ + # Separate optargs to long options: +- -dlopen=*|--mode=*|--tag=*) +- func_opt_split "$opt" +- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} ++ --*=*) ++ func_split_long_opt "$opt" ++ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + +- -\?|-h) func_usage ;; +- --help) opt_help=: ;; +- --version) func_version ;; +- +- -*) func_fatal_help "unrecognized option \`$opt'" ;; +- +- *) nonopt="$opt" +- break ++ # Separate non-argument short options: ++ -\?*|-h*|-n*|-v*) ++ func_split_short_opt "$opt" ++ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} ++ shift + ;; ++ ++ --) break ;; ++ -*) func_fatal_help "unrecognized option \`$opt'" ;; ++ *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + ++ # Validate options: ++ ++ # save first non-option argument ++ if test "$#" -gt 0; then ++ nonopt="$opt" ++ shift ++ fi ++ ++ # preserve --debug ++ test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) +@@ -810,82 +1184,44 @@ func_enable_tag () + opt_duplicate_compiler_generated_deps=: + ;; + *) +- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ++ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + +- # Having warned about all mis-specified options, bail out if +- # anything was wrong. +- $exit_cmd $EXIT_FAILURE +-} ++ $opt_help || { ++ # Sanity checks first: ++ func_check_version_match + +-# func_check_version_match +-# Ensure that we are using m4 macros, and libtool script from the same +-# release of libtool. +-func_check_version_match () +-{ +- if test "$package_revision" != "$macro_revision"; then +- if test "$VERSION" != "$macro_version"; then +- if test -z "$macro_version"; then +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +-$progname: definition of this LT_INIT comes from an older release. +-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +-$progname: and run autoconf again. +-_LT_EOF +- else +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +-$progname: and run autoconf again. +-_LT_EOF +- fi +- else +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +-$progname: but the definition of this LT_INIT comes from revision $macro_revision. +-$progname: You should recreate aclocal.m4 with macros from revision $package_revision +-$progname: of $PACKAGE $VERSION and run autoconf again. +-_LT_EOF ++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ++ func_fatal_configuration "not configured to build any kind of library" + fi + +- exit $EXIT_MISMATCH +- fi +-} +- +- +-## ----------- ## +-## Main. ## +-## ----------- ## ++ # Darwin sucks ++ eval std_shrext=\"$shrext_cmds\" + +-$opt_help || { +- # Sanity checks first: +- func_check_version_match ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then ++ func_error "unrecognized option \`-dlopen'" ++ $ECHO "$help" 1>&2 ++ exit $EXIT_FAILURE ++ fi + +- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then +- func_fatal_configuration "not configured to build any kind of library" +- fi ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$progname --help --mode=$opt_mode' for more information." ++ } + +- test -z "$mode" && func_fatal_error "error: you must specify a MODE." + ++ # Bail if the options were screwed ++ $exit_cmd $EXIT_FAILURE ++} + +- # Darwin sucks +- eval std_shrext=\"$shrext_cmds\" + + +- # Only execute mode is allowed to have -dlopen flags. +- if test -n "$execute_dlfiles" && test "$mode" != execute; then +- func_error "unrecognized option \`-dlopen'" +- $ECHO "$help" 1>&2 +- exit $EXIT_FAILURE +- fi +- +- # Change the help message to a mode-specific one. +- generic_help="$help" +- help="Try \`$progname --help --mode=$mode' for more information." +-} + ++## ----------- ## ++## Main. ## ++## ----------- ## + + # func_lalib_p file + # True iff FILE is a libtool `.la' library or `.lo' object file. +@@ -950,12 +1286,9 @@ func_ltwrapper_executable_p () + # temporary ltwrapper_script. + func_ltwrapper_scriptname () + { +- func_ltwrapper_scriptname_result="" +- if func_ltwrapper_executable_p "$1"; then +- func_dirname_and_basename "$1" "" "." +- func_stripname '' '.exe' "$func_basename_result" +- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +- fi ++ func_dirname_and_basename "$1" "" "." ++ func_stripname '' '.exe' "$func_basename_result" ++ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + } + + # func_ltwrapper_p file +@@ -1001,6 +1334,37 @@ func_source () + } + + ++# func_resolve_sysroot PATH ++# Replace a leading = in PATH with a sysroot. Store the result into ++# func_resolve_sysroot_result ++func_resolve_sysroot () ++{ ++ func_resolve_sysroot_result=$1 ++ case $func_resolve_sysroot_result in ++ =*) ++ func_stripname '=' '' "$func_resolve_sysroot_result" ++ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ++ ;; ++ esac ++} ++ ++# func_replace_sysroot PATH ++# If PATH begins with the sysroot, replace it with = and ++# store the result into func_replace_sysroot_result. ++func_replace_sysroot () ++{ ++ case "$lt_sysroot:$1" in ++ ?*:"$lt_sysroot"*) ++ func_stripname "$lt_sysroot" '' "$1" ++ func_replace_sysroot_result="=$func_stripname_result" ++ ;; ++ *) ++ # Including no sysroot. ++ func_replace_sysroot_result=$1 ++ ;; ++ esac ++} ++ + # func_infer_tag arg + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. +@@ -1013,13 +1377,15 @@ func_infer_tag () + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do +- func_quote_for_eval "$arg" +- CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ func_append_quoted CC_quoted "$arg" + done ++ CC_expanded=`func_echo_all $CC` ++ CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. +- " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; ++ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ ++ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) +@@ -1030,11 +1396,13 @@ func_infer_tag () + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. +- func_quote_for_eval "$arg" +- CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ func_append_quoted CC_quoted "$arg" + done ++ CC_expanded=`func_echo_all $CC` ++ CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in +- " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ++ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ ++ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. +@@ -1097,6 +1465,486 @@ EOF + } + } + ++ ++################################################## ++# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # ++################################################## ++ ++# func_convert_core_file_wine_to_w32 ARG ++# Helper function used by file name conversion functions when $build is *nix, ++# and $host is mingw, cygwin, or some other w32 environment. Relies on a ++# correctly configured wine environment available, with the winepath program ++# in $build's $PATH. ++# ++# ARG is the $build file name to be converted to w32 format. ++# Result is available in $func_convert_core_file_wine_to_w32_result, and will ++# be empty on error (or when ARG is empty) ++func_convert_core_file_wine_to_w32 () ++{ ++ $opt_debug ++ func_convert_core_file_wine_to_w32_result="$1" ++ if test -n "$1"; then ++ # Unfortunately, winepath does not exit with a non-zero error code, so we ++ # are forced to check the contents of stdout. On the other hand, if the ++ # command is not found, the shell will set an exit code of 127 and print ++ # *an error message* to stdout. So we must check for both error code of ++ # zero AND non-empty stdout, which explains the odd construction: ++ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` ++ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then ++ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | ++ $SED -e "$lt_sed_naive_backslashify"` ++ else ++ func_convert_core_file_wine_to_w32_result= ++ fi ++ fi ++} ++# end: func_convert_core_file_wine_to_w32 ++ ++ ++# func_convert_core_path_wine_to_w32 ARG ++# Helper function used by path conversion functions when $build is *nix, and ++# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly ++# configured wine environment available, with the winepath program in $build's ++# $PATH. Assumes ARG has no leading or trailing path separator characters. ++# ++# ARG is path to be converted from $build format to win32. ++# Result is available in $func_convert_core_path_wine_to_w32_result. ++# Unconvertible file (directory) names in ARG are skipped; if no directory names ++# are convertible, then the result may be empty. ++func_convert_core_path_wine_to_w32 () ++{ ++ $opt_debug ++ # unfortunately, winepath doesn't convert paths, only file names ++ func_convert_core_path_wine_to_w32_result="" ++ if test -n "$1"; then ++ oldIFS=$IFS ++ IFS=: ++ for func_convert_core_path_wine_to_w32_f in $1; do ++ IFS=$oldIFS ++ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" ++ if test -n "$func_convert_core_file_wine_to_w32_result" ; then ++ if test -z "$func_convert_core_path_wine_to_w32_result"; then ++ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" ++ else ++ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" ++ fi ++ fi ++ done ++ IFS=$oldIFS ++ fi ++} ++# end: func_convert_core_path_wine_to_w32 ++ ++ ++# func_cygpath ARGS... ++# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when ++# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) ++# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or ++# (2), returns the Cygwin file name or path in func_cygpath_result (input ++# file name or path is assumed to be in w32 format, as previously converted ++# from $build's *nix or MSYS format). In case (3), returns the w32 file name ++# or path in func_cygpath_result (input file name or path is assumed to be in ++# Cygwin format). Returns an empty string on error. ++# ++# ARGS are passed to cygpath, with the last one being the file name or path to ++# be converted. ++# ++# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH ++# environment variable; do not put it in $PATH. ++func_cygpath () ++{ ++ $opt_debug ++ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then ++ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` ++ if test "$?" -ne 0; then ++ # on failure, ensure result is empty ++ func_cygpath_result= ++ fi ++ else ++ func_cygpath_result= ++ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" ++ fi ++} ++#end: func_cygpath ++ ++ ++# func_convert_core_msys_to_w32 ARG ++# Convert file name or path ARG from MSYS format to w32 format. Return ++# result in func_convert_core_msys_to_w32_result. ++func_convert_core_msys_to_w32 () ++{ ++ $opt_debug ++ # awkward: cmd appends spaces to result ++ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | ++ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ++} ++#end: func_convert_core_msys_to_w32 ++ ++ ++# func_convert_file_check ARG1 ARG2 ++# Verify that ARG1 (a file name in $build format) was converted to $host ++# format in ARG2. Otherwise, emit an error message, but continue (resetting ++# func_to_host_file_result to ARG1). ++func_convert_file_check () ++{ ++ $opt_debug ++ if test -z "$2" && test -n "$1" ; then ++ func_error "Could not determine host file name corresponding to" ++ func_error " \`$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback: ++ func_to_host_file_result="$1" ++ fi ++} ++# end func_convert_file_check ++ ++ ++# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH ++# Verify that FROM_PATH (a path in $build format) was converted to $host ++# format in TO_PATH. Otherwise, emit an error message, but continue, resetting ++# func_to_host_file_result to a simplistic fallback value (see below). ++func_convert_path_check () ++{ ++ $opt_debug ++ if test -z "$4" && test -n "$3"; then ++ func_error "Could not determine the host path corresponding to" ++ func_error " \`$3'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback. This is a deliberately simplistic "conversion" and ++ # should not be "improved". See libtool.info. ++ if test "x$1" != "x$2"; then ++ lt_replace_pathsep_chars="s|$1|$2|g" ++ func_to_host_path_result=`echo "$3" | ++ $SED -e "$lt_replace_pathsep_chars"` ++ else ++ func_to_host_path_result="$3" ++ fi ++ fi ++} ++# end func_convert_path_check ++ ++ ++# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG ++# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT ++# and appending REPL if ORIG matches BACKPAT. ++func_convert_path_front_back_pathsep () ++{ ++ $opt_debug ++ case $4 in ++ $1 ) func_to_host_path_result="$3$func_to_host_path_result" ++ ;; ++ esac ++ case $4 in ++ $2 ) func_append func_to_host_path_result "$3" ++ ;; ++ esac ++} ++# end func_convert_path_front_back_pathsep ++ ++ ++################################################## ++# $build to $host FILE NAME CONVERSION FUNCTIONS # ++################################################## ++# invoked via `$to_host_file_cmd ARG' ++# ++# In each case, ARG is the path to be converted from $build to $host format. ++# Result will be available in $func_to_host_file_result. ++ ++ ++# func_to_host_file ARG ++# Converts the file name ARG from $build format to $host format. Return result ++# in func_to_host_file_result. ++func_to_host_file () ++{ ++ $opt_debug ++ $to_host_file_cmd "$1" ++} ++# end func_to_host_file ++ ++ ++# func_to_tool_file ARG LAZY ++# converts the file name ARG from $build format to toolchain format. Return ++# result in func_to_tool_file_result. If the conversion in use is listed ++# in (the comma separated) LAZY, no conversion takes place. ++func_to_tool_file () ++{ ++ $opt_debug ++ case ,$2, in ++ *,"$to_tool_file_cmd",*) ++ func_to_tool_file_result=$1 ++ ;; ++ *) ++ $to_tool_file_cmd "$1" ++ func_to_tool_file_result=$func_to_host_file_result ++ ;; ++ esac ++} ++# end func_to_tool_file ++ ++ ++# func_convert_file_noop ARG ++# Copy ARG to func_to_host_file_result. ++func_convert_file_noop () ++{ ++ func_to_host_file_result="$1" ++} ++# end func_convert_file_noop ++ ++ ++# func_convert_file_msys_to_w32 ARG ++# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic ++# conversion to w32 is not available inside the cwrapper. Returns result in ++# func_to_host_file_result. ++func_convert_file_msys_to_w32 () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ func_convert_core_msys_to_w32 "$1" ++ func_to_host_file_result="$func_convert_core_msys_to_w32_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_msys_to_w32 ++ ++ ++# func_convert_file_cygwin_to_w32 ARG ++# Convert file name ARG from Cygwin to w32 format. Returns result in ++# func_to_host_file_result. ++func_convert_file_cygwin_to_w32 () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use ++ # LT_CYGPATH in this case. ++ func_to_host_file_result=`cygpath -m "$1"` ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_cygwin_to_w32 ++ ++ ++# func_convert_file_nix_to_w32 ARG ++# Convert file name ARG from *nix to w32 format. Requires a wine environment ++# and a working winepath. Returns result in func_to_host_file_result. ++func_convert_file_nix_to_w32 () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ func_convert_core_file_wine_to_w32 "$1" ++ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_nix_to_w32 ++ ++ ++# func_convert_file_msys_to_cygwin ARG ++# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. ++# Returns result in func_to_host_file_result. ++func_convert_file_msys_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ func_convert_core_msys_to_w32 "$1" ++ func_cygpath -u "$func_convert_core_msys_to_w32_result" ++ func_to_host_file_result="$func_cygpath_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_msys_to_cygwin ++ ++ ++# func_convert_file_nix_to_cygwin ARG ++# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed ++# in a wine environment, working winepath, and LT_CYGPATH set. Returns result ++# in func_to_host_file_result. ++func_convert_file_nix_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. ++ func_convert_core_file_wine_to_w32 "$1" ++ func_cygpath -u "$func_convert_core_file_wine_to_w32_result" ++ func_to_host_file_result="$func_cygpath_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_nix_to_cygwin ++ ++ ++############################################# ++# $build to $host PATH CONVERSION FUNCTIONS # ++############################################# ++# invoked via `$to_host_path_cmd ARG' ++# ++# In each case, ARG is the path to be converted from $build to $host format. ++# The result will be available in $func_to_host_path_result. ++# ++# Path separators are also converted from $build format to $host format. If ++# ARG begins or ends with a path separator character, it is preserved (but ++# converted to $host format) on output. ++# ++# All path conversion functions are named using the following convention: ++# file name conversion function : func_convert_file_X_to_Y () ++# path conversion function : func_convert_path_X_to_Y () ++# where, for any given $build/$host combination the 'X_to_Y' value is the ++# same. If conversion functions are added for new $build/$host combinations, ++# the two new functions must follow this pattern, or func_init_to_host_path_cmd ++# will break. ++ ++ ++# func_init_to_host_path_cmd ++# Ensures that function "pointer" variable $to_host_path_cmd is set to the ++# appropriate value, based on the value of $to_host_file_cmd. ++to_host_path_cmd= ++func_init_to_host_path_cmd () ++{ ++ $opt_debug ++ if test -z "$to_host_path_cmd"; then ++ func_stripname 'func_convert_file_' '' "$to_host_file_cmd" ++ to_host_path_cmd="func_convert_path_${func_stripname_result}" ++ fi ++} ++ ++ ++# func_to_host_path ARG ++# Converts the path ARG from $build format to $host format. Return result ++# in func_to_host_path_result. ++func_to_host_path () ++{ ++ $opt_debug ++ func_init_to_host_path_cmd ++ $to_host_path_cmd "$1" ++} ++# end func_to_host_path ++ ++ ++# func_convert_path_noop ARG ++# Copy ARG to func_to_host_path_result. ++func_convert_path_noop () ++{ ++ func_to_host_path_result="$1" ++} ++# end func_convert_path_noop ++ ++ ++# func_convert_path_msys_to_w32 ARG ++# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic ++# conversion to w32 is not available inside the cwrapper. Returns result in ++# func_to_host_path_result. ++func_convert_path_msys_to_w32 () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # Remove leading and trailing path separator characters from ARG. MSYS ++ # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; ++ # and winepath ignores them completely. ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" ++ func_to_host_path_result="$func_convert_core_msys_to_w32_result" ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_msys_to_w32 ++ ++ ++# func_convert_path_cygwin_to_w32 ARG ++# Convert path ARG from Cygwin to w32 format. Returns result in ++# func_to_host_file_result. ++func_convert_path_cygwin_to_w32 () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_cygwin_to_w32 ++ ++ ++# func_convert_path_nix_to_w32 ARG ++# Convert path ARG from *nix to w32 format. Requires a wine environment and ++# a working winepath. Returns result in func_to_host_file_result. ++func_convert_path_nix_to_w32 () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" ++ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_nix_to_w32 ++ ++ ++# func_convert_path_msys_to_cygwin ARG ++# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. ++# Returns result in func_to_host_file_result. ++func_convert_path_msys_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" ++ func_cygpath -u -p "$func_convert_core_msys_to_w32_result" ++ func_to_host_path_result="$func_cygpath_result" ++ func_convert_path_check : : \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" : "$1" ++ fi ++} ++# end func_convert_path_msys_to_cygwin ++ ++ ++# func_convert_path_nix_to_cygwin ARG ++# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a ++# a wine environment, working winepath, and LT_CYGPATH set. Returns result in ++# func_to_host_file_result. ++func_convert_path_nix_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # Remove leading and trailing path separator characters from ++ # ARG. msys behavior is inconsistent here, cygpath turns them ++ # into '.;' and ';.', and winepath ignores them completely. ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" ++ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" ++ func_to_host_path_result="$func_cygpath_result" ++ func_convert_path_check : : \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" : "$1" ++ fi ++} ++# end func_convert_path_nix_to_cygwin ++ ++ + # func_mode_compile arg... + func_mode_compile () + { +@@ -1137,12 +1985,12 @@ func_mode_compile () + ;; + + -pie | -fpie | -fPIE) +- pie_flag="$pie_flag $arg" ++ func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) +- later="$later $arg" ++ func_append later " $arg" + continue + ;; + +@@ -1163,15 +2011,14 @@ func_mode_compile () + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" +- func_quote_for_eval "$arg" +- lastarg="$lastarg $func_quote_for_eval_result" ++ func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. +- base_compile="$base_compile $lastarg" ++ func_append base_compile " $lastarg" + continue + ;; + +@@ -1187,8 +2034,7 @@ func_mode_compile () + esac # case $arg_mode + + # Aesthetically quote the previous argument. +- func_quote_for_eval "$lastarg" +- base_compile="$base_compile $func_quote_for_eval_result" ++ func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in +@@ -1213,7 +2059,7 @@ func_mode_compile () + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ +- *.[fF][09]? | *.for | *.java | *.obj | *.sx) ++ *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; +@@ -1288,7 +2134,7 @@ func_mode_compile () + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then +- output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} ++ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= +@@ -1319,17 +2165,16 @@ compiler." + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi +- removelist="$removelist $output_obj" ++ func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist +- removelist="$removelist $lockfile" ++ func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + +- if test -n "$fix_srcfile_path"; then +- eval srcfile=\"$fix_srcfile_path\" +- fi ++ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 ++ srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + +@@ -1349,7 +2194,7 @@ compiler." + + if test -z "$output_obj"; then + # Place PIC objects in $objdir +- command="$command -o $lobj" ++ func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ +@@ -1396,11 +2241,11 @@ compiler." + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then +- command="$command -o $obj" ++ func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. +- command="$command$suppress_output" ++ func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + +@@ -1445,13 +2290,13 @@ compiler." + } + + $opt_help || { +-test "$mode" = compile && func_mode_compile ${1+"$@"} ++ test "$opt_mode" = compile && func_mode_compile ${1+"$@"} + } + + func_mode_help () + { + # We need to display help for each of the modes. +- case $mode in ++ case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. +@@ -1482,10 +2327,11 @@ This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes +- -prefer-pic try to building PIC objects only +- -prefer-non-pic try to building non-PIC objects only ++ -prefer-pic try to build PIC objects only ++ -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking ++ -Wc,FLAG pass FLAG directly to the compiler + + COMPILE-COMMAND is a command to be used in creating a \`standard' object file + from the given SOURCEFILE. +@@ -1538,7 +2384,7 @@ either the \`install' or \`cp' program. + + The following components of INSTALL-COMMAND are treated specially: + +- -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation ++ -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + + The rest of the components are interpreted as arguments to that command (only + BSD-compatible install options are recognized)." +@@ -1558,6 +2404,8 @@ The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible ++ -bindir BINDIR specify path to binaries directory (for systems where ++ libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) +@@ -1586,6 +2434,11 @@ The following components of LINK-COMMAND are treated specially: + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface ++ -Wc,FLAG ++ -Xcompiler FLAG pass linker-specific FLAG directly to the compiler ++ -Wl,FLAG ++ -Xlinker FLAG pass linker-specific FLAG directly to the linker ++ -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + + All other options (arguments beginning with \`-') are ignored. + +@@ -1619,18 +2472,44 @@ Otherwise, only FILE itself is deleted using RM." + ;; + + *) +- func_fatal_help "invalid operation mode \`$mode'" ++ func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + +- $ECHO ++ echo + $ECHO "Try \`$progname --help' for more information about other modes." +- +- exit $? + } + +- # Now that we've collected a possible --mode arg, show help if necessary +- $opt_help && func_mode_help ++# Now that we've collected a possible --mode arg, show help if necessary ++if $opt_help; then ++ if test "$opt_help" = :; then ++ func_mode_help ++ else ++ { ++ func_help noexit ++ for opt_mode in compile link execute install finish uninstall clean; do ++ func_mode_help ++ done ++ } | sed -n '1p; 2,$s/^Usage:/ or: /p' ++ { ++ func_help noexit ++ for opt_mode in compile link execute install finish uninstall clean; do ++ echo ++ func_mode_help ++ done ++ } | ++ sed '1d ++ /^When reporting/,/^Report/{ ++ H ++ d ++ } ++ $x ++ /information about other modes/d ++ /more detailed .*MODE/d ++ s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' ++ fi ++ exit $? ++fi + + + # func_mode_execute arg... +@@ -1643,13 +2522,16 @@ func_mode_execute () + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. +- for file in $execute_dlfiles; do ++ for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) ++ func_resolve_sysroot "$file" ++ file=$func_resolve_sysroot_result ++ + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" +@@ -1671,7 +2553,7 @@ func_mode_execute () + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then +- dir="$dir/$objdir" ++ func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" +@@ -1712,7 +2594,7 @@ func_mode_execute () + for file + do + case $file in +- -*) ;; ++ -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then +@@ -1728,8 +2610,7 @@ func_mode_execute () + ;; + esac + # Quote arguments (to preserve shell metacharacters). +- func_quote_for_eval "$file" +- args="$args $func_quote_for_eval_result" ++ func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then +@@ -1754,29 +2635,66 @@ func_mode_execute () + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" +- $ECHO "export $shlibpath_var" ++ echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi + } + +-test "$mode" = execute && func_mode_execute ${1+"$@"} ++test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + + # func_mode_finish arg... + func_mode_finish () + { + $opt_debug +- libdirs="$nonopt" ++ libs= ++ libdirs= + admincmds= + +- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then +- for dir +- do +- libdirs="$libdirs $dir" +- done ++ for opt in "$nonopt" ${1+"$@"} ++ do ++ if test -d "$opt"; then ++ func_append libdirs " $opt" ++ ++ elif test -f "$opt"; then ++ if func_lalib_unsafe_p "$opt"; then ++ func_append libs " $opt" ++ else ++ func_warning "\`$opt' is not a valid libtool archive" ++ fi ++ ++ else ++ func_fatal_error "invalid argument \`$opt'" ++ fi ++ done ++ ++ if test -n "$libs"; then ++ if test -n "$lt_sysroot"; then ++ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` ++ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" ++ else ++ sysroot_cmd= ++ fi ++ ++ # Remove sysroot references ++ if $opt_dry_run; then ++ for lib in $libs; do ++ echo "removing references to $lt_sysroot and \`=' prefixes from $lib" ++ done ++ else ++ tmpdir=`func_mktempdir` ++ for lib in $libs; do ++ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ ++ > $tmpdir/tmp-la ++ mv -f $tmpdir/tmp-la $lib ++ done ++ ${RM}r "$tmpdir" ++ fi ++ fi + ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. +@@ -1786,7 +2704,7 @@ func_mode_finish () + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" +- $opt_dry_run || eval "$cmds" || admincmds="$admincmds ++ $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done +@@ -1795,53 +2713,55 @@ func_mode_finish () + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + +- $ECHO "X----------------------------------------------------------------------" | $Xsed +- $ECHO "Libraries have been installed in:" +- for libdir in $libdirs; do +- $ECHO " $libdir" +- done +- $ECHO +- $ECHO "If you ever happen to want to link against installed libraries" +- $ECHO "in a given directory, LIBDIR, you must either use libtool, and" +- $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" +- $ECHO "flag during linking and do at least one of the following:" +- if test -n "$shlibpath_var"; then +- $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" +- $ECHO " during execution" +- fi +- if test -n "$runpath_var"; then +- $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" +- $ECHO " during linking" +- fi +- if test -n "$hardcode_libdir_flag_spec"; then +- libdir=LIBDIR +- eval flag=\"$hardcode_libdir_flag_spec\" ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ echo "----------------------------------------------------------------------" ++ echo "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ $ECHO " $libdir" ++ done ++ echo ++ echo "If you ever happen to want to link against installed libraries" ++ echo "in a given directory, LIBDIR, you must either use libtool, and" ++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ++ echo "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ++ echo " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ echo " - add LIBDIR to the \`$runpath_var' environment variable" ++ echo " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" + +- $ECHO " - use the \`$flag' linker flag" +- fi +- if test -n "$admincmds"; then +- $ECHO " - have your system administrator run these commands:$admincmds" +- fi +- if test -f /etc/ld.so.conf; then +- $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" +- fi +- $ECHO ++ $ECHO " - use the \`$flag' linker flag" ++ fi ++ if test -n "$admincmds"; then ++ $ECHO " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ++ fi ++ echo + +- $ECHO "See any operating system documentation about shared libraries for" +- case $host in +- solaris2.[6789]|solaris2.1[0-9]) +- $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" +- $ECHO "pages." +- ;; +- *) +- $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." +- ;; +- esac +- $ECHO "X----------------------------------------------------------------------" | $Xsed ++ echo "See any operating system documentation about shared libraries for" ++ case $host in ++ solaris2.[6789]|solaris2.1[0-9]) ++ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" ++ echo "pages." ++ ;; ++ *) ++ echo "more information, such as the ld(1) and ld.so(8) manual pages." ++ ;; ++ esac ++ echo "----------------------------------------------------------------------" ++ fi + exit $EXIT_SUCCESS + } + +-test "$mode" = finish && func_mode_finish ${1+"$@"} ++test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + + # func_mode_install arg... +@@ -1852,7 +2772,7 @@ func_mode_install () + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. +- $ECHO "X$nonopt" | $GREP shtool >/dev/null; then ++ case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " +@@ -1866,7 +2786,12 @@ func_mode_install () + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" +- install_prog="$install_prog$func_quote_for_eval_result" ++ func_append install_prog "$func_quote_for_eval_result" ++ install_shared_prog=$install_prog ++ case " $install_prog " in ++ *[\\\ /]cp\ *) install_cp=: ;; ++ *) install_cp=false ;; ++ esac + + # We need to accept at least all the BSD install flags. + dest= +@@ -1876,10 +2801,12 @@ func_mode_install () + install_type= + isdir=no + stripme= ++ no_mode=: + for arg + do ++ arg2= + if test -n "$dest"; then +- files="$files $dest" ++ func_append files " $dest" + dest=$arg + continue + fi +@@ -1887,10 +2814,9 @@ func_mode_install () + case $arg in + -d) isdir=yes ;; + -f) +- case " $install_prog " in +- *[\\\ /]cp\ *) ;; +- *) prev=$arg ;; +- esac ++ if $install_cp; then :; else ++ prev=$arg ++ fi + ;; + -g | -m | -o) + prev=$arg +@@ -1904,6 +2830,10 @@ func_mode_install () + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then ++ if test "x$prev" = x-m && test -n "$install_override_mode"; then ++ arg2=$install_override_mode ++ no_mode=false ++ fi + prev= + else + dest=$arg +@@ -1914,7 +2844,11 @@ func_mode_install () + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" +- install_prog="$install_prog $func_quote_for_eval_result" ++ func_append install_prog " $func_quote_for_eval_result" ++ if test -n "$arg2"; then ++ func_quote_for_eval "$arg2" ++ fi ++ func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ +@@ -1923,6 +2857,13 @@ func_mode_install () + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + ++ if test -n "$install_override_mode" && $no_mode; then ++ if $install_cp; then :; else ++ func_quote_for_eval "$install_override_mode" ++ func_append install_shared_prog " -m $func_quote_for_eval_result" ++ fi ++ fi ++ + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" +@@ -1977,10 +2918,13 @@ func_mode_install () + case $file in + *.$libext) + # Do the static libraries later. +- staticlibs="$staticlibs $file" ++ func_append staticlibs " $file" + ;; + + *.la) ++ func_resolve_sysroot "$file" ++ file=$func_resolve_sysroot_result ++ + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" +@@ -1994,23 +2938,23 @@ func_mode_install () + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; +- *) current_libdirs="$current_libdirs $libdir" ;; ++ *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; +- *) future_libdirs="$future_libdirs $libdir" ;; ++ *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" +- dir="$dir$objdir" ++ func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. +- inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` ++ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that +@@ -2023,9 +2967,9 @@ func_mode_install () + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. +- relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else +- relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` ++ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" +@@ -2043,7 +2987,7 @@ func_mode_install () + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. +- func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ ++ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in +@@ -2083,7 +3027,7 @@ func_mode_install () + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. +- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) +@@ -2183,7 +3127,7 @@ func_mode_install () + if test -f "$lib"; then + func_source "$lib" + fi +- libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no +@@ -2202,7 +3146,7 @@ func_mode_install () + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. +- relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" +@@ -2221,7 +3165,7 @@ func_mode_install () + } + else + # Install the binary that we compiled earlier. +- file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + +@@ -2280,7 +3224,7 @@ func_mode_install () + fi + } + +-test "$mode" = install && func_mode_install ${1+"$@"} ++test "$opt_mode" = install && func_mode_install ${1+"$@"} + + + # func_generate_dlsyms outputname originator pic_p +@@ -2323,6 +3267,22 @@ func_generate_dlsyms () + extern \"C\" { + #endif + ++#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) ++#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" ++#endif ++ ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + /* External symbol declarations for the compiler. */\ + " + +@@ -2332,10 +3292,11 @@ extern \"C\" { + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. +- progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do +- func_verbose "extracting global C symbols from \`$progfile'" +- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" ++ func_to_tool_file "$progfile" func_convert_file_msys_to_w32 ++ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" ++ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then +@@ -2371,7 +3332,7 @@ extern \"C\" { + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in +- *cygwin | *mingw* | *cegcc* ) ++ *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; +@@ -2384,10 +3345,52 @@ extern \"C\" { + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" +- $opt_dry_run || { +- eval '$ECHO ": $name " >> "$nlist"' +- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" +- } ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ # if an import library, we need to obtain dlname ++ if func_win32_import_lib_p "$dlprefile"; then ++ func_tr_sh "$dlprefile" ++ eval "curr_lafile=\$libfile_$func_tr_sh_result" ++ dlprefile_dlbasename="" ++ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then ++ # Use subshell, to avoid clobbering current variable values ++ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` ++ if test -n "$dlprefile_dlname" ; then ++ func_basename "$dlprefile_dlname" ++ dlprefile_dlbasename="$func_basename_result" ++ else ++ # no lafile. user explicitly requested -dlpreopen <import library>. ++ $sharedlib_from_linklib_cmd "$dlprefile" ++ dlprefile_dlbasename=$sharedlib_from_linklib_result ++ fi ++ fi ++ $opt_dry_run || { ++ if test -n "$dlprefile_dlbasename" ; then ++ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' ++ else ++ func_warning "Could not compute DLL name from $name" ++ eval '$ECHO ": $name " >> "$nlist"' ++ fi ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | ++ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" ++ } ++ else # not an import lib ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ fi ++ ;; ++ *) ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ ;; ++ esac + done + + $opt_dry_run || { +@@ -2415,36 +3418,19 @@ extern \"C\" { + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else +- $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" ++ echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + +- $ECHO >> "$output_objdir/$my_dlsyms" "\ ++ echo >> "$output_objdir/$my_dlsyms" "\ + + /* The mapping between symbol names and symbols. */ + typedef struct { + const char *name; + void *address; + } lt_dlsymlist; +-" +- case $host in +- *cygwin* | *mingw* | *cegcc* ) +- $ECHO >> "$output_objdir/$my_dlsyms" "\ +-/* DATA imports from DLLs on WIN32 con't be const, because +- runtime relocations are performed -- see ld's documentation +- on pseudo-relocs. */" +- lt_dlsym_const= ;; +- *osf5*) +- echo >> "$output_objdir/$my_dlsyms" "\ +-/* This system does not cope well with relocations in const data */" +- lt_dlsym_const= ;; +- *) +- lt_dlsym_const=const ;; +- esac +- +- $ECHO >> "$output_objdir/$my_dlsyms" "\ +-extern $lt_dlsym_const lt_dlsymlist ++extern LT_DLSYM_CONST lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[]; +-$lt_dlsym_const lt_dlsymlist ++LT_DLSYM_CONST lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[] = + {\ + { \"$my_originator\", (void *) 0 }," +@@ -2457,7 +3443,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] = + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac +- $ECHO >> "$output_objdir/$my_dlsyms" "\ ++ echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} + }; + +@@ -2500,7 +3486,7 @@ static const void *lt_preloaded_setup() { + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; +- *) symtab_cflags="$symtab_cflags $arg" ;; ++ *) func_append symtab_cflags " $arg" ;; + esac + done + +@@ -2515,16 +3501,16 @@ static const void *lt_preloaded_setup() { + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then +- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else +- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) +- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; +@@ -2538,8 +3524,8 @@ static const void *lt_preloaded_setup() { + # really was required. + + # Nullify the symbol file. +- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` +- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` ++ compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` ++ finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi + } + +@@ -2549,6 +3535,7 @@ static const void *lt_preloaded_setup() { + # Need a lot of goo to handle *both* DLLs and import libs + # Has to be a shell function in order to 'eat' the argument + # that is supplied when $file_magic_command is called. ++# Despite the name, also deal with 64 bit binaries. + func_win32_libid () + { + $opt_debug +@@ -2559,9 +3546,11 @@ func_win32_libid () + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static ++ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | +- $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then +- win32_nmres=`eval $NM -f posix -A $1 | ++ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ +@@ -2590,6 +3579,131 @@ func_win32_libid () + $ECHO "$win32_libid_type" + } + ++# func_cygming_dll_for_implib ARG ++# ++# Platform-specific function to extract the ++# name of the DLL associated with the specified ++# import library ARG. ++# Invoked by eval'ing the libtool variable ++# $sharedlib_from_linklib_cmd ++# Result is available in the variable ++# $sharedlib_from_linklib_result ++func_cygming_dll_for_implib () ++{ ++ $opt_debug ++ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` ++} ++ ++# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs ++# ++# The is the core of a fallback implementation of a ++# platform-specific function to extract the name of the ++# DLL associated with the specified import library LIBNAME. ++# ++# SECTION_NAME is either .idata$6 or .idata$7, depending ++# on the platform and compiler that created the implib. ++# ++# Echos the name of the DLL associated with the ++# specified import library. ++func_cygming_dll_for_implib_fallback_core () ++{ ++ $opt_debug ++ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` ++ $OBJDUMP -s --section "$1" "$2" 2>/dev/null | ++ $SED '/^Contents of section '"$match_literal"':/{ ++ # Place marker at beginning of archive member dllname section ++ s/.*/====MARK====/ ++ p ++ d ++ } ++ # These lines can sometimes be longer than 43 characters, but ++ # are always uninteresting ++ /:[ ]*file format pe[i]\{,1\}-/d ++ /^In archive [^:]*:/d ++ # Ensure marker is printed ++ /^====MARK====/p ++ # Remove all lines with less than 43 characters ++ /^.\{43\}/!d ++ # From remaining lines, remove first 43 characters ++ s/^.\{43\}//' | ++ $SED -n ' ++ # Join marker and all lines until next marker into a single line ++ /^====MARK====/ b para ++ H ++ $ b para ++ b ++ :para ++ x ++ s/\n//g ++ # Remove the marker ++ s/^====MARK====// ++ # Remove trailing dots and whitespace ++ s/[\. \t]*$// ++ # Print ++ /./p' | ++ # we now have a list, one entry per line, of the stringified ++ # contents of the appropriate section of all members of the ++ # archive which possess that section. Heuristic: eliminate ++ # all those which have a first or second character that is ++ # a '.' (that is, objdump's representation of an unprintable ++ # character.) This should work for all archives with less than ++ # 0x302f exports -- but will fail for DLLs whose name actually ++ # begins with a literal '.' or a single character followed by ++ # a '.'. ++ # ++ # Of those that remain, print the first one. ++ $SED -e '/^\./d;/^.\./d;q' ++} ++ ++# func_cygming_gnu_implib_p ARG ++# This predicate returns with zero status (TRUE) if ++# ARG is a GNU/binutils-style import library. Returns ++# with nonzero status (FALSE) otherwise. ++func_cygming_gnu_implib_p () ++{ ++ $opt_debug ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` ++ test -n "$func_cygming_gnu_implib_tmp" ++} ++ ++# func_cygming_ms_implib_p ARG ++# This predicate returns with zero status (TRUE) if ++# ARG is an MS-style import library. Returns ++# with nonzero status (FALSE) otherwise. ++func_cygming_ms_implib_p () ++{ ++ $opt_debug ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` ++ test -n "$func_cygming_ms_implib_tmp" ++} ++ ++# func_cygming_dll_for_implib_fallback ARG ++# Platform-specific function to extract the ++# name of the DLL associated with the specified ++# import library ARG. ++# ++# This fallback implementation is for use when $DLLTOOL ++# does not support the --identify-strict option. ++# Invoked by eval'ing the libtool variable ++# $sharedlib_from_linklib_cmd ++# Result is available in the variable ++# $sharedlib_from_linklib_result ++func_cygming_dll_for_implib_fallback () ++{ ++ $opt_debug ++ if func_cygming_gnu_implib_p "$1" ; then ++ # binutils import library ++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` ++ elif func_cygming_ms_implib_p "$1" ; then ++ # ms-generated import library ++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` ++ else ++ # unknown ++ sharedlib_from_linklib_result="" ++ fi ++} + + + # func_extract_an_archive dir oldlib +@@ -2598,7 +3712,18 @@ func_extract_an_archive () + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" +- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' ++ if test "$lock_old_archive_extraction" = yes; then ++ lockfile=$f_ex_an_ar_oldlib.lock ++ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do ++ func_echo "Waiting for $lockfile to be removed" ++ sleep 2 ++ done ++ fi ++ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ ++ 'stat=$?; rm -f "$lockfile"; exit $stat' ++ if test "$lock_old_archive_extraction" = yes; then ++ $opt_dry_run || rm -f "$lockfile" ++ fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else +@@ -2669,7 +3794,7 @@ func_extract_archives () + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -2684,25 +3809,30 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" + } + + +- +-# func_emit_wrapper_part1 [arg=no] ++# func_emit_wrapper [arg=no] + # +-# Emit the first part of a libtool wrapper script on stdout. +-# For more information, see the description associated with +-# func_emit_wrapper(), below. +-func_emit_wrapper_part1 () ++# Emit a libtool wrapper script on stdout. ++# Don't directly open a file because we may want to ++# incorporate the script contents within a cygwin/mingw ++# wrapper executable. Must ONLY be called from within ++# func_mode_link because it depends on a number of variables ++# set therein. ++# ++# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR ++# variable will take. If 'yes', then the emitted script ++# will assume that the directory in which it is stored is ++# the $objdir directory. This is a cygwin/mingw-specific ++# behavior. ++func_emit_wrapper () + { +- func_emit_wrapper_part1_arg1=no +- if test -n "$1" ; then +- func_emit_wrapper_part1_arg1=$1 +- fi ++ func_emit_wrapper_arg1=${1-no} + + $ECHO "\ + #! $SHELL +@@ -2718,7 +3848,6 @@ func_emit_wrapper_part1 () + + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. +-Xsed='${SED} -e 1s/^X//' + sed_quote_subst='$sed_quote_subst' + + # Be Bourne compatible +@@ -2749,31 +3878,132 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then + else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then +- ECHO=\"$qecho\" +- file=\"\$0\" +- # Make sure echo works. +- if test \"X\$1\" = X--no-reexec; then +- # Discard the --no-reexec flag, and continue. +- shift +- elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then +- # Yippee, \$ECHO works! +- : +- else +- # Restart under the correct shell, and then maybe \$ECHO will work. +- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} +- fi +- fi\ ++ file=\"\$0\"" ++ ++ qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` ++ $ECHO "\ ++ ++# A function that is used when there is no print builtin or printf. ++func_fallback_echo () ++{ ++ eval 'cat <<_LTECHO_EOF ++\$1 ++_LTECHO_EOF' ++} ++ ECHO=\"$qECHO\" ++ fi ++ ++# Very basic option parsing. These options are (a) specific to ++# the libtool wrapper, (b) are identical between the wrapper ++# /script/ and the wrapper /executable/ which is used only on ++# windows platforms, and (c) all begin with the string "--lt-" ++# (application programs are unlikely to have options which match ++# this pattern). ++# ++# There are only two supported options: --lt-debug and ++# --lt-dump-script. There is, deliberately, no --lt-help. ++# ++# The first argument to this parsing function should be the ++# script's $0 value, followed by "$@". ++lt_option_debug= ++func_parse_lt_options () ++{ ++ lt_script_arg0=\$0 ++ shift ++ for lt_opt ++ do ++ case \"\$lt_opt\" in ++ --lt-debug) lt_option_debug=1 ;; ++ --lt-dump-script) ++ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` ++ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. ++ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` ++ cat \"\$lt_dump_D/\$lt_dump_F\" ++ exit 0 ++ ;; ++ --lt-*) ++ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ++ # Print the debug banner immediately: ++ if test -n \"\$lt_option_debug\"; then ++ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 ++ fi ++} ++ ++# Used when --lt-debug. Prints its arguments to stdout ++# (redirection is the responsibility of the caller) ++func_lt_dump_args () ++{ ++ lt_dump_args_N=1; ++ for lt_arg ++ do ++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" ++ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` ++ done ++} ++ ++# Core function for launching the target application ++func_exec_program_core () ++{ + " +- $ECHO "\ ++ case $host in ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2* | *-cegcc*) ++ $ECHO "\ ++ if test -n \"\$lt_option_debug\"; then ++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 ++ func_lt_dump_args \${1+\"\$@\"} 1>&2 ++ fi ++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $ECHO "\ ++ if test -n \"\$lt_option_debug\"; then ++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 ++ func_lt_dump_args \${1+\"\$@\"} 1>&2 ++ fi ++ exec \"\$progdir/\$program\" \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $ECHO "\ ++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ++ exit 1 ++} ++ ++# A function to encapsulate launching the target application ++# Strips options in the --lt-* namespace from \$@ and ++# launches target application with the remaining arguments. ++func_exec_program () ++{ ++ for lt_wr_arg ++ do ++ case \$lt_wr_arg in ++ --lt-*) ;; ++ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; ++ esac ++ shift ++ done ++ func_exec_program_core \${1+\"\$@\"} ++} ++ ++ # Parse options ++ func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. +- thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` ++ thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. +- file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` ++ file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do +- destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` ++ destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then +@@ -2783,30 +4013,13 @@ else + esac + fi + +- file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` +- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` ++ file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done +-" +-} +-# end: func_emit_wrapper_part1 +- +-# func_emit_wrapper_part2 [arg=no] +-# +-# Emit the second part of a libtool wrapper script on stdout. +-# For more information, see the description associated with +-# func_emit_wrapper(), below. +-func_emit_wrapper_part2 () +-{ +- func_emit_wrapper_part2_arg1=no +- if test -n "$1" ; then +- func_emit_wrapper_part2_arg1=$1 +- fi +- +- $ECHO "\ + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. +- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 ++ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then +@@ -2814,7 +4027,7 @@ func_emit_wrapper_part2 () + fi + # remove .libs from thisdir + case \"\$thisdir\" in +- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; ++ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi +@@ -2869,6 +4082,18 @@ func_emit_wrapper_part2 () + + if test -f \"\$progdir/\$program\"; then" + ++ # fixup the dll searchpath if we need to. ++ # ++ # Fix the DLL searchpath if we need to. Do this before prepending ++ # to shlibpath, because on Windows, both are PATH and uninstalled ++ # libraries must come first. ++ if test -n "$dllsearchpath"; then ++ $ECHO "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ +@@ -2877,253 +4102,28 @@ func_emit_wrapper_part2 () + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed +- $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` ++ $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var + " + fi + +- # fixup the dll searchpath if we need to. +- if test -n "$dllsearchpath"; then +- $ECHO "\ +- # Add the dll search path components to the executable PATH +- PATH=$dllsearchpath:\$PATH +-" +- fi +- + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +-" +- case $host in +- # Backslashes separate directories on plain windows +- *-*-mingw | *-*-os2* | *-cegcc*) +- $ECHO "\ +- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +-" +- ;; +- +- *) +- $ECHO "\ +- exec \"\$progdir/\$program\" \${1+\"\$@\"} +-" +- ;; +- esac +- $ECHO "\ +- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 +- exit 1 ++ func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 +- $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 ++ \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi + fi\ + " + } +-# end: func_emit_wrapper_part2 +- +- +-# func_emit_wrapper [arg=no] +-# +-# Emit a libtool wrapper script on stdout. +-# Don't directly open a file because we may want to +-# incorporate the script contents within a cygwin/mingw +-# wrapper executable. Must ONLY be called from within +-# func_mode_link because it depends on a number of variables +-# set therein. +-# +-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +-# variable will take. If 'yes', then the emitted script +-# will assume that the directory in which it is stored is +-# the $objdir directory. This is a cygwin/mingw-specific +-# behavior. +-func_emit_wrapper () +-{ +- func_emit_wrapper_arg1=no +- if test -n "$1" ; then +- func_emit_wrapper_arg1=$1 +- fi +- +- # split this up so that func_emit_cwrapperexe_src +- # can call each part independently. +- func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" +- func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" +-} +- +- +-# func_to_host_path arg +-# +-# Convert paths to host format when used with build tools. +-# Intended for use with "native" mingw (where libtool itself +-# is running under the msys shell), or in the following cross- +-# build environments: +-# $build $host +-# mingw (msys) mingw [e.g. native] +-# cygwin mingw +-# *nix + wine mingw +-# where wine is equipped with the `winepath' executable. +-# In the native mingw case, the (msys) shell automatically +-# converts paths for any non-msys applications it launches, +-# but that facility isn't available from inside the cwrapper. +-# Similar accommodations are necessary for $host mingw and +-# $build cygwin. Calling this function does no harm for other +-# $host/$build combinations not listed above. +-# +-# ARG is the path (on $build) that should be converted to +-# the proper representation for $host. The result is stored +-# in $func_to_host_path_result. +-func_to_host_path () +-{ +- func_to_host_path_result="$1" +- if test -n "$1" ; then +- case $host in +- *mingw* ) +- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +- case $build in +- *mingw* ) # actually, msys +- # awkward: cmd appends spaces to result +- lt_sed_strip_trailing_spaces="s/[ ]*\$//" +- func_to_host_path_tmp1=`( cmd //c echo "$1" |\ +- $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` +- func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- *cygwin* ) +- func_to_host_path_tmp1=`cygpath -w "$1"` +- func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- * ) +- # Unfortunately, winepath does not exit with a non-zero +- # error code, so we are forced to check the contents of +- # stdout. On the other hand, if the command is not +- # found, the shell will set an exit code of 127 and print +- # *an error message* to stdout. So we must check for both +- # error code of zero AND non-empty stdout, which explains +- # the odd construction: +- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` +- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then +- func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- else +- # Allow warning below. +- func_to_host_path_result="" +- fi +- ;; +- esac +- if test -z "$func_to_host_path_result" ; then +- func_error "Could not determine host path corresponding to" +- func_error " '$1'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback: +- func_to_host_path_result="$1" +- fi +- ;; +- esac +- fi +-} +-# end: func_to_host_path + +-# func_to_host_pathlist arg +-# +-# Convert pathlists to host format when used with build tools. +-# See func_to_host_path(), above. This function supports the +-# following $build/$host combinations (but does no harm for +-# combinations not listed here): +-# $build $host +-# mingw (msys) mingw [e.g. native] +-# cygwin mingw +-# *nix + wine mingw +-# +-# Path separators are also converted from $build format to +-# $host format. If ARG begins or ends with a path separator +-# character, it is preserved (but converted to $host format) +-# on output. +-# +-# ARG is a pathlist (on $build) that should be converted to +-# the proper representation on $host. The result is stored +-# in $func_to_host_pathlist_result. +-func_to_host_pathlist () +-{ +- func_to_host_pathlist_result="$1" +- if test -n "$1" ; then +- case $host in +- *mingw* ) +- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +- # Remove leading and trailing path separator characters from +- # ARG. msys behavior is inconsistent here, cygpath turns them +- # into '.;' and ';.', and winepath ignores them completely. +- func_to_host_pathlist_tmp2="$1" +- # Once set for this call, this variable should not be +- # reassigned. It is used in tha fallback case. +- func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ +- $SED -e 's|^:*||' -e 's|:*$||'` +- case $build in +- *mingw* ) # Actually, msys. +- # Awkward: cmd appends spaces to result. +- lt_sed_strip_trailing_spaces="s/[ ]*\$//" +- func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ +- $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` +- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- *cygwin* ) +- func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` +- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- * ) +- # unfortunately, winepath doesn't convert pathlists +- func_to_host_pathlist_result="" +- func_to_host_pathlist_oldIFS=$IFS +- IFS=: +- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do +- IFS=$func_to_host_pathlist_oldIFS +- if test -n "$func_to_host_pathlist_f" ; then +- func_to_host_path "$func_to_host_pathlist_f" +- if test -n "$func_to_host_path_result" ; then +- if test -z "$func_to_host_pathlist_result" ; then +- func_to_host_pathlist_result="$func_to_host_path_result" +- else +- func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" +- fi +- fi +- fi +- IFS=: +- done +- IFS=$func_to_host_pathlist_oldIFS +- ;; +- esac +- if test -z "$func_to_host_pathlist_result" ; then +- func_error "Could not determine the host path(s) corresponding to" +- func_error " '$1'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback. This may break if $1 contains DOS-style drive +- # specifications. The fix is not to complicate the expression +- # below, but for the user to provide a working wine installation +- # with winepath so that path translation in the cross-to-mingw +- # case works properly. +- lt_replace_pathsep_nix_to_dos="s|:|;|g" +- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ +- $SED -e "$lt_replace_pathsep_nix_to_dos"` +- fi +- # Now, add the leading and trailing path separators back +- case "$1" in +- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" +- ;; +- esac +- case "$1" in +- *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" +- ;; +- esac +- ;; +- esac +- fi +-} +-# end: func_to_host_pathlist + + # func_emit_cwrapperexe_src + # emit the source code for a wrapper executable on stdout +@@ -3141,31 +4141,23 @@ func_emit_cwrapperexe_src () + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. +- +- Currently, it simply execs the wrapper *script* "$SHELL $output", +- but could eventually absorb all of the scripts functionality and +- exec $objdir/$outputname directly. + */ + EOF + cat <<"EOF" ++#ifdef _MSC_VER ++# define _CRT_SECURE_NO_DEPRECATE 1 ++#endif + #include <stdio.h> + #include <stdlib.h> + #ifdef _MSC_VER + # include <direct.h> + # include <process.h> + # include <io.h> +-# define setmode _setmode + #else + # include <unistd.h> + # include <stdint.h> + # ifdef __CYGWIN__ + # include <io.h> +-# define HAVE_SETENV +-# ifdef __STRICT_ANSI__ +-char *realpath (const char *, char *); +-int putenv (char *); +-int setenv (const char *, const char *, int); +-# endif + # endif + #endif + #include <malloc.h> +@@ -3177,6 +4169,44 @@ int setenv (const char *, const char *, int); + #include <fcntl.h> + #include <sys/stat.h> + ++/* declarations of non-ANSI functions */ ++#if defined(__MINGW32__) ++# ifdef __STRICT_ANSI__ ++int _putenv (const char *); ++# endif ++#elif defined(__CYGWIN__) ++# ifdef __STRICT_ANSI__ ++char *realpath (const char *, char *); ++int putenv (char *); ++int setenv (const char *, const char *, int); ++# endif ++/* #elif defined (other platforms) ... */ ++#endif ++ ++/* portability defines, excluding path handling macros */ ++#if defined(_MSC_VER) ++# define setmode _setmode ++# define stat _stat ++# define chmod _chmod ++# define getcwd _getcwd ++# define putenv _putenv ++# define S_IXUSR _S_IEXEC ++# ifndef _INTPTR_T_DEFINED ++# define _INTPTR_T_DEFINED ++# define intptr_t int ++# endif ++#elif defined(__MINGW32__) ++# define setmode _setmode ++# define stat _stat ++# define chmod _chmod ++# define getcwd _getcwd ++# define putenv _putenv ++#elif defined(__CYGWIN__) ++# define HAVE_SETENV ++# define FOPEN_WB "wb" ++/* #elif defined (other platforms) ... */ ++#endif ++ + #if defined(PATH_MAX) + # define LT_PATHMAX PATH_MAX + #elif defined(MAXPATHLEN) +@@ -3192,14 +4222,7 @@ int setenv (const char *, const char *, int); + # define S_IXGRP 0 + #endif + +-#ifdef _MSC_VER +-# define S_IXUSR _S_IEXEC +-# define stat _stat +-# ifndef _INTPTR_T_DEFINED +-# define intptr_t int +-# endif +-#endif +- ++/* path handling portability macros */ + #ifndef DIR_SEPARATOR + # define DIR_SEPARATOR '/' + # define PATH_SEPARATOR ':' +@@ -3230,10 +4253,6 @@ int setenv (const char *, const char *, int); + # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) + #endif /* PATH_SEPARATOR_2 */ + +-#ifdef __CYGWIN__ +-# define FOPEN_WB "wb" +-#endif +- + #ifndef FOPEN_WB + # define FOPEN_WB "w" + #endif +@@ -3246,22 +4265,13 @@ int setenv (const char *, const char *, int); + if (stale) { free ((void *) stale); stale = 0; } \ + } while (0) + +-#undef LTWRAPPER_DEBUGPRINTF +-#if defined DEBUGWRAPPER +-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args +-static void +-ltwrapper_debugprintf (const char *fmt, ...) +-{ +- va_list args; +- va_start (args, fmt); +- (void) vfprintf (stderr, fmt, args); +- va_end (args); +-} ++#if defined(LT_DEBUGWRAPPER) ++static int lt_debug = 1; + #else +-# define LTWRAPPER_DEBUGPRINTF(args) ++static int lt_debug = 0; + #endif + +-const char *program_name = NULL; ++const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + + void *xmalloc (size_t num); + char *xstrdup (const char *string); +@@ -3271,41 +4281,27 @@ char *chase_symlinks (const char *pathspec); + int make_executable (const char *path); + int check_executable (const char *path); + char *strendzap (char *str, const char *pat); +-void lt_fatal (const char *message, ...); ++void lt_debugprintf (const char *file, int line, const char *fmt, ...); ++void lt_fatal (const char *file, int line, const char *message, ...); ++static const char *nonnull (const char *s); ++static const char *nonempty (const char *s); + void lt_setenv (const char *name, const char *value); + char *lt_extend_str (const char *orig_value, const char *add, int to_end); +-void lt_opt_process_env_set (const char *arg); +-void lt_opt_process_env_prepend (const char *arg); +-void lt_opt_process_env_append (const char *arg); +-int lt_split_name_value (const char *arg, char** name, char** value); + void lt_update_exe_path (const char *name, const char *value); + void lt_update_lib_path (const char *name, const char *value); +- +-static const char *script_text_part1 = ++char **prepare_spawn (char **argv); ++void lt_dump_script (FILE *f); + EOF + +- func_emit_wrapper_part1 yes | +- $SED -e 's/\([\\"]\)/\\\1/g' \ +- -e 's/^/ "/' -e 's/$/\\n"/' +- echo ";" + cat <<EOF +- +-static const char *script_text_part2 = +-EOF +- func_emit_wrapper_part2 yes | +- $SED -e 's/\([\\"]\)/\\\1/g' \ +- -e 's/^/ "/' -e 's/$/\\n"/' +- echo ";" +- +- cat <<EOF +-const char * MAGIC_EXE = "$magic_exe"; ++volatile const char * MAGIC_EXE = "$magic_exe"; + const char * LIB_PATH_VARNAME = "$shlibpath_var"; + EOF + + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then +- func_to_host_pathlist "$temp_rpath" ++ func_to_host_path "$temp_rpath" + cat <<EOF +-const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; ++const char * LIB_PATH_VALUE = "$func_to_host_path_result"; + EOF + else + cat <<"EOF" +@@ -3314,10 +4310,10 @@ EOF + fi + + if test -n "$dllsearchpath"; then +- func_to_host_pathlist "$dllsearchpath:" ++ func_to_host_path "$dllsearchpath:" + cat <<EOF + const char * EXE_PATH_VARNAME = "PATH"; +-const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; ++const char * EXE_PATH_VALUE = "$func_to_host_path_result"; + EOF + else + cat <<"EOF" +@@ -3340,24 +4336,10 @@ EOF + cat <<"EOF" + + #define LTWRAPPER_OPTION_PREFIX "--lt-" +-#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 + +-static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; + static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; +- + static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; +- +-static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; +-static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; +- /* argument is putenv-style "foo=bar", value of foo is set to bar */ +- +-static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; +-static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; +- /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ +- +-static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; +-static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; +- /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ ++static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; + + int + main (int argc, char *argv[]) +@@ -3374,10 +4356,13 @@ main (int argc, char *argv[]) + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); +- LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); +- LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); ++ newargz = XMALLOC (char *, argc + 1); + +- /* very simple arg parsing; don't want to rely on getopt */ ++ /* very simple arg parsing; don't want to rely on getopt ++ * also, copy all non cwrapper options to newargz, except ++ * argz[0], which is handled differently ++ */ ++ newargc=0; + for (i = 1; i < argc; i++) + { + if (strcmp (argv[i], dumpscript_opt) == 0) +@@ -3391,25 +4376,57 @@ EOF + esac + + cat <<"EOF" +- printf ("%s", script_text_part1); +- printf ("%s", script_text_part2); ++ lt_dump_script (stdout); + return 0; + } ++ if (strcmp (argv[i], debug_opt) == 0) ++ { ++ lt_debug = 1; ++ continue; ++ } ++ if (strcmp (argv[i], ltwrapper_option_prefix) == 0) ++ { ++ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX ++ namespace, but it is not one of the ones we know about and ++ have already dealt with, above (inluding dump-script), then ++ report an error. Otherwise, targets might begin to believe ++ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX ++ namespace. The first time any user complains about this, we'll ++ need to make LTWRAPPER_OPTION_PREFIX a configure-time option ++ or a configure.ac-settable value. ++ */ ++ lt_fatal (__FILE__, __LINE__, ++ "unrecognized %s option: '%s'", ++ ltwrapper_option_prefix, argv[i]); ++ } ++ /* otherwise ... */ ++ newargz[++newargc] = xstrdup (argv[i]); + } ++ newargz[++newargc] = NULL; ++ ++EOF ++ cat <<EOF ++ /* The GNU banner must be the first non-error debug message */ ++ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); ++EOF ++ cat <<"EOF" ++ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); ++ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); + +- newargz = XMALLOC (char *, argc + 1); + tmp_pathspec = find_executable (argv[0]); + if (tmp_pathspec == NULL) +- lt_fatal ("Couldn't find %s", argv[0]); +- LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", +- tmp_pathspec)); ++ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(main) found exe (before symlink chase) at: %s\n", ++ tmp_pathspec); + + actual_cwrapper_path = chase_symlinks (tmp_pathspec); +- LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", +- actual_cwrapper_path)); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(main) found exe (after symlink chase) at: %s\n", ++ actual_cwrapper_path); + XFREE (tmp_pathspec); + +- actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); ++ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); + strendzap (actual_cwrapper_path, actual_cwrapper_name); + + /* wrapper name transforms */ +@@ -3427,8 +4444,9 @@ EOF + target_name = tmp_pathspec; + tmp_pathspec = 0; + +- LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", +- target_name)); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(main) libtool target name: %s\n", ++ target_name); + EOF + + cat <<EOF +@@ -3478,80 +4496,19 @@ EOF + + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ +- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); ++ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must ++ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) ++ because on Windows, both *_VARNAMEs are PATH but uninstalled ++ libraries must come first. */ + lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); ++ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); + +- newargc=0; +- for (i = 1; i < argc; i++) +- { +- if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) +- { +- if (argv[i][env_set_opt_len] == '=') +- { +- const char *p = argv[i] + env_set_opt_len + 1; +- lt_opt_process_env_set (p); +- } +- else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) +- { +- lt_opt_process_env_set (argv[++i]); /* don't copy */ +- } +- else +- lt_fatal ("%s missing required argument", env_set_opt); +- continue; +- } +- if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) +- { +- if (argv[i][env_prepend_opt_len] == '=') +- { +- const char *p = argv[i] + env_prepend_opt_len + 1; +- lt_opt_process_env_prepend (p); +- } +- else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) +- { +- lt_opt_process_env_prepend (argv[++i]); /* don't copy */ +- } +- else +- lt_fatal ("%s missing required argument", env_prepend_opt); +- continue; +- } +- if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) +- { +- if (argv[i][env_append_opt_len] == '=') +- { +- const char *p = argv[i] + env_append_opt_len + 1; +- lt_opt_process_env_append (p); +- } +- else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) +- { +- lt_opt_process_env_append (argv[++i]); /* don't copy */ +- } +- else +- lt_fatal ("%s missing required argument", env_append_opt); +- continue; +- } +- if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) +- { +- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX +- namespace, but it is not one of the ones we know about and +- have already dealt with, above (inluding dump-script), then +- report an error. Otherwise, targets might begin to believe +- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX +- namespace. The first time any user complains about this, we'll +- need to make LTWRAPPER_OPTION_PREFIX a configure-time option +- or a configure.ac-settable value. +- */ +- lt_fatal ("Unrecognized option in %s namespace: '%s'", +- ltwrapper_option_prefix, argv[i]); +- } +- /* otherwise ... */ +- newargz[++newargc] = xstrdup (argv[i]); +- } +- newargz[++newargc] = NULL; +- +- LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); ++ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", ++ nonnull (lt_argv_zero)); + for (i = 0; i < newargc; i++) + { +- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); ++ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", ++ i, nonnull (newargz[i])); + } + + EOF +@@ -3560,11 +4517,14 @@ EOF + mingw*) + cat <<"EOF" + /* execv doesn't actually work on mingw as expected on unix */ ++ newargz = prepare_spawn (newargz); + rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); + if (rval == -1) + { + /* failed to start process */ +- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(main) failed to launch target \"%s\": %s\n", ++ lt_argv_zero, nonnull (strerror (errno))); + return 127; + } + return rval; +@@ -3586,7 +4546,7 @@ xmalloc (size_t num) + { + void *p = (void *) malloc (num); + if (!p) +- lt_fatal ("Memory exhausted"); ++ lt_fatal (__FILE__, __LINE__, "memory exhausted"); + + return p; + } +@@ -3620,8 +4580,8 @@ check_executable (const char *path) + { + struct stat st; + +- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", +- path ? (*path ? path : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", ++ nonempty (path)); + if ((!path) || (!*path)) + return 0; + +@@ -3638,8 +4598,8 @@ make_executable (const char *path) + int rval = 0; + struct stat st; + +- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", +- path ? (*path ? path : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", ++ nonempty (path)); + if ((!path) || (!*path)) + return 0; + +@@ -3665,8 +4625,8 @@ find_executable (const char *wrapper) + int tmp_len; + char *concat_name; + +- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", +- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", ++ nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; +@@ -3719,7 +4679,8 @@ find_executable (const char *wrapper) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); ++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ++ nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); +@@ -3744,7 +4705,8 @@ find_executable (const char *wrapper) + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); ++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ++ nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); +@@ -3770,8 +4732,9 @@ chase_symlinks (const char *pathspec) + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { +- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", +- tmp_pathspec)); ++ lt_debugprintf (__FILE__, __LINE__, ++ "checking path component for symlinks: %s\n", ++ tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) +@@ -3793,8 +4756,9 @@ chase_symlinks (const char *pathspec) + } + else + { +- char *errstr = strerror (errno); +- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); ++ lt_fatal (__FILE__, __LINE__, ++ "error accessing file \"%s\": %s", ++ tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); +@@ -3807,7 +4771,8 @@ chase_symlinks (const char *pathspec) + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { +- lt_fatal ("Could not follow symlinks for %s", pathspec); ++ lt_fatal (__FILE__, __LINE__, ++ "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); + #endif +@@ -3833,11 +4798,25 @@ strendzap (char *str, const char *pat) + return str; + } + ++void ++lt_debugprintf (const char *file, int line, const char *fmt, ...) ++{ ++ va_list args; ++ if (lt_debug) ++ { ++ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); ++ va_start (args, fmt); ++ (void) vfprintf (stderr, fmt, args); ++ va_end (args); ++ } ++} ++ + static void +-lt_error_core (int exit_status, const char *mode, ++lt_error_core (int exit_status, const char *file, ++ int line, const char *mode, + const char *message, va_list ap) + { +- fprintf (stderr, "%s: %s: ", program_name, mode); ++ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + +@@ -3846,20 +4825,32 @@ lt_error_core (int exit_status, const char *mode, + } + + void +-lt_fatal (const char *message, ...) ++lt_fatal (const char *file, int line, const char *message, ...) + { + va_list ap; + va_start (ap, message); +- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); ++ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); + } + ++static const char * ++nonnull (const char *s) ++{ ++ return s ? s : "(null)"; ++} ++ ++static const char * ++nonempty (const char *s) ++{ ++ return (s && !*s) ? "(empty)" : nonnull (s); ++} ++ + void + lt_setenv (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", +- (name ? name : "<NULL>"), +- (value ? value : "<NULL>"))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_setenv) setting '%s' to '%s'\n", ++ nonnull (name), nonnull (value)); + { + #ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ +@@ -3904,95 +4895,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end) + return new_value; + } + +-int +-lt_split_name_value (const char *arg, char** name, char** value) +-{ +- const char *p; +- int len; +- if (!arg || !*arg) +- return 1; +- +- p = strchr (arg, (int)'='); +- +- if (!p) +- return 1; +- +- *value = xstrdup (++p); +- +- len = strlen (arg) - strlen (*value); +- *name = XMALLOC (char, len); +- strncpy (*name, arg, len-1); +- (*name)[len - 1] = '\0'; +- +- return 0; +-} +- +-void +-lt_opt_process_env_set (const char *arg) +-{ +- char *name = NULL; +- char *value = NULL; +- +- if (lt_split_name_value (arg, &name, &value) != 0) +- { +- XFREE (name); +- XFREE (value); +- lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); +- } +- +- lt_setenv (name, value); +- XFREE (name); +- XFREE (value); +-} +- +-void +-lt_opt_process_env_prepend (const char *arg) +-{ +- char *name = NULL; +- char *value = NULL; +- char *new_value = NULL; +- +- if (lt_split_name_value (arg, &name, &value) != 0) +- { +- XFREE (name); +- XFREE (value); +- lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); +- } +- +- new_value = lt_extend_str (getenv (name), value, 0); +- lt_setenv (name, new_value); +- XFREE (new_value); +- XFREE (name); +- XFREE (value); +-} +- +-void +-lt_opt_process_env_append (const char *arg) +-{ +- char *name = NULL; +- char *value = NULL; +- char *new_value = NULL; +- +- if (lt_split_name_value (arg, &name, &value) != 0) +- { +- XFREE (name); +- XFREE (value); +- lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); +- } +- +- new_value = lt_extend_str (getenv (name), value, 1); +- lt_setenv (name, new_value); +- XFREE (new_value); +- XFREE (name); +- XFREE (value); +-} +- + void + lt_update_exe_path (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", +- (name ? name : "<NULL>"), +- (value ? value : "<NULL>"))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { +@@ -4011,9 +4919,9 @@ lt_update_exe_path (const char *name, const char *value) + void + lt_update_lib_path (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", +- (name ? name : "<NULL>"), +- (value ? value : "<NULL>"))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { +@@ -4023,11 +4931,152 @@ lt_update_lib_path (const char *name, const char *value) + } + } + ++EOF ++ case $host_os in ++ mingw*) ++ cat <<"EOF" ++ ++/* Prepares an argument vector before calling spawn(). ++ Note that spawn() does not by itself call the command interpreter ++ (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ++ ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); ++ GetVersionEx(&v); ++ v.dwPlatformId == VER_PLATFORM_WIN32_NT; ++ }) ? "cmd.exe" : "command.com"). ++ Instead it simply concatenates the arguments, separated by ' ', and calls ++ CreateProcess(). We must quote the arguments since Win32 CreateProcess() ++ interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a ++ special way: ++ - Space and tab are interpreted as delimiters. They are not treated as ++ delimiters if they are surrounded by double quotes: "...". ++ - Unescaped double quotes are removed from the input. Their only effect is ++ that within double quotes, space and tab are treated like normal ++ characters. ++ - Backslashes not followed by double quotes are not special. ++ - But 2*n+1 backslashes followed by a double quote become ++ n backslashes followed by a double quote (n >= 0): ++ \" -> " ++ \\\" -> \" ++ \\\\\" -> \\" ++ */ ++#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" ++#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" ++char ** ++prepare_spawn (char **argv) ++{ ++ size_t argc; ++ char **new_argv; ++ size_t i; ++ ++ /* Count number of arguments. */ ++ for (argc = 0; argv[argc] != NULL; argc++) ++ ; ++ ++ /* Allocate new argument vector. */ ++ new_argv = XMALLOC (char *, argc + 1); ++ ++ /* Put quoted arguments into the new argument vector. */ ++ for (i = 0; i < argc; i++) ++ { ++ const char *string = argv[i]; ++ ++ if (string[0] == '\0') ++ new_argv[i] = xstrdup ("\"\""); ++ else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) ++ { ++ int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); ++ size_t length; ++ unsigned int backslashes; ++ const char *s; ++ char *quoted_string; ++ char *p; ++ ++ length = 0; ++ backslashes = 0; ++ if (quote_around) ++ length++; ++ for (s = string; *s != '\0'; s++) ++ { ++ char c = *s; ++ if (c == '"') ++ length += backslashes + 1; ++ length++; ++ if (c == '\\') ++ backslashes++; ++ else ++ backslashes = 0; ++ } ++ if (quote_around) ++ length += backslashes + 1; + ++ quoted_string = XMALLOC (char, length + 1); ++ ++ p = quoted_string; ++ backslashes = 0; ++ if (quote_around) ++ *p++ = '"'; ++ for (s = string; *s != '\0'; s++) ++ { ++ char c = *s; ++ if (c == '"') ++ { ++ unsigned int j; ++ for (j = backslashes + 1; j > 0; j--) ++ *p++ = '\\'; ++ } ++ *p++ = c; ++ if (c == '\\') ++ backslashes++; ++ else ++ backslashes = 0; ++ } ++ if (quote_around) ++ { ++ unsigned int j; ++ for (j = backslashes; j > 0; j--) ++ *p++ = '\\'; ++ *p++ = '"'; ++ } ++ *p = '\0'; ++ ++ new_argv[i] = quoted_string; ++ } ++ else ++ new_argv[i] = (char *) string; ++ } ++ new_argv[argc] = NULL; ++ ++ return new_argv; ++} ++EOF ++ ;; ++ esac ++ ++ cat <<"EOF" ++void lt_dump_script (FILE* f) ++{ ++EOF ++ func_emit_wrapper yes | ++ $SED -e 's/\([\\"]\)/\\\1/g' \ ++ -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' ++ ++ cat <<"EOF" ++} + EOF + } + # end: func_emit_cwrapperexe_src + ++# func_win32_import_lib_p ARG ++# True if ARG is an import lib, as indicated by $file_magic_cmd ++func_win32_import_lib_p () ++{ ++ $opt_debug ++ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in ++ *import*) : ;; ++ *) false ;; ++ esac ++} ++ + # func_mode_link arg... + func_mode_link () + { +@@ -4072,6 +5121,7 @@ func_mode_link () + new_inherited_linker_flags= + + avoid_version=no ++ bindir= + dlfiles= + dlprefiles= + dlself=no +@@ -4164,6 +5214,11 @@ func_mode_link () + esac + + case $prev in ++ bindir) ++ bindir="$arg" ++ prev= ++ continue ++ ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. +@@ -4195,9 +5250,9 @@ func_mode_link () + ;; + *) + if test "$prev" = dlfiles; then +- dlfiles="$dlfiles $arg" ++ func_append dlfiles " $arg" + else +- dlprefiles="$dlprefiles $arg" ++ func_append dlprefiles " $arg" + fi + prev= + continue +@@ -4221,7 +5276,7 @@ func_mode_link () + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; +- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ++ *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; +@@ -4240,7 +5295,7 @@ func_mode_link () + moreargs= + for fil in `cat "$save_arg"` + do +-# moreargs="$moreargs $fil" ++# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + +@@ -4269,7 +5324,7 @@ func_mode_link () + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" ++ func_append dlfiles " $pic_object" + prev= + continue + else +@@ -4281,7 +5336,7 @@ func_mode_link () + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" ++ func_append dlprefiles " $pic_object" + prev= + fi + +@@ -4351,12 +5406,12 @@ func_mode_link () + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; +- *) rpath="$rpath $arg" ;; ++ *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; +- *) xrpath="$xrpath $arg" ;; ++ *) func_append xrpath " $arg" ;; + esac + fi + prev= +@@ -4368,28 +5423,28 @@ func_mode_link () + continue + ;; + weak) +- weak_libs="$weak_libs $arg" ++ func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) +- linker_flags="$linker_flags $qarg" +- compiler_flags="$compiler_flags $qarg" ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) +- compiler_flags="$compiler_flags $qarg" ++ func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) +- linker_flags="$linker_flags $qarg" +- compiler_flags="$compiler_flags $wl$qarg" ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" +@@ -4425,6 +5480,11 @@ func_mode_link () + continue + ;; + ++ -bindir) ++ prev=bindir ++ continue ++ ;; ++ + -dlopen) + prev=dlfiles + continue +@@ -4475,15 +5535,16 @@ func_mode_link () + ;; + + -L*) +- func_stripname '-L' '' "$arg" +- dir=$func_stripname_result +- if test -z "$dir"; then ++ func_stripname "-L" '' "$arg" ++ if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi ++ func_resolve_sysroot "$func_stripname_result" ++ dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; +@@ -4495,24 +5556,30 @@ func_mode_link () + ;; + esac + case "$deplibs " in +- *" -L$dir "*) ;; ++ *" -L$dir "* | *" $arg "*) ++ # Will only happen for absolute or sysroot arguments ++ ;; + *) +- deplibs="$deplibs -L$dir" +- lib_search_path="$lib_search_path $dir" ++ # Preserve sysroot, but never include relative directories ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; ++ *) func_append deplibs " -L$dir" ;; ++ esac ++ func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) +- testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` ++ testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; +- *) dllsearchpath="$dllsearchpath:$dir";; ++ *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; ++ *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac +@@ -4522,7 +5589,7 @@ func_mode_link () + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; +@@ -4536,7 +5603,7 @@ func_mode_link () + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework +- deplibs="$deplibs System.ltframework" ++ func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) +@@ -4556,7 +5623,7 @@ func_mode_link () + ;; + esac + fi +- deplibs="$deplibs $arg" ++ func_append deplibs " $arg" + continue + ;; + +@@ -4568,8 +5635,8 @@ func_mode_link () + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. +- -model|-arch|-isysroot) +- compiler_flags="$compiler_flags $arg" ++ -model|-arch|-isysroot|--sysroot) ++ func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler +@@ -4577,12 +5644,12 @@ func_mode_link () + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) +- compiler_flags="$compiler_flags $arg" ++ func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; ++ * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; +@@ -4649,13 +5716,17 @@ func_mode_link () + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; ++ =*) ++ func_stripname '=' '' "$dir" ++ dir=$lt_sysroot$func_stripname_result ++ ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; +- *) xrpath="$xrpath $dir" ;; ++ *) func_append xrpath " $dir" ;; + esac + continue + ;; +@@ -4708,8 +5779,8 @@ func_mode_link () + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- arg="$arg $wl$func_quote_for_eval_result" +- compiler_flags="$compiler_flags $func_quote_for_eval_result" ++ func_append arg " $func_quote_for_eval_result" ++ func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" +@@ -4724,9 +5795,9 @@ func_mode_link () + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- arg="$arg $wl$func_quote_for_eval_result" +- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" +- linker_flags="$linker_flags $func_quote_for_eval_result" ++ func_append arg " $wl$func_quote_for_eval_result" ++ func_append compiler_flags " $wl$func_quote_for_eval_result" ++ func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" +@@ -4754,23 +5825,27 @@ func_mode_link () + arg="$func_quote_for_eval_result" + ;; + +- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler +- # -r[0-9][0-9]* specifies the processor on the SGI compiler +- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler +- # +DA*, +DD* enable 64-bit mode on the HP compiler +- # -q* pass through compiler args for the IBM compiler +- # -m*, -t[45]*, -txscale* pass through architecture-specific +- # compiler args for GCC +- # -F/path gives path to uninstalled frameworks, gcc on darwin +- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC +- # @file GCC response files ++ # Flags to be passed through unchanged, with rationale: ++ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler ++ # -r[0-9][0-9]* specify processor for the SGI compiler ++ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler ++ # +DA*, +DD* enable 64-bit mode for the HP compiler ++ # -q* compiler args for the IBM compiler ++ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC ++ # -F/path path to uninstalled frameworks, gcc on darwin ++ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC ++ # @file GCC response files ++ # -tp=* Portland pgcc target processor selection ++ # --sysroot=* for sysroot support ++ # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ +- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ ++ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" +- compiler_flags="$compiler_flags $arg" ++ func_append compiler_flags " $arg" + continue + ;; + +@@ -4782,7 +5857,7 @@ func_mode_link () + + *.$objext) + # A standard object. +- objs="$objs $arg" ++ func_append objs " $arg" + ;; + + *.lo) +@@ -4813,7 +5888,7 @@ func_mode_link () + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" ++ func_append dlfiles " $pic_object" + prev= + continue + else +@@ -4825,7 +5900,7 @@ func_mode_link () + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" ++ func_append dlprefiles " $pic_object" + prev= + fi + +@@ -4870,24 +5945,25 @@ func_mode_link () + + *.$libext) + # An archive. +- deplibs="$deplibs $arg" +- old_deplibs="$old_deplibs $arg" ++ func_append deplibs " $arg" ++ func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + ++ func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. +- dlfiles="$dlfiles $arg" ++ func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. +- dlprefiles="$dlprefiles $arg" ++ func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else +- deplibs="$deplibs $arg" ++ func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; +@@ -4925,7 +6001,7 @@ func_mode_link () + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var +- eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi +@@ -4934,6 +6010,8 @@ func_mode_link () + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" ++ func_to_tool_file "$output_objdir/" ++ tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + +@@ -4954,12 +6032,12 @@ func_mode_link () + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do +- if $opt_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- libs="$libs $deplib" ++ func_append libs " $deplib" + done + + if test "$linkmode" = lib; then +@@ -4972,9 +6050,9 @@ func_mode_link () + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in +- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; ++ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac +- pre_post_deps="$pre_post_deps $pre_post_dep" ++ func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= +@@ -5044,17 +6122,19 @@ func_mode_link () + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= ++ func_resolve_sysroot "$lib" + case $lib in +- *.la) func_source "$lib" ;; ++ *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do +- deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` ++ func_basename "$deplib" ++ deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; +- *) deplibs="$deplibs $deplib" ;; ++ *) func_append deplibs " $deplib" ;; + esac + done + done +@@ -5075,11 +6155,11 @@ func_mode_link () + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- compiler_flags="$compiler_flags $deplib" ++ func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi +@@ -5164,7 +6244,7 @@ func_mode_link () + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi +@@ -5177,7 +6257,8 @@ func_mode_link () + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then +@@ -5191,7 +6272,8 @@ func_mode_link () + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" +@@ -5202,17 +6284,21 @@ func_mode_link () + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" +- dir=$func_stripname_result ++ func_resolve_sysroot "$func_stripname_result" ++ dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; +- *) xrpath="$xrpath $dir" ;; ++ *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; +- *.la) lib="$deplib" ;; ++ *.la) ++ func_resolve_sysroot "$deplib" ++ lib=$func_resolve_sysroot_result ++ ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" +@@ -5230,7 +6316,7 @@ func_mode_link () + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` +- if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ ++ if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi +@@ -5240,15 +6326,15 @@ func_mode_link () + ;; + esac + if test "$valid_a_lib" != yes; then +- $ECHO ++ echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." +- $ECHO "*** I have the capability to make that library automatically link in when" +- $ECHO "*** you link to this library. But I can only do this if you have a" +- $ECHO "*** shared version of the library, which you do not appear to have" +- $ECHO "*** because the file extensions .$libext of this argument makes me believe" +- $ECHO "*** that it is just a static archive that I should not use here." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because the file extensions .$libext of this argument makes me believe" ++ echo "*** that it is just a static archive that I should not use here." + else +- $ECHO ++ echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" +@@ -5275,11 +6361,11 @@ func_mode_link () + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. +- newdlprefiles="$newdlprefiles $deplib" ++ func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- newdlfiles="$newdlfiles $deplib" ++ func_append newdlfiles " $deplib" + fi + fi + continue +@@ -5321,20 +6407,20 @@ func_mode_link () + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then +- tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; ++ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi +- dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then +- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" +- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ test -n "$dlopen" && func_append dlfiles " $dlopen" ++ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then +@@ -5345,17 +6431,17 @@ func_mode_link () + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. +- convenience="$convenience $ladir/$objdir/$old_library" +- old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ func_append convenience " $ladir/$objdir/$old_library" ++ func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" +- if $opt_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ func_append tmp_libs " $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" +@@ -5366,9 +6452,15 @@ func_mode_link () + + # Get the name of the library we link against. + linklib= +- for l in $old_library $library_names; do +- linklib="$l" +- done ++ if test -n "$old_library" && ++ { test "$prefer_static_libs" = yes || ++ test "$prefer_static_libs,$installed" = "built,no"; }; then ++ linklib=$old_library ++ else ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi +@@ -5385,9 +6477,9 @@ func_mode_link () + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. +- dlprefiles="$dlprefiles $lib $dependency_libs" ++ func_append dlprefiles " $lib $dependency_libs" + else +- newdlfiles="$newdlfiles $lib" ++ func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen +@@ -5409,14 +6501,14 @@ func_mode_link () + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then +- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else +- dir="$libdir" +- absdir="$libdir" ++ dir="$lt_sysroot$libdir" ++ absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else +@@ -5424,12 +6516,12 @@ func_mode_link () + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" +@@ -5440,20 +6532,46 @@ func_mode_link () + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi +- # Prefer using a static library (so that no silly _DYNAMIC symbols +- # are required to link). +- if test -n "$old_library"; then +- newdlprefiles="$newdlprefiles $dir/$old_library" +- # Keep a list of preopened convenience libraries to check +- # that they are being used correctly in the link pass. +- test -z "$libdir" && \ +- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" +- # Otherwise, use the dlname, so that lt_dlopen finds it. +- elif test -n "$dlname"; then +- newdlprefiles="$newdlprefiles $dir/$dlname" +- else +- newdlprefiles="$newdlprefiles $dir/$linklib" +- fi ++ case "$host" in ++ # special handling for platforms with PE-DLLs. ++ *cygwin* | *mingw* | *cegcc* ) ++ # Linker will automatically link against shared library if both ++ # static and shared are present. Therefore, ensure we extract ++ # symbols from the import library if a shared library is present ++ # (otherwise, the dlopen module name will be incorrect). We do ++ # this by putting the import library name into $newdlprefiles. ++ # We recover the dlopen module name by 'saving' the la file ++ # name in a special purpose variable, and (later) extracting the ++ # dlname from the la file. ++ if test -n "$dlname"; then ++ func_tr_sh "$dir/$linklib" ++ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" ++ func_append newdlprefiles " $dir/$linklib" ++ else ++ func_append newdlprefiles " $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ func_append dlpreconveniencelibs " $dir/$old_library" ++ fi ++ ;; ++ * ) ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ func_append newdlprefiles " $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ func_append dlpreconveniencelibs " $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ func_append newdlprefiles " $dir/$dlname" ++ else ++ func_append newdlprefiles " $dir/$linklib" ++ fi ++ ;; ++ esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then +@@ -5471,7 +6589,7 @@ func_mode_link () + + + if test "$linkmode" = prog && test "$pass" != link; then +- newlib_search_path="$newlib_search_path $ladir" ++ func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no +@@ -5484,7 +6602,8 @@ func_mode_link () + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? +@@ -5495,12 +6614,12 @@ func_mode_link () + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi +- if $opt_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... +@@ -5515,7 +6634,7 @@ func_mode_link () + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; +- *) temp_rpath="$temp_rpath$absdir:" ;; ++ *) func_append temp_rpath "$absdir:" ;; + esac + fi + +@@ -5527,7 +6646,7 @@ func_mode_link () + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" ++ *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac +@@ -5536,7 +6655,7 @@ func_mode_link () + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ++ *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac +@@ -5561,12 +6680,12 @@ func_mode_link () + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded +- notinst_deplibs="$notinst_deplibs $lib" ++ func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then +- notinst_deplibs="$notinst_deplibs $lib" ++ func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; +@@ -5583,7 +6702,7 @@ func_mode_link () + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then +- $ECHO ++ echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else +@@ -5601,7 +6720,7 @@ func_mode_link () + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" ++ *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac +@@ -5610,7 +6729,7 @@ func_mode_link () + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ++ *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac +@@ -5664,7 +6783,7 @@ func_mode_link () + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + +- if test "$linkmode" = prog || test "$mode" != relink; then ++ if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= +@@ -5686,9 +6805,9 @@ func_mode_link () + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then +- $ECHO +- $ECHO "*** And there doesn't seem to be a static archive available" +- $ECHO "*** The link will probably fail, sorry" ++ echo ++ echo "*** And there doesn't seem to be a static archive available" ++ echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi +@@ -5720,7 +6839,7 @@ func_mode_link () + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -5742,7 +6861,7 @@ func_mode_link () + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; +- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then +@@ -5756,13 +6875,13 @@ func_mode_link () + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + +- if test "$linkmode" = prog || test "$mode" = relink; then ++ if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= +@@ -5776,7 +6895,7 @@ func_mode_link () + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then +@@ -5793,7 +6912,7 @@ func_mode_link () + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -5828,21 +6947,21 @@ func_mode_link () + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. +- $ECHO ++ echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." +- $ECHO "*** I have the capability to make that library automatically link in when" +- $ECHO "*** you link to this library. But I can only do this if you have a" +- $ECHO "*** shared version of the library, which you do not appear to have." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then +- $ECHO "*** But as you try to build a module library, libtool will still create " +- $ECHO "*** a static module, that should work as long as the dlopening application" +- $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." ++ echo "*** But as you try to build a module library, libtool will still create " ++ echo "*** a static module, that should work as long as the dlopening application" ++ echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then +- $ECHO +- $ECHO "*** However, this would only work if libtool was able to extract symbol" +- $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" +- $ECHO "*** not find such a program. So, this module is probably useless." +- $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module +@@ -5870,27 +6989,33 @@ func_mode_link () + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; +- *) xrpath="$xrpath $temp_xrpath";; ++ *) func_append xrpath " $temp_xrpath";; + esac;; +- *) temp_deplibs="$temp_deplibs $libdir";; ++ *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + +- newlib_search_path="$newlib_search_path $absdir" ++ func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" +- if $opt_duplicate_deps ; then ++ case $deplib in ++ -L*) func_stripname '-L' '' "$deplib" ++ func_resolve_sysroot "$func_stripname_result";; ++ *) func_resolve_sysroot "$deplib" ;; ++ esac ++ if $opt_preserve_dup_deps ; then + case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $func_resolve_sysroot_result "*) ++ func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then +@@ -5900,8 +7025,10 @@ func_mode_link () + case $deplib in + -L*) path="$deplib" ;; + *.la) ++ func_resolve_sysroot "$deplib" ++ deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." +- dir="$func_dirname_result" ++ dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; +@@ -5928,8 +7055,8 @@ func_mode_link () + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi +- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" +- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" ++ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" ++ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi +@@ -5962,7 +7089,7 @@ func_mode_link () + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else +- compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" +@@ -5979,7 +7106,7 @@ func_mode_link () + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; +- *) lib_search_path="$lib_search_path $dir" ;; ++ *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= +@@ -6037,10 +7164,10 @@ func_mode_link () + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; +- *) tmp_libs="$tmp_libs $deplib" ;; ++ *) func_append tmp_libs " $deplib" ;; + esac + ;; +- *) tmp_libs="$tmp_libs $deplib" ;; ++ *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" +@@ -6056,7 +7183,7 @@ func_mode_link () + ;; + esac + if test -n "$i" ; then +- tmp_libs="$tmp_libs $i" ++ func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs +@@ -6097,7 +7224,7 @@ func_mode_link () + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" +- objs="$objs$old_deplibs" ++ func_append objs "$old_deplibs" + ;; + + lib) +@@ -6130,10 +7257,10 @@ func_mode_link () + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else +- $ECHO ++ echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" +- libobjs="$libobjs $objs" ++ func_append libobjs " $objs" + fi + fi + +@@ -6198,7 +7325,7 @@ func_mode_link () + age="$number_minor" + revision="$number_revision" + ;; +- freebsd-aout|freebsd-elf|sunos) ++ freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" +@@ -6334,7 +7461,7 @@ func_mode_link () + done + + # Make executables depend on our current version. +- verstring="$verstring:${current}.0" ++ func_append verstring ":${current}.0" + ;; + + qnx) +@@ -6402,10 +7529,10 @@ func_mode_link () + fi + + func_generate_dlsyms "$libname" "$libname" "yes" +- libobjs="$libobjs $symfileobj" ++ func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + +- if test "$mode" != relink; then ++ if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= +@@ -6421,7 +7548,7 @@ func_mode_link () + continue + fi + fi +- removelist="$removelist $p" ++ func_append removelist " $p" + ;; + *) ;; + esac +@@ -6432,27 +7559,28 @@ func_mode_link () + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then +- oldlibs="$oldlibs $output_objdir/$libname.$libext" ++ func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. +- oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` ++ oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do +- # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` +- # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` +- # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` ++ # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` ++ # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` ++ # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do +- temp_xrpath="$temp_xrpath -R$libdir" ++ func_replace_sysroot "$libdir" ++ func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ;; ++ *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then +@@ -6466,7 +7594,7 @@ func_mode_link () + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; +- *) dlfiles="$dlfiles $lib" ;; ++ *) func_append dlfiles " $lib" ;; + esac + done + +@@ -6476,19 +7604,19 @@ func_mode_link () + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; +- *) dlprefiles="$dlprefiles $lib" ;; ++ *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework +- deplibs="$deplibs System.ltframework" ++ func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. +@@ -6505,7 +7633,7 @@ func_mode_link () + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then +- deplibs="$deplibs -lc" ++ func_append deplibs " -lc" + fi + ;; + esac +@@ -6554,7 +7682,7 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + i="" + ;; + esac +@@ -6565,21 +7693,21 @@ EOF + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + else + droppeddeps=yes +- $ECHO ++ echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." +- $ECHO "*** I have the capability to make that library automatically link in when" +- $ECHO "*** you link to this library. But I can only do this if you have a" +- $ECHO "*** shared version of the library, which I believe you do not have" +- $ECHO "*** because a test_compile did reveal that the linker did not use it for" +- $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which I believe you do not have" ++ echo "*** because a test_compile did reveal that the linker did not use it for" ++ echo "*** its dynamic dependency list that programs get resolved with at runtime." + fi + fi + ;; + *) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + ;; + esac + done +@@ -6597,7 +7725,7 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + i="" + ;; + esac +@@ -6608,29 +7736,29 @@ EOF + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + else + droppeddeps=yes +- $ECHO ++ echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." +- $ECHO "*** I have the capability to make that library automatically link in when" +- $ECHO "*** you link to this library. But I can only do this if you have a" +- $ECHO "*** shared version of the library, which you do not appear to have" +- $ECHO "*** because a test_compile did reveal that the linker did not use this one" +- $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because a test_compile did reveal that the linker did not use this one" ++ echo "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + fi + else + droppeddeps=yes +- $ECHO ++ echo + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" +- $ECHO "*** make it link in! You will probably need to install it or some" +- $ECHO "*** library that it depends on before this library will be fully" +- $ECHO "*** functional. Installing it before continuing would be even better." ++ echo "*** make it link in! You will probably need to install it or some" ++ echo "*** library that it depends on before this library will be fully" ++ echo "*** functional. Installing it before continuing would be even better." + fi + ;; + *) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + ;; + esac + done +@@ -6647,15 +7775,27 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` ++ if test -n "$file_magic_glob"; then ++ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` ++ else ++ libnameglob=$libname ++ fi ++ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do +- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ if test "$want_nocaseglob" = yes; then ++ shopt -s nocaseglob ++ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` ++ $nocaseglob ++ else ++ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` ++ fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | +@@ -6672,13 +7812,13 @@ EOF + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; +- *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; ++ *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi +@@ -6687,12 +7827,12 @@ EOF + fi + if test -n "$a_deplib" ; then + droppeddeps=yes +- $ECHO ++ echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." +- $ECHO "*** I have the capability to make that library automatically link in when" +- $ECHO "*** you link to this library. But I can only do this if you have a" +- $ECHO "*** shared version of the library, which you do not appear to have" +- $ECHO "*** because I did check the linker path looking for a file starting" ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else +@@ -6703,7 +7843,7 @@ EOF + ;; + *) + # Add a -L argument. +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. +@@ -6719,7 +7859,7 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac +@@ -6730,9 +7870,9 @@ EOF + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test +- if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ ++ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi +@@ -6741,12 +7881,12 @@ EOF + fi + if test -n "$a_deplib" ; then + droppeddeps=yes +- $ECHO ++ echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." +- $ECHO "*** I have the capability to make that library automatically link in when" +- $ECHO "*** you link to this library. But I can only do this if you have a" +- $ECHO "*** shared version of the library, which you do not appear to have" +- $ECHO "*** because I did check the linker path looking for a file starting" ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else +@@ -6757,32 +7897,32 @@ EOF + ;; + *) + # Add a -L argument. +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" +- tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ +- -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` ++ tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' +- tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` ++ tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi +- if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | +- $GREP . >/dev/null; then +- $ECHO ++ case $tmp_deplibs in ++ *[!\ \ ]*) ++ echo + if test "X$deplibs_check_method" = "Xnone"; then +- $ECHO "*** Warning: inter-library dependencies are not supported in this platform." ++ echo "*** Warning: inter-library dependencies are not supported in this platform." + else +- $ECHO "*** Warning: inter-library dependencies are not known to be supported." ++ echo "*** Warning: inter-library dependencies are not known to be supported." + fi +- $ECHO "*** All declared inter-library dependencies are being dropped." ++ echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes +- fi ++ ;; ++ esac + ;; + esac + versuffix=$versuffix_save +@@ -6794,23 +7934,23 @@ EOF + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework +- newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then +- $ECHO +- $ECHO "*** Warning: libtool could not satisfy all declared inter-library" ++ echo ++ echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" +- $ECHO "*** a static module, that should work as long as the dlopening" +- $ECHO "*** application is linked with the -dlopen flag." ++ echo "*** a static module, that should work as long as the dlopening" ++ echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then +- $ECHO +- $ECHO "*** However, this would only work if libtool was able to extract symbol" +- $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" +- $ECHO "*** not find such a program. So, this module is probably useless." +- $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" +@@ -6820,16 +7960,16 @@ EOF + build_libtool_libs=no + fi + else +- $ECHO "*** The inter-library dependencies that have been dropped here will be" +- $ECHO "*** automatically added whenever a program is linked with this library" +- $ECHO "*** or is declared to -dlopen it." ++ echo "*** The inter-library dependencies that have been dropped here will be" ++ echo "*** automatically added whenever a program is linked with this library" ++ echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then +- $ECHO +- $ECHO "*** Since this library must not contain undefined symbols," +- $ECHO "*** because either the platform does not support them or" +- $ECHO "*** it was explicitly requested with -no-undefined," +- $ECHO "*** libtool will only create a static version of it." ++ echo ++ echo "*** Since this library must not contain undefined symbols," ++ echo "*** because either the platform does not support them or" ++ echo "*** it was explicitly requested with -no-undefined," ++ echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module +@@ -6846,9 +7986,9 @@ EOF + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) +- newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` +- new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` +- deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + +@@ -6861,7 +8001,7 @@ EOF + *) + case " $deplibs " in + *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; ++ func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac +@@ -6871,10 +8011,10 @@ EOF + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" +@@ -6891,10 +8031,12 @@ EOF + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" +- test "$mode" != relink && rpath="$compile_rpath$rpath" ++ test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else +@@ -6903,18 +8045,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- dep_rpath="$dep_rpath $flag" ++ func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) perm_rpath="$perm_rpath $libdir" ;; ++ *) func_apped perm_rpath " $libdir" ;; + esac + fi + done +@@ -6932,7 +8074,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi +@@ -6940,7 +8082,7 @@ EOF + fi + + shlibpath="$finalize_shlibpath" +- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi +@@ -6966,18 +8108,18 @@ EOF + linknames= + for link + do +- linknames="$linknames $link" ++ func_append linknames " $link" + done + + # Use standard objects if they are pic +- test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" +- delfiles="$delfiles $export_symbols" ++ func_append delfiles " $export_symbols" + fi + + orig_export_symbols= +@@ -7008,13 +8150,45 @@ EOF + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do ++ for cmd1 in $cmds; do + IFS="$save_ifs" +- eval cmd=\"$cmd\" +- func_len " $cmd" +- len=$func_len_result +- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ # Take the normal branch if the nm_file_list_spec branch ++ # doesn't work or if tool conversion is not needed. ++ case $nm_file_list_spec~$to_tool_file_cmd in ++ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) ++ try_normal_branch=yes ++ eval cmd=\"$cmd1\" ++ func_len " $cmd" ++ len=$func_len_result ++ ;; ++ *) ++ try_normal_branch=no ++ ;; ++ esac ++ if test "$try_normal_branch" = yes \ ++ && { test "$len" -lt "$max_cmd_len" \ ++ || test "$max_cmd_len" -le -1; } ++ then ++ func_show_eval "$cmd" 'exit $?' ++ skipped_export=false ++ elif test -n "$nm_file_list_spec"; then ++ func_basename "$output" ++ output_la=$func_basename_result ++ save_libobjs=$libobjs ++ save_output=$output ++ output=${output_objdir}/${output_la}.nm ++ func_to_tool_file "$output" ++ libobjs=$nm_file_list_spec$func_to_tool_file_result ++ func_append delfiles " $output" ++ func_verbose "creating $NM input file list: $output" ++ for obj in $save_libobjs; do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" ++ done > "$output" ++ eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' ++ output=$save_output ++ libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. +@@ -7036,7 +8210,7 @@ EOF + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" +- $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' ++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then +@@ -7048,7 +8222,7 @@ EOF + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter +- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi +@@ -7058,7 +8232,7 @@ EOF + case " $convenience " in + *" $test_deplib "*) ;; + *) +- tmp_deplibs="$tmp_deplibs $test_deplib" ++ func_append tmp_deplibs " $test_deplib" + ;; + esac + done +@@ -7078,21 +8252,21 @@ EOF + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $convenience +- libobjs="$libobjs $func_extract_archives_result" ++ func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" +- linker_flags="$linker_flags $flag" ++ func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + +@@ -7137,7 +8311,8 @@ EOF + save_libobjs=$libobjs + fi + save_output=$output +- output_la=`$ECHO "X$output" | $Xsed -e "$basename"` ++ func_basename "$output" ++ output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. +@@ -7150,13 +8325,16 @@ EOF + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" +- $ECHO 'INPUT (' > $output ++ echo 'INPUT (' > $output + for obj in $save_libobjs + do +- $ECHO "$obj" >> $output ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output + done +- $ECHO ')' >> $output +- delfiles="$delfiles $output" ++ echo ')' >> $output ++ func_append delfiles " $output" ++ func_to_tool_file "$output" ++ output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" +@@ -7170,10 +8348,12 @@ EOF + fi + for obj + do +- $ECHO "$obj" >> $output ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output + done +- delfiles="$delfiles $output" +- output=$firstobj\"$file_list_spec$output\" ++ func_append delfiles " $output" ++ func_to_tool_file "$output" ++ output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." +@@ -7197,17 +8377,19 @@ EOF + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. +- eval concat_cmds=\"$reload_cmds $objlist $last_robj\" ++ reload_objs=$objlist ++ eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. +- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" ++ reload_objs="$objlist $last_robj" ++ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext +- objlist=$obj ++ objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result +@@ -7217,11 +8399,12 @@ EOF + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ +- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" ++ reload_objs="$objlist $last_robj" ++ eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi +- delfiles="$delfiles $output" ++ func_append delfiles " $output" + + else + output= +@@ -7255,7 +8438,7 @@ EOF + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -7276,7 +8459,7 @@ EOF + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" +- $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' ++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then +@@ -7288,7 +8471,7 @@ EOF + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter +- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi +@@ -7329,10 +8512,10 @@ EOF + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles +- libobjs="$libobjs $func_extract_archives_result" ++ func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + +@@ -7348,7 +8531,7 @@ EOF + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -7360,7 +8543,7 @@ EOF + IFS="$save_ifs" + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then +@@ -7441,18 +8624,21 @@ EOF + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" +- reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` ++ reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + ++ # If we're not building shared, we need to use non_pic_objs ++ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" ++ + # Create the old-style object. +- reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test ++ reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' +@@ -7512,8 +8698,8 @@ EOF + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework +- compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` +- finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` ++ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + +@@ -7524,14 +8710,14 @@ EOF + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) +- compile_command="$compile_command ${wl}-bind_at_load" +- finalize_command="$finalize_command ${wl}-bind_at_load" ++ func_append compile_command " ${wl}-bind_at_load" ++ func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" +- compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` +- finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ++ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + +@@ -7545,7 +8731,7 @@ EOF + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; ++ func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac +@@ -7555,17 +8741,17 @@ EOF + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + +- compile_command="$compile_command $compile_deplibs" +- finalize_command="$finalize_command $finalize_deplibs" ++ func_append compile_command " $compile_deplibs" ++ func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. +@@ -7573,7 +8759,7 @@ EOF + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ;; ++ *) func_append finalize_rpath " $libdir" ;; + esac + done + fi +@@ -7592,18 +8778,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- rpath="$rpath $flag" ++ func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) perm_rpath="$perm_rpath $libdir" ;; ++ *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in +@@ -7612,12 +8798,12 @@ EOF + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; +- *) dllsearchpath="$dllsearchpath:$libdir";; ++ *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; ++ *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac +@@ -7643,18 +8829,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" +- rpath="$rpath $flag" ++ func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; +- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; ++ *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done +@@ -7668,8 +8854,8 @@ EOF + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. +- compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` +- finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` ++ finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" +@@ -7681,15 +8867,15 @@ EOF + + wrappers_required=yes + case $host in ++ *cegcc* | *mingw32ce*) ++ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. ++ wrappers_required=no ++ ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; +- *cegcc) +- # Disable wrappers for cegcc, we are cross compiling anyway. +- wrappers_required=no +- ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no +@@ -7698,13 +8884,19 @@ EOF + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. +- compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' +@@ -7727,7 +8919,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -7735,7 +8927,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -7745,11 +8937,18 @@ EOF + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. +- link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' ++ ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ + exit $EXIT_SUCCESS + fi + +@@ -7764,7 +8963,7 @@ EOF + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then +- relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` ++ relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= +@@ -7776,13 +8975,19 @@ EOF + fi + + # Replace the output file specification. +- link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output_objdir/$outputname" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ + # Now create the wrapper script. + func_verbose "creating $output" + +@@ -7800,18 +9005,7 @@ EOF + fi + done + relink_command="(cd `pwd`; $relink_command)" +- relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` +- fi +- +- # Quote $ECHO for shipping. +- if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then +- case $progpath in +- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; +- *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; +- esac +- qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` +- else +- qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` ++ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. +@@ -7891,7 +9085,7 @@ EOF + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then +- oldobjs="$oldobjs $symfileobj" ++ func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" +@@ -7899,10 +9093,10 @@ EOF + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $addlibs +- oldobjs="$oldobjs $func_extract_archives_result" ++ func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. +@@ -7913,10 +9107,10 @@ EOF + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles +- oldobjs="$oldobjs $func_extract_archives_result" ++ func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have +@@ -7932,9 +9126,9 @@ EOF + done | sort | sort -uc >/dev/null 2>&1); then + : + else +- $ECHO "copying selected object files to avoid basename conflicts..." ++ echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= +@@ -7958,9 +9152,9 @@ EOF + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" +- oldobjs="$oldobjs $gentop/$newobj" ++ func_append oldobjs " $gentop/$newobj" + ;; +- *) oldobjs="$oldobjs $obj" ;; ++ *) func_append oldobjs " $obj" ;; + esac + done + fi +@@ -7970,6 +9164,16 @@ EOF + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds ++ elif test -n "$archiver_list_spec"; then ++ func_verbose "using command file archive linking..." ++ for obj in $oldobjs ++ do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" ++ done > $output_objdir/$libname.libcmd ++ func_to_tool_file "$output_objdir/$libname.libcmd" ++ oldobjs=" $archiver_list_spec$func_to_tool_file_result" ++ cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." +@@ -8043,7 +9247,7 @@ EOF + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" +- relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi +@@ -8066,9 +9270,19 @@ EOF + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" +- newdependency_libs="$newdependency_libs $libdir/$name" ++ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ++ ;; ++ -L*) ++ func_stripname -L '' "$deplib" ++ func_replace_sysroot "$func_stripname_result" ++ func_append newdependency_libs " -L$func_replace_sysroot_result" ++ ;; ++ -R*) ++ func_stripname -R '' "$deplib" ++ func_replace_sysroot "$func_stripname_result" ++ func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; +- *) newdependency_libs="$newdependency_libs $deplib" ;; ++ *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" +@@ -8082,9 +9296,9 @@ EOF + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- newdlfiles="$newdlfiles $libdir/$name" ++ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; +- *) newdlfiles="$newdlfiles $lib" ;; ++ *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" +@@ -8101,7 +9315,7 @@ EOF + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- newdlprefiles="$newdlprefiles $libdir/$name" ++ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done +@@ -8113,7 +9327,7 @@ EOF + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- newdlfiles="$newdlfiles $abs" ++ func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= +@@ -8122,15 +9336,33 @@ EOF + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- newdlprefiles="$newdlprefiles $abs" ++ func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin ++ # In fact, it would be nice if we could use this code for all target ++ # systems that can't hard-code library paths into their executables ++ # and that have no shared library path variable independent of PATH, ++ # but it turns out we can't easily determine that from inspecting ++ # libtool variables, so we have to hard-code the OSs to which it ++ # applies here; at the moment, that means platforms that use the PE ++ # object format with DLL files. See the long comment at the top of ++ # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in +- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) ++ # If a -bindir argument was supplied, place the dll there. ++ if test "x$bindir" != x ; ++ then ++ func_relative_path "$install_libdir" "$bindir" ++ tdlname=$func_relative_path_result$dlname ++ else ++ # Otherwise fall back on heuristic. ++ tdlname=../bin/$dlname ++ fi ++ ;; + esac + $ECHO > $output "\ + # $outputname - a libtool library file +@@ -8189,7 +9421,7 @@ relink_command=\"$relink_command\"" + exit $EXIT_SUCCESS + } + +-{ test "$mode" = link || test "$mode" = relink; } && ++{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +@@ -8209,9 +9441,9 @@ func_mode_uninstall () + for arg + do + case $arg in +- -f) RM="$RM $arg"; rmforce=yes ;; +- -*) RM="$RM $arg" ;; +- *) files="$files $arg" ;; ++ -f) func_append RM " $arg"; rmforce=yes ;; ++ -*) func_append RM " $arg" ;; ++ *) func_append files " $arg" ;; + esac + done + +@@ -8220,24 +9452,23 @@ func_mode_uninstall () + + rmdirs= + +- origobjdir="$objdir" + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then +- objdir="$origobjdir" ++ odir="$objdir" + else +- objdir="$dir/$origobjdir" ++ odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" +- test "$mode" = uninstall && objdir="$dir" ++ test "$opt_mode" = uninstall && odir="$dir" + +- # Remember objdir for removal later, being careful to avoid duplicates +- if test "$mode" = clean; then ++ # Remember odir for removal later, being careful to avoid duplicates ++ if test "$opt_mode" = clean; then + case " $rmdirs " in +- *" $objdir "*) ;; +- *) rmdirs="$rmdirs $objdir" ;; ++ *" $odir "*) ;; ++ *) func_append rmdirs " $odir" ;; + esac + fi + +@@ -8263,18 +9494,17 @@ func_mode_uninstall () + + # Delete the libtool libraries and symlinks. + for n in $library_names; do +- rmfiles="$rmfiles $objdir/$n" ++ func_append rmfiles " $odir/$n" + done +- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test -n "$old_library" && func_append rmfiles " $odir/$old_library" + +- case "$mode" in ++ case "$opt_mode" in + clean) +- case " $library_names " in +- # " " in the beginning catches empty $dlname ++ case " $library_names " in + *" $dlname "*) ;; +- *) rmfiles="$rmfiles $objdir/$dlname" ;; ++ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac +- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then +@@ -8302,19 +9532,19 @@ func_mode_uninstall () + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then +- rmfiles="$rmfiles $dir/$pic_object" ++ func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then +- rmfiles="$rmfiles $dir/$non_pic_object" ++ func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) +- if test "$mode" = clean ; then ++ if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) +@@ -8324,7 +9554,7 @@ func_mode_uninstall () + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe +- rmfiles="$rmfiles $file" ++ func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. +@@ -8333,7 +9563,7 @@ func_mode_uninstall () + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result +- rmfiles="$rmfiles $func_ltwrapper_scriptname_result" ++ func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename +@@ -8341,12 +9571,12 @@ func_mode_uninstall () + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles +- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then +- rmfiles="$rmfiles $objdir/lt-$name" ++ func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then +- rmfiles="$rmfiles $objdir/lt-${noexename}.c" ++ func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi +@@ -8354,7 +9584,6 @@ func_mode_uninstall () + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done +- objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do +@@ -8366,16 +9595,16 @@ func_mode_uninstall () + exit $exit_status + } + +-{ test "$mode" = uninstall || test "$mode" = clean; } && ++{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +-test -z "$mode" && { ++test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" + } + + test -z "$exec_cmd" && \ +- func_fatal_help "invalid operation mode \`$mode'" ++ func_fatal_help "invalid operation mode \`$opt_mode'" + + if test -n "$exec_cmd"; then + eval exec "$exec_cmd" +-- +cgit diff --git a/extra/xfprint/PKGBUILD b/extra/xfprint/PKGBUILD index a5c9317c3..984dec831 100644 --- a/extra/xfprint/PKGBUILD +++ b/extra/xfprint/PKGBUILD @@ -1,21 +1,21 @@ -# $Id: PKGBUILD 85560 2010-07-15 21:39:23Z andyrtr $ +# $Id: PKGBUILD 122851 2011-05-06 14:01:10Z stephane $ # Maintainer: Tobias Kieslich <tobias funnychar archlinux.org> pkgname=xfprint pkgver=4.6.1 -pkgrel=4 +pkgrel=5 pkgdesc="A print dialog and a printer manager for Xfce" arch=(i686 x86_64 'mips64el') license=('GPL2') url="http://www.xfce.org/" groups=('xfce4') -depends=("libxfcegui4>=$pkgver" "xfconf>=$pkgver" 'libcups>=1.3.10' 'a2ps' 'heimdal>=1.3.1' +depends=("libxfcegui4>=$pkgver" "xfconf>=$pkgver" 'libcups>=1.3.10' 'a2ps' 'krb5' 'gnutls>=2.6.5' 'hicolor-icon-theme') makedepends=('pkgconfig' 'intltool') options=('!libtool') install=${pkgname}.install -source=(http://www.xfce.org/archive/xfce-${pkgver}/src/${pkgname}-${pkgver}.tar.bz2 - xfprint-manager-fix.diff) +source=(http://archive.xfce.org/xfce/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2 + xfprint-manager-fix.diff) md5sums=('d92fca97a42816085080baf07a99a62e' '69b3619a285e94d602a1d0ac08f4ca06') diff --git a/libre/libretools/PKGBUILD b/libre/libretools/PKGBUILD index 29e055afe..7f859fa3f 100644 --- a/libre/libretools/PKGBUILD +++ b/libre/libretools/PKGBUILD @@ -42,7 +42,9 @@ package() { install -m755 ${_gitname}/abslibre-commit ${pkgdir}/usr/bin install -m755 ${_gitname}/add-mips64el ${pkgdir}/usr/bin + install -m755 ${_gitname}/aur ${pkgdir}/usr/bin install -m755 ${_gitname}/createworkdir ${pkgdir}/usr/bin/ + install -m755 ${_gitname}/diff-unfree ${pkgdir}/usr/bin install -m755 ${_gitname}/fullpkg ${pkgdir}/usr/bin install -m755 ${_gitname}/is_built ${pkgdir}/usr/bin install -m755 ${_gitname}/librechroot ${pkgdir}/usr/bin/ diff --git a/multilib-testing/binutils-multilib/PKGBUILD b/multilib-testing/binutils-multilib/PKGBUILD new file mode 100644 index 000000000..78be6ccc6 --- /dev/null +++ b/multilib-testing/binutils-multilib/PKGBUILD @@ -0,0 +1,81 @@ +# $Id: PKGBUILD 46786 2011-05-11 15:43:26Z heftig $ +# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com> +# Contributor: Allan McRae <allan@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc + +pkgname=binutils-multilib +pkgver=2.21 +pkgrel=8 +_date=20110430 +pkgdesc="A set of programs to assemble and manipulate binary and object files for multilib" +arch=('x86_64') +url="http://www.gnu.org/software/binutils/" +license=('GPL') +groups=('multilib-devel') +provides=("binutils=$pkgver-$pkgrel") +conflicts=('binutils') +depends=('glibc>=2.13' 'zlib') +makedepends=('dejagnu' 'gcc-multilib') # Make sure we compile this with gcc-multilib +options=('!libtool' '!distcc' '!ccache') +install=binutils.install +source=(http://mirrors.kernel.org/archlinux/other/binutils/binutils-${pkgver}_${_date}.tar.bz2 + binutils-2.21-strip-segfault.patch) +md5sums=('7b3e28fb35cb8bb371cc47291e1c6dec' + '98e8dfaf1c0ededa586823ebfb27825a') + +build() { + cd ${srcdir}/binutils + # http://sourceware.org/bugzilla/show_bug.cgi?id=12632 + patch -Np1 -i $srcdir/binutils-2.21-strip-segfault.patch + + cd ${srcdir} + mkdir binutils-build && cd binutils-build + + ${srcdir}/binutils/configure --prefix=/usr \ + --enable-ld=default --enable-gold \ + --enable-plugins --enable-threads \ + --enable-shared \ + --enable-64-bit-bfd --enable-multilib + + # This checks the host environment and makes sure all the necessary tools are available to compile Binutils. + make configure-host + + make tooldir=${pkgdir}/usr +} + +check() { + cd ${srcdir}/binutils-build + + # do not abort on errors - manually check log files + make -k -j1 check || true +} + +package() { + cd ${srcdir}/binutils-build + make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install + + # Add some useful headers + install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include + install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include + + # Rebuild libiberty.a with -fPIC + make -C libiberty clean + make CFLAGS="$CFLAGS -fPIC" -C libiberty + install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib + + # Rebuild libbfd.a with -fPIC + make -C bfd clean + # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API + make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd + install -m644 bfd/libbfd.a ${pkgdir}/usr/lib + + # Remove Windows/Novell specific man pages + rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* + + # Remove these symlinks, they are not ABI stable. + # Programs should compile static to the .a file. + rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so + echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so + echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so +} diff --git a/multilib-testing/binutils-multilib/binutils-2.21-strip-segfault.patch b/multilib-testing/binutils-multilib/binutils-2.21-strip-segfault.patch new file mode 100644 index 000000000..0133d879b --- /dev/null +++ b/multilib-testing/binutils-multilib/binutils-2.21-strip-segfault.patch @@ -0,0 +1,96 @@ +diff --git a/binutils/objcopy.c b/binutils/objcopy.c +index 15c4f95..b64f3d0 100644 +--- a/binutils/objcopy.c ++++ b/binutils/objcopy.c +@@ -1,6 +1,6 @@ + /* objcopy.c -- copy object file from input to output, optionally massaging it. + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ++ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 + Free Software Foundation, Inc. + + This file is part of GNU Binutils. +@@ -2024,6 +2024,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target, + struct stat buf; + int stat_status = 0; + bfd_boolean del = TRUE; ++ bfd_boolean ok_object; + + /* Create an output file for this member. */ + output_name = concat (dir, "/", +@@ -2061,44 +2062,42 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target, + l->obfd = NULL; + list = l; + +- if (bfd_check_format (this_element, bfd_object)) ++ ok_object = bfd_check_format (this_element, bfd_object); ++ if (!ok_object) ++ bfd_nonfatal_message (NULL, this_element, NULL, ++ _("Unable to recognise the format of file")); ++ ++ /* PR binutils/3110: Cope with archives ++ containing multiple target types. */ ++ if (force_output_target || !ok_object) ++ output_bfd = bfd_openw (output_name, output_target); ++ else ++ output_bfd = bfd_openw (output_name, bfd_get_target (this_element)); ++ ++ if (output_bfd == NULL) + { +- /* PR binutils/3110: Cope with archives +- containing multiple target types. */ +- if (force_output_target) +- output_bfd = bfd_openw (output_name, output_target); +- else +- output_bfd = bfd_openw (output_name, bfd_get_target (this_element)); ++ bfd_nonfatal_message (output_name, NULL, NULL, NULL); ++ status = 1; ++ return; ++ } ++ ++ if (ok_object) ++ { ++ del = !copy_object (this_element, output_bfd, input_arch); + +- if (output_bfd == NULL) ++ if (del && bfd_get_arch (this_element) == bfd_arch_unknown) ++ /* Try again as an unknown object file. */ ++ ok_object = FALSE; ++ else if (!bfd_close (output_bfd)) + { + bfd_nonfatal_message (output_name, NULL, NULL, NULL); ++ /* Error in new object file. Don't change archive. */ + status = 1; +- return; + } +- +- del = ! copy_object (this_element, output_bfd, input_arch); +- +- if (! del +- || bfd_get_arch (this_element) != bfd_arch_unknown) +- { +- if (!bfd_close (output_bfd)) +- { +- bfd_nonfatal_message (output_name, NULL, NULL, NULL); +- /* Error in new object file. Don't change archive. */ +- status = 1; +- } +- } +- else +- goto copy_unknown_element; + } +- else +- { +- bfd_nonfatal_message (NULL, this_element, NULL, +- _("Unable to recognise the format of file")); + +- output_bfd = bfd_openw (output_name, output_target); +-copy_unknown_element: ++ if (!ok_object) ++ { + del = !copy_unknown_object (this_element, output_bfd); + if (!bfd_close_all_done (output_bfd)) + { +-- +1.6.5.GIT + diff --git a/multilib-testing/binutils-multilib/binutils.install b/multilib-testing/binutils-multilib/binutils.install new file mode 100644 index 000000000..8bf9f3a47 --- /dev/null +++ b/multilib-testing/binutils-multilib/binutils.install @@ -0,0 +1,17 @@ +infodir=usr/share/info +filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info) + +post_upgrade() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + diff --git a/testing/binutils/PKGBUILD b/testing/binutils/PKGBUILD new file mode 100644 index 000000000..0d1d6a0bc --- /dev/null +++ b/testing/binutils/PKGBUILD @@ -0,0 +1,89 @@ +# $Id: PKGBUILD 123424 2011-05-11 10:41:25Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc + +pkgname=binutils +pkgver=2.21 +pkgrel=8 +_date=20110430 +pkgdesc="A set of programs to assemble and manipulate binary and object files" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/binutils/" +license=('GPL') +groups=('base') +depends=('glibc>=2.13' 'zlib') +makedepends=('dejagnu') +options=('!libtool' '!distcc' '!ccache') +install=binutils.install +source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2 + binutils-2.21-strip-segfault.patch) +md5sums=('7b3e28fb35cb8bb371cc47291e1c6dec' + '98e8dfaf1c0ededa586823ebfb27825a') + +mksource() { + mkdir ${pkgname}-${_date} + cd ${pkgname}-${_date} + export _TAG=binutils-2_21-branch + export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src' + cvs -z9 co -r $_TAG binutils || return 1 + mv src binutils + tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/* +} + +build() { + cd ${srcdir}/binutils + # http://sourceware.org/bugzilla/show_bug.cgi?id=12632 + patch -Np1 -i $srcdir/binutils-2.21-strip-segfault.patch + + cd ${srcdir} + mkdir binutils-build && cd binutils-build + + [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib" + + ${srcdir}/binutils/configure --prefix=/usr \ + --enable-ld=default --enable-gold \ + --enable-plugins --enable-threads \ + --enable-shared $CONFIGFLAG + + # This checks the host environment and makes sure all the necessary tools are available to compile Binutils. + make configure-host + + make tooldir=${pkgdir}/usr +} + +check() { + cd ${srcdir}/binutils-build + + # do not abort on errors - manually check log files + make -k -j1 check || true +} + +package() { + cd ${srcdir}/binutils-build + make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install + + # Add some useful headers + install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include + install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include + + # Rebuild libiberty.a with -fPIC + make -C libiberty clean + make CFLAGS="$CFLAGS -fPIC" -C libiberty + install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib + + # Rebuild libbfd.a with -fPIC + make -C bfd clean + # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API + make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd + install -m644 bfd/libbfd.a ${pkgdir}/usr/lib + + # Remove Windows/Novell specific man pages + rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* + + # Remove these symlinks, they are not ABI stable. + # Programs should compile static to the .a file. + rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so + echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so + echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so +} diff --git a/testing/binutils/binutils-2.21-strip-segfault.patch b/testing/binutils/binutils-2.21-strip-segfault.patch new file mode 100644 index 000000000..0133d879b --- /dev/null +++ b/testing/binutils/binutils-2.21-strip-segfault.patch @@ -0,0 +1,96 @@ +diff --git a/binutils/objcopy.c b/binutils/objcopy.c +index 15c4f95..b64f3d0 100644 +--- a/binutils/objcopy.c ++++ b/binutils/objcopy.c +@@ -1,6 +1,6 @@ + /* objcopy.c -- copy object file from input to output, optionally massaging it. + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ++ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 + Free Software Foundation, Inc. + + This file is part of GNU Binutils. +@@ -2024,6 +2024,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target, + struct stat buf; + int stat_status = 0; + bfd_boolean del = TRUE; ++ bfd_boolean ok_object; + + /* Create an output file for this member. */ + output_name = concat (dir, "/", +@@ -2061,44 +2062,42 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target, + l->obfd = NULL; + list = l; + +- if (bfd_check_format (this_element, bfd_object)) ++ ok_object = bfd_check_format (this_element, bfd_object); ++ if (!ok_object) ++ bfd_nonfatal_message (NULL, this_element, NULL, ++ _("Unable to recognise the format of file")); ++ ++ /* PR binutils/3110: Cope with archives ++ containing multiple target types. */ ++ if (force_output_target || !ok_object) ++ output_bfd = bfd_openw (output_name, output_target); ++ else ++ output_bfd = bfd_openw (output_name, bfd_get_target (this_element)); ++ ++ if (output_bfd == NULL) + { +- /* PR binutils/3110: Cope with archives +- containing multiple target types. */ +- if (force_output_target) +- output_bfd = bfd_openw (output_name, output_target); +- else +- output_bfd = bfd_openw (output_name, bfd_get_target (this_element)); ++ bfd_nonfatal_message (output_name, NULL, NULL, NULL); ++ status = 1; ++ return; ++ } ++ ++ if (ok_object) ++ { ++ del = !copy_object (this_element, output_bfd, input_arch); + +- if (output_bfd == NULL) ++ if (del && bfd_get_arch (this_element) == bfd_arch_unknown) ++ /* Try again as an unknown object file. */ ++ ok_object = FALSE; ++ else if (!bfd_close (output_bfd)) + { + bfd_nonfatal_message (output_name, NULL, NULL, NULL); ++ /* Error in new object file. Don't change archive. */ + status = 1; +- return; + } +- +- del = ! copy_object (this_element, output_bfd, input_arch); +- +- if (! del +- || bfd_get_arch (this_element) != bfd_arch_unknown) +- { +- if (!bfd_close (output_bfd)) +- { +- bfd_nonfatal_message (output_name, NULL, NULL, NULL); +- /* Error in new object file. Don't change archive. */ +- status = 1; +- } +- } +- else +- goto copy_unknown_element; + } +- else +- { +- bfd_nonfatal_message (NULL, this_element, NULL, +- _("Unable to recognise the format of file")); + +- output_bfd = bfd_openw (output_name, output_target); +-copy_unknown_element: ++ if (!ok_object) ++ { + del = !copy_unknown_object (this_element, output_bfd); + if (!bfd_close_all_done (output_bfd)) + { +-- +1.6.5.GIT + diff --git a/testing/binutils/binutils.install b/testing/binutils/binutils.install new file mode 100644 index 000000000..8bf9f3a47 --- /dev/null +++ b/testing/binutils/binutils.install @@ -0,0 +1,17 @@ +infodir=usr/share/info +filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info) + +post_upgrade() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + diff --git a/testing/file/PKGBUILD b/testing/file/PKGBUILD new file mode 100644 index 000000000..be9e1c172 --- /dev/null +++ b/testing/file/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: PKGBUILD 123428 2011-05-11 11:07:46Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: Andreas Radke <andyrtr@archlinux.org> + +pkgname=file +pkgver=5.07 +pkgrel=1 +pkgdesc="File type identification utility" +arch=('i686' 'x86_64') +license=('custom') +groups=('base') +url="http://www.darwinsys.com/file/" +depends=('glibc' 'zlib') +options=('!libtool') +source=(ftp://ftp.astron.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz + file-5.05-zip64.patch) +md5sums=('b8d1f9a8a644067bd0a703cebf3f4858' + '385f020467debd98bd2d8df6143f93d0') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + sed -i 's#\$(datadir)/misc#\$(datadir)#' configure + + # identify zip64 files + patch -Np1 -i ${srcdir}/file-5.05-zip64.patch + + ./configure --prefix=/usr --datadir=/usr/share/file + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR=${pkgdir} install + install -dm755 ${pkgdir}/usr/share/misc + ln -s ../file/magic.mgc ${pkgdir}/usr/share/misc + + install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING +} diff --git a/testing/file/file-5.05-zip64.patch b/testing/file/file-5.05-zip64.patch new file mode 100644 index 000000000..2c9aede5f --- /dev/null +++ b/testing/file/file-5.05-zip64.patch @@ -0,0 +1,11 @@ +diff -Naur file-5.05-old//magic/Magdir/archive file-5.05/magic/Magdir/archive +--- file-5.05-old//magic/Magdir/archive 2011-01-08 06:24:25.000000000 +1000 ++++ file-5.05/magic/Magdir/archive 2011-01-19 14:37:47.766673895 +1000 +@@ -688,6 +688,7 @@ + >>4 byte 0x0b \b, at least v1.1 to extract + >>0x161 string WINZIP \b, WinZIP self-extracting + >>4 byte 0x14 \b, at least v2.0 to extract ++>>4 byte 0x2d \b, at least v3.0 to extract + + # Zoo archiver + 20 lelong 0xfdc4a7dc Zoo archive data diff --git a/testing/libgssglue/PKGBUILD b/testing/libgssglue/PKGBUILD new file mode 100644 index 000000000..493598561 --- /dev/null +++ b/testing/libgssglue/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 123644 2011-05-12 06:23:26Z tpowa $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=libgssglue +pkgver=0.1 +pkgrel=4 +pkgdesc="Exports a gssapi interface which calls other random gssapi libraries" +arch=('i686' 'x86_64') +url="http://www.citi.umich.edu/projects/nfsv4/linux/" +license=('BSD') +depends=('glibc') +makedepends=('pkgconfig' 'autoconf') +backup=(etc/gssapi_mech.conf) +options=('!libtool') +source=(http://www.citi.umich.edu/projects/nfsv4/linux/$pkgname/$pkgname-$pkgver.tar.gz + gssapi_mech.conf) +md5sums=('ce1b4c758e6de01b712d154c5c97e540' + '080be866717e4e06fa6f7d6f43cb395a') + +build() { + cd "$srcdir"/$pkgname-$pkgver + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir"/$pkgname-$pkgver + make DESTDIR="$pkgdir/" install + + # Configuration + install -Dm644 "$srcdir"/gssapi_mech.conf "$pkgdir/"etc/gssapi_mech.conf + # install license + install -Dm644 COPYING "$pkgdir"/usr/share/licenses/libgssglue/COPYING +} diff --git a/testing/libgssglue/gssapi_mech.conf b/testing/libgssglue/gssapi_mech.conf new file mode 100644 index 000000000..9a832ee1b --- /dev/null +++ b/testing/libgssglue/gssapi_mech.conf @@ -0,0 +1,22 @@ +# Example /etc/gssapi_mech.conf file +# +# GSSAPI Mechanism Definitions +# +# This configuration file determines which GSS-API mechanisms +# the gssd code should use +# +# NOTE: +# The initiaiization function "mechglue_internal_krb5_init" +# is used for the MIT krb5 gssapi mechanism. This special +# function name indicates that an internal function should +# be used to determine the entry points for the MIT gssapi +# mechanism funtions. +# +# library initialization function +# ================================ ========================== +# The MIT K5 gssapi library, use special function for initialization. +/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init +#/usr/lib/libgssapi.so mechglue_internal_krb5_init +# +# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize. +# /usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize diff --git a/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff b/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff new file mode 100644 index 000000000..e75499e8e --- /dev/null +++ b/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff @@ -0,0 +1,17 @@ +Do not issue an error message when unable to remove .cache on read-only fs. +=================================================================== +RCS file: /cvs/lvm2/LVM2/lib/filters/filter-persistent.c,v +retrieving revision 1.49 +retrieving revision 1.50 +diff -u -r1.49 -r1.50 +--- LVM2/lib/filters/filter-persistent.c 2011/04/22 12:05:33 1.49 ++++ LVM2/lib/filters/filter-persistent.c 2011/05/12 12:42:48 1.50 +@@ -108,7 +108,7 @@ + log_very_verbose("Obtaining device list from " + "udev. Removing obolete %s.", + pf->file); +- if (unlink(pf->file) < 0) ++ if (unlink(pf->file) < 0 && errno != EROFS) + log_sys_error("unlink", pf->file); + } + return 1; diff --git a/testing/lvm2/PKGBUILD b/testing/lvm2/PKGBUILD new file mode 100644 index 000000000..e7129b765 --- /dev/null +++ b/testing/lvm2/PKGBUILD @@ -0,0 +1,67 @@ +# $Id: PKGBUILD 123786 2011-05-13 00:53:49Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> +# Maintainer: Thomas Bächler <thomas@archlinux.org> + +pkgbase=lvm2 +pkgname=('lvm2' 'device-mapper') +pkgver=2.02.85 +_pkgverlvm=${pkgver} +pkgrel=1 +arch=('i686' 'x86_64') +url="http://sourceware.org/lvm2/" +license=('GPL2' 'LGPL2.1') +groups=('base') +conflicts=('mkinitcpio<0.5.99') +source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${_pkgverlvm}.tgz + lvm2_install + lvm2_hook + Be-quiet-on-removing-cache-on-read-only-fs.diff) +md5sums=('91785ca438e5ce679dd3a386b183d552' + 'e29bc80d636ed17b617d9b384a5f3aa0' + 'cf05f2c7281e24269ea9dcc6b4e106ba' + '6db89da27928d2415a8e26cd0a842712') +sha1sums=('43ba2a3be84b2e897ae6b47b0b0be7e212216be7' + '662fc54ce291fd79bd09701e4c3e10854f325282' + '1cd20e8fbad6fd7d5c0f54e831fbf58ae564b440' + '6d7dd04be291d7537235704c816a701fd5beacc0') + +build() { + cd "${srcdir}/LVM2.${_pkgverlvm}" + sed -i 's|/usr/bin/tr|/bin/tr|' scripts/lvmdump.sh + patch -p1 -i ../Be-quiet-on-removing-cache-on-read-only-fs.diff + unset LDFLAGS + ./configure --prefix= --sysconfdir=/etc --localstatedir=/var --datarootdir=/usr/share \ + --includedir=/usr/include --with-usrlibdir=/usr/lib \ + --enable-pkgconfig --enable-readline --enable-dmeventd --enable-cmdlib --enable-applib \ + --with-udevdir=/lib/udev/rules.d/ --enable-udev_sync --enable-udev_rules + make +} + +package_device-mapper() { + pkgdesc="Device mapper userspace library and tools" + url="http://sourceware.org/dm/" + depends=('glibc' 'udev') + + cd "${srcdir}/LVM2.${_pkgverlvm}" + make DESTDIR="${pkgdir}" install_device-mapper +} + +package_lvm2() { + pkgdesc="Logical Volume Manager 2 utilities" + depends=('bash' "device-mapper>=${pkgver}" 'udev' 'readline') + conflicts=('lvm' 'mkinitcpio<0.5.99') + backup=('etc/lvm/lvm.conf') + options=('!makeflags') + + cd "${srcdir}/LVM2.${_pkgverlvm}" + make DESTDIR="${pkgdir}" install_lvm2 + # install applib + cd liblvm + make DESTDIR="${pkgdir}" install + cd .. + # /etc directories + install -d "${pkgdir}"/etc/lvm/{archive,backup} + # mkinitcpio hook + install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/lib/initcpio/hooks/lvm2" + install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/lib/initcpio/install/lvm2" +} diff --git a/testing/lvm2/lvm2_hook b/testing/lvm2/lvm2_hook new file mode 100644 index 000000000..86d2ea582 --- /dev/null +++ b/testing/lvm2/lvm2_hook @@ -0,0 +1,24 @@ +# vim:set ft=sh: +run_hook () +{ + /sbin/modprobe -q dm-mod >/dev/null 2>&1 + if [ -e "/sys/class/misc/device-mapper" ]; then + if [ ! -e "/dev/mapper/control" ]; then + /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |') + fi + + # If the lvmwait= parameter has been specified on the command line + # wait for the device(s) before trying to activate the volume group(s) + if [ -n "${lvmwait}" ]; then + for pvdev in $(echo ${lvmwait} | sed 's|,| |g'); do + poll_device ${pvdev} ${rootdelay} + done + fi + + [ "${quiet}" = "y" ] && LVMQUIET=">/dev/null" + + msg "Activating logical volumes..." + [ -d /etc/lvm ] && /sbin/lvm vgscan --sysinit + eval /sbin/lvm vgchange --sysinit -a y $LVMQUIET + fi +} diff --git a/testing/lvm2/lvm2_install b/testing/lvm2/lvm2_install new file mode 100644 index 000000000..0c01ce69c --- /dev/null +++ b/testing/lvm2/lvm2_install @@ -0,0 +1,29 @@ +# vim: set ft=sh: + +install () +{ + MODULES=" dm-mod dm-snapshot dm-mirror" + BINARIES="" + FILES="" + SCRIPT="lvm2" + + add_dir "/dev/mapper" + add_binary "/sbin/lvm" + add_binary "/sbin/dmsetup" + add_file "/lib/udev/rules.d/10-dm.rules" + add_file "/lib/udev/rules.d/13-dm-disk.rules" + add_file "/lib/udev/rules.d/95-dm-notify.rules" + add_file "/lib/udev/rules.d/11-dm-lvm.rules" +} + +help () +{ +cat<<HELPEOF + This hook loads the necessary modules for an LVM2 root device. + + The optional lvmwait= parameter followed by a comma-separated + list of device names can be given on the command line. + It will cause the hook to wait until all given devices exist + before trying to scan and activate any volume groups. +HELPEOF +} diff --git a/testing/udev/80-drivers.rules b/testing/udev/80-drivers.rules new file mode 100644 index 000000000..56ac06cb4 --- /dev/null +++ b/testing/udev/80-drivers.rules @@ -0,0 +1,14 @@ +# do not edit this file, it will be overwritten on update + +ACTION=="remove", GOTO="drivers_end" + +DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/lib/udev/load-modules.sh $env{MODALIAS}" +SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/lib/udev/load-modules.sh tifm_sd" +SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/lib/udev/load-modules.sh tifm_ms" +SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block" +SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh mspro_block" +SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh i2o_block" +SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg" +SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/lib/udev/load-modules.sh ppdev" + +LABEL="drivers_end" diff --git a/testing/udev/81-arch.rules b/testing/udev/81-arch.rules new file mode 100644 index 000000000..21127a729 --- /dev/null +++ b/testing/udev/81-arch.rules @@ -0,0 +1,138 @@ +# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org> +# do not edit this file, it will be overwritten on update +# +# There are a number of modifiers that are allowed to be used in some +# of the different fields. They provide the following subsitutions: +# +# %n the "kernel number" of the device. +# For example, 'sda3' has a "kernel number" of '3' +# %k the kernel name for the device. +# %M the kernel major number for the device +# %m the kernel minor number for the device +# %b the bus id for the device +# %c the string returned by the PROGRAM +# %s{filename} the content of a sysfs attribute. +# %% the '%' char itself. +# +# There are a number of modifiers that are allowed to be used in some of the +# fields. See the udev man page for a full description of them. +# global stuff +# + +##################################### +###### Hotplug rules - begin +# Only additional modules, +# which are not detectable, +# are loaded here! +##################################### +# check if the device has already been claimed by a driver +ACTION!="add", GOTO="drivers_end" + +# SOUND addon modules +SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-pcm-oss" +SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-seq-oss" + +#PNP addon modules +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0800", RUN+="/lib/udev/load-modules.sh pcspkr" +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP051[01]*", RUN+="/lib/udev/load-modules.sh irtty-sir" +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNPb02f", RUN+="/lib/udev/load-modules.sh analog" + +# PARPORT addon modules +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh lp" +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh ppdev" + +# fix ide cdrom detection on old proliant servers +SUBSYSTEM=="pci", ENV{MODALIAS}=="pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00", RUN+="/lib/udev/load-modules.sh ide-generic" + +LABEL="drivers_end" +##################################### +##### Hotplug rules - end +##################################### + +##################################### +###### CD/DVD symlinks - begin +##################################### +ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="cdrom_id --export $tempnode" +ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", IMPORT="cdrom_id --export $tempnode" +ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="scd[a-z]", IMPORT="cdrom_id --export $tempnode" +ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b" +ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b" +ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b" +ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvdrw-%b" +ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="cdsymlinks.sh" +ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh" +ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh" +ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="hd[a-z]", RUN+="cdsymlinks.sh" +ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", RUN+="cdsymlinks.sh" +ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="cdsymlinks.sh" +##################################### +###### CD/DVD symlinks - end +##################################### + +##################################### +# Additional Archlinux +# Permissions and Symlinks - begin +##################################### + +# permission for sg devices +KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660" + +# permissions for IDE CD devices +SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical" + +# permissions for SCSI CD devices +SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical" +SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical" + +# permissions for removable devices like cardreaders or sticks +KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="0", GROUP="storage" + +# permissions for firewire external drives +KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage" + +# permissions for usb to scsi external adapters +KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="7", GROUP="storage" + +# permissions for ide storage like pcmcia card readers +ACTION!="add", GOTO="pcmcia_end" +SUBSYSTEM!="block", GOTO="pcmcia_end" +KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode" +KERNEL=="hd*", IMPORT{parent}=="ID_*" +KERNEL=="hd*", ENV{ID_TYPE}=="generic", GROUP="storage" +LABEL="pcmcia_end" + +# permissions for SCSI scanners +SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner" + +# mem +KERNEL=="ram0", SYMLINK+="ramdisk" +KERNEL=="ram1", SYMLINK+="ram" + +# video4linux + +KERNEL=="vbi0", SYMLINK+="vbi" +KERNEL=="radio0", SYMLINK+="radio" +KERNEL=="radio[0-9]*", GROUP="video" +KERNEL=="video0", SYMLINK+="video" +KERNEL=="vtx0", SYMLINK+="vtx" + +# video devices +### xorg resets those permissions, adjust your xorg.conf! +KERNEL=="3dfx*", GROUP="video" +KERNEL=="fb[0-9]*", GROUP="video" + +# misc +KERNEL=="sgi_fetchop", MODE="0666" +KERNEL=="sonypi", MODE="0666" + +# USB devices +KERNEL=="legousbtower*", MODE="0666" + +# kbd devices +KERNEL=="kbd", MODE="0664" + +# miscellaneous +KERNEL=="rtc|rtc0", GROUP="audio", MODE="0664" +####################################### +# Permissions and Symlinks - end +####################################### diff --git a/testing/udev/PKGBUILD b/testing/udev/PKGBUILD new file mode 100644 index 000000000..44c2cf9d7 --- /dev/null +++ b/testing/udev/PKGBUILD @@ -0,0 +1,116 @@ +# $Id: PKGBUILD 123587 2011-05-11 16:38:57Z tomegun $ +# Maintainer: Aaron Griffin <aaron@archlinux.org> +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# Maintainer: Thomas Bächler <thomas@archlinux.org> +# Maintainer: Tom Gundersen <teg@jklm.no> + +pkgbase="udev" +pkgname=('udev' 'udev-compat') +pkgver=168 +pkgrel=1 +arch=(i686 x86_64) +url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" +license=('GPL') +groups=('base') +# older initscripts versions required start_udev +options=(!makeflags !libtool) +makedepends=('glibc' 'coreutils' 'util-linux' 'pciutils' 'libusb-compat' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection') +source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.tar.bz2 + 80-drivers.rules + 81-arch.rules + load-modules.sh + cdsymlinks.sh) + +build() { + cd $srcdir/$pkgbase-$pkgver + ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\ + --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system + make +} + +package_udev() { + pkgdesc="The userspace dev tools (udev)" + depends=('glibc' 'coreutils' 'util-linux' 'libusb-compat' 'glib2' + 'module-init-tools>=3.11' 'pciutils') + install=udev.install + backup=(etc/udev/udev.conf + etc/modprobe.d/framebuffer_blacklist.conf) + conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07') + replaces=('devfsd') + + cd $srcdir/$pkgbase-$pkgver + make DESTDIR=${pkgdir} install + # Replace original 80-drivers.rules with custom one. + install -D -m644 $srcdir/80-drivers.rules $pkgdir/lib/udev/rules.d/80-drivers.rules + # Install our rule for permissions and symlinks + install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules + # install our module loading subsystem + install -D -m755 $srcdir/load-modules.sh $pkgdir/lib/udev/load-modules.sh + # install cdsymlinks.sh + install -D -m755 $srcdir/cdsymlinks.sh $pkgdir/lib/udev/cdsymlinks.sh + # disable error logging to prevent startup failures printed to vc on boot + sed -i -e 's|udev_log="err"|udev_log="0"|g' $pkgdir/etc/udev/udev.conf + # disable persistent cdromsymlinks and network by default + # and move it to /etc/udev/rules.d + mv $pkgdir/lib/udev/rules.d/75-persistent-net-generator.rules \ + $pkgdir/etc/udev/rules.d/75-persistent-net-generator.rules.optional + mv $pkgdir/lib/udev/rules.d/75-cd-aliases-generator.rules \ + $pkgdir/etc/udev/rules.d/75-cd-aliases-generator.rules.optional + + # create framebuffer blacklist + mkdir -p $pkgdir/etc/modprobe.d/ + for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko.gz' -exec basename {} .ko.gz \;); do + echo "blacklist $mod" + done | sort -u > $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf + + # create static devices in /lib/udev/devices/ + mkdir ${pkgdir}/lib/udev/devices/pts + mkdir ${pkgdir}/lib/udev/devices/shm + + mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1 + mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3 + mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5 + mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11 + + ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd + ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin + ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout + ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr + ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core + + # these static devices are created for convenience, to autoload the modules if necessary + # /dev/loop0 + mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0 + chgrp disk ${pkgdir}/lib/udev/devices/loop0 + # /dev/net/tun + mkdir ${pkgdir}/lib/udev/devices/net + mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200 + # /dev/fuse + mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229 + # /dev/ppp + mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0 + + # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group + for i in $pkgdir/lib/udev/rules.d/*.rules; do + sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g; + s#GROUP="tape"#GROUP="storage"#g; + s#GROUP="cdrom"#GROUP="optical"#g' $i + done + + # Provided by the bluez package, remove this line when updating to udev>=169 + rm ${pkgdir}/lib/udev/hid2hci +} + +package_udev-compat() { + pkgdesc="The userspace dev tools (udev) - additional rules for older kernels" + depends=('udev') + groups=('') + cd $srcdir/$pkgbase-$pkgver + install -d -m755 ${pkgdir}/lib/${pkgbase}/rules.d + install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules +} +md5sums=('4a466078532ab5dd5c35acc3ea2ec9a1' + '4427855146513a4703ab5c7eb8a0156e' + 'f17c99779173ddc79f866cf3a5de5e68' + 'f91fddc67609b45b244a624977c4247b' + '2e808ee78d237c478b57af2a68d43769') diff --git a/testing/udev/cdsymlinks.sh b/testing/udev/cdsymlinks.sh new file mode 100755 index 000000000..498abda4a --- /dev/null +++ b/testing/udev/cdsymlinks.sh @@ -0,0 +1,44 @@ +#! /bin/sh +# Creates cdsymlinks in /dev +# for Archlinux by Tobias Powalowski <tpowa@archlinux.org> + +# check on cd/dvd drives and if persistant rules file is used +if [ -d /dev/cd -a ! -e /etc/udev/rules.d/75-persistent-cd.rules ]; then + # remove existing device files + rm /dev/cdrom* + rm /dev/cdrw* + rm /dev/dvd* + rm /dev/dvdrw* + # start creating symlinks + for i in /dev/cd/cdrom-*; do + if [ -h $i ]; then + [ "$CD_NUMBER" = "" ] && ln -s $i /dev/cdrom + [ "$CD_NUMBER" = "" ] && CD_NUMBER="-1" + ! [ "$CD_NUMBER" = "" ] && CD_NUMBER="$((CD_NUMBER+1))" && ln -s $i /dev/cdrom$CD_NUMBER + fi + done + + for i in /dev/cd/cdrw-*; do + if [ -h $i ]; then + [ "$CDRW_NUMBER" = "" ] && ln -s $i /dev/cdrw + [ "$CDRW_NUMBER" = "" ] && CDRW_NUMBER="-1" + ! [ "$CDRW_NUMBER" = "" ] && CDRW_NUMBER="$((CDRW_NUMBER+1))" && ln -s $i /dev/cdrw$CDRW_NUMBER + fi + done + + for i in /dev/cd/dvd-*; do + if [ -h $i ]; then + [ "$DVD_NUMBER" = "" ] && ln -s $i /dev/dvd + [ "$DVD_NUMBER" = "" ] && DVD_NUMBER="-1" + ! [ "$DVD_NUMBER" = "" ] && DVD_NUMBER="$((DVD_NUMBER+1))" && ln -s $i /dev/dvd$DVD_NUMBER + fi + done + + for i in /dev/cd/dvdrw-*; do + if [ -h $i ]; then + [ "$DVDRW_NUMBER" = "" ] && ln -s $i /dev/dvdrw + [ "$DVDRW_NUMBER" = "" ] && DVDRW_NUMBER="-1" + ! [ "$DVDRW_NUMBER" = "" ] && DVDRW_NUMBER="$((DVDRW_NUMBER+1))" && ln -s $i /dev/dvdrw$DVDRW_NUMBER + fi + done +fi diff --git a/testing/udev/load-modules.sh b/testing/udev/load-modules.sh new file mode 100755 index 000000000..1e2af913e --- /dev/null +++ b/testing/udev/load-modules.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# Implement blacklisting for udev-loaded modules + +[ $# -ne 1 ] && exit 1 + +. /etc/rc.conf + +# grab modules from rc.conf +BLACKLIST="${MOD_BLACKLIST[@]}" +MODPROBE="/sbin/modprobe" +LOGGER="/usr/bin/logger" +RESOLVEALIAS="${MODPROBE} --resolve-alias" +USEBLACKLIST="--use-blacklist" + +if [ -f /proc/cmdline ]; then + for cmd in $(cat /proc/cmdline); do + case $cmd in + disablemodules=*) eval $cmd ;; + load_modules=off) exit ;; + esac + done + #parse cmdline entries of the form "disablemodules=x,y,z" + if [ -n "$disablemodules" ]; then + BLACKLIST="$BLACKLIST $(echo $disablemodules | sed 's|,| |g')" + fi +fi + +#MODULES entries in rc.conf that begin with ! are blacklisted +for mod in ${MODULES[@]}; do + if [ "${mod}" != "${mod#!}" ]; then + BLACKLIST="$BLACKLIST ${mod#!}" + fi +done + +if [ "$MOD_AUTOLOAD" = "yes" -o "$MOD_AUTOLOAD" = "YES" ]; then + if [ -n "${BLACKLIST}" ]; then + # If an alias name is on the blacklist, load no modules for this device + if echo "${BLACKLIST}" | /bin/grep -q -e " $1 " -e "^$1 " -e " $1\$"; then + $LOGGER -p info -t "$(basename $0)" "Not loading module alias '$1' because it is blacklisted" + exit + fi + #sanitize the blacklist + BLACKLIST="$(echo "$BLACKLIST" | sed -e 's|-|_|g')" + # Try to find all modules for the alias + mods=$($RESOLVEALIAS $1) + # If no modules could be found, try if the alias name is a module name + # In that case, omit the --use-blacklist parameter to imitate normal modprobe behaviour + [ -z "${mods}" ] && $MODPROBE -qni $1 && mods="$1" && USEBLACKLIST="" + [ -z "${mods}" ] && $LOGGER -p local0.debug -t "$(basename $0)" "'$1' is not a valid module or alias name" + for mod in ${mods}; do + # Find the module and all its dependencies + deps="$($MODPROBE -i --show-depends ${mod})" + [ $? -ne 0 ] && continue + + #sanitize the module names + deps="$(echo "$deps" | sed \ + -e "s#^insmod /lib.*/\(.*\)\.ko.*#\1#g" \ + -e 's|-|_|g')" + + # If the module or any of its dependencies is blacklisted, don't load it + for dep in $deps; do + if echo "${BLACKLIST}" | /bin/grep -q -e " ${dep} " -e "^${dep} " -e " ${dep}\$"; then + if [ "${dep}" = "${mod}" ]; then + $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because it is blacklisted" + else + $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because its dependency '${dep}' is blacklisted" + fi + continue 2 + fi + done + # modprobe usually uses the "blacklist" statements from modprobe.conf only to blacklist all aliases + # of a module, but not the module itself. We use --use-blacklist here so that modprobe also blacklists + # module names if we resolved alias names manually above + $MODPROBE $USEBLACKLIST ${mod} + done + else + $MODPROBE $USEBLACKLIST $1 + fi +fi +# vim: set et ts=4: diff --git a/testing/udev/udev.install b/testing/udev/udev.install new file mode 100644 index 000000000..e953ec743 --- /dev/null +++ b/testing/udev/udev.install @@ -0,0 +1,38 @@ +# arg 1: the new package version +# arg 2: the old package version + +post_upgrade() { + if [ "$(vercmp $2 100)" -lt 0 ]; then + echo "ATTENTION UDEV:" + echo "----------" + echo "udev >=098 rules syntax has changed, please update your own rules." + echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules." + echo "Please read the instructions carefully before reboot." + echo "They are located in /etc/udev/readme-udev-arch.txt" + echo "----------" + fi +} + +post_install() { + # If a ramfs is mounted, we still need to make sure that /dev/{console,null,zero} exist + # The Archlinux installer bind-mounts /dev to /mnt/dev, thus making the real /dev invisible + ROOTDIR="" + [ "$(stat -c %D /)" != "$(stat -c %D /dev)" ] && ROOTDIR=$(mktemp -d /tmp/udevinstall.XXXXXX) + [ -n "${ROOTDIR}" ] && mount --bind / ${ROOTDIR} + if [ ! -c ${ROOTDIR}/dev/console ]; then + rm -f ${ROOTDIR}/dev/console + mknod -m600 ${ROOTDIR}/dev/console c 5 1 + fi + if [ ! -c ${ROOTDIR}/dev/null ]; then + rm -f ${ROOTDIR}/dev/null + mknod -m644 ${ROOTDIR}/dev/null c 1 3 + fi + if [ ! -c ${ROOTDIR}/dev/zero ]; then + rm -f ${ROOTDIR}/dev/zero + mknod -m644 ${ROOTDIR}/dev/zero c 1 5 + fi + if [ -n "${ROOTDIR}" ]; then + umount ${ROOTDIR} + rmdir ${ROOTDIR} + fi +} diff --git a/testing/ypbind-mt/PKGBUILD b/testing/ypbind-mt/PKGBUILD new file mode 100644 index 000000000..ddb807725 --- /dev/null +++ b/testing/ypbind-mt/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 123631 2011-05-11 23:05:30Z bisson $ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=ypbind-mt +pkgver=1.33 +pkgrel=1 +pkgdesc='Linux NIS daemon' +arch=('i686' 'x86_64') +url='http://www.linux-nis.org/nis/ypbind-mt/' +license=('GPL2') +depends=('rpcbind' 'openslp') +backup=('etc/yp.conf' 'etc/conf.d/ypbind') +source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz" + 'ypbind.conf' + 'ypbind') +sha1sums=('49f578d15aa5d4f4130a2e96cd9c0e519263fc88' + '07dee386d001fb9e9e6b76dda8af5b2092e5a4a2' + '66f6ea2f622e0724e6017bf835d4f7f4a5bf9534') + +build() { + cd "$srcdir/$pkgname-$pkgver" + ./configure --prefix=/usr --disable-dbus-nm + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install + install -D -m644 etc/yp.conf "$pkgdir"/etc/yp.conf + install -D -m755 ../ypbind "$pkgdir"/etc/rc.d/ypbind + install -D -m644 ../ypbind.conf "$pkgdir"/etc/conf.d/ypbind + install -d -m755 "$pkgdir"/var/yp/binding +} diff --git a/testing/ypbind-mt/ypbind b/testing/ypbind-mt/ypbind new file mode 100755 index 000000000..5ef5cf5b3 --- /dev/null +++ b/testing/ypbind-mt/ypbind @@ -0,0 +1,36 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/ypbind + +case "$1" in + start) + stat_busy "Starting NIS Bind Daemon" + [ -f /etc/defaultdomain ] && /bin/domainname -F /etc/defaultdomain + /usr/sbin/ypbind $YPBIND_ARGS + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon ypbind + stat_done + fi + ;; + stop) + stat_busy "Stopping NIS Bind Daemon" + killall -q /usr/sbin/ypbind + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon ypbind + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac diff --git a/testing/ypbind-mt/ypbind.conf b/testing/ypbind-mt/ypbind.conf new file mode 100644 index 000000000..fd0ebd491 --- /dev/null +++ b/testing/ypbind-mt/ypbind.conf @@ -0,0 +1,4 @@ +# +# Parameters to be passed to ypbind +# +YPBIND_ARGS="" diff --git a/testing/ypserv/PKGBUILD b/testing/ypserv/PKGBUILD new file mode 100644 index 000000000..4c6e2333b --- /dev/null +++ b/testing/ypserv/PKGBUILD @@ -0,0 +1,36 @@ +# $Id: PKGBUILD 123628 2011-05-11 23:04:51Z bisson $ +# Maintainer: judd <jvinet@zeroflux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=ypserv +pkgver=2.25 +pkgrel=1 +pkgdesc='Linux NIS Server' +arch=('i686' 'x86_64') +url='http://www.linux-nis.org/nis/ypserv/' +license=('GPL2') +depends=('gdbm' 'openslp') +backup=('etc/ypserv.conf' 'etc/netgroup' 'var/yp/securenets') +source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz" \ + 'yppasswd' + 'ypserv') +sha1sums=('ab997022d25b6374ae21d39f7ff564be028d8736' + '96192b628afe36709496e4801d016c4bff343f0e' + 'b625381bfa6cf62345377a7df30b8f45935206c5') + +build() { + cd "$srcdir/$pkgname-$pkgver" + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install + + install -D -m644 etc/netgroup "$pkgdir"/etc/netgroup + install -D -m644 etc/ypserv.conf "$pkgdir"/etc/ypserv.conf + install -D -m644 etc/securenets "$pkgdir"/var/yp/securenets + install -D -m755 ../ypserv "$pkgdir"/etc/rc.d/ypserv + install -D -m755 ../yppasswd "$pkgdir"/etc/rc.d/yppasswd +} diff --git a/testing/ypserv/yppasswd b/testing/ypserv/yppasswd new file mode 100755 index 000000000..c2b00b2ca --- /dev/null +++ b/testing/ypserv/yppasswd @@ -0,0 +1,34 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Starting NIS Password Daemon" + /usr/sbin/rpc.yppasswdd + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon yppasswd + stat_done + fi + ;; + stop) + stat_busy "Stopping NIS Password Daemon" + killall -q /usr/sbin/rpc.yppasswdd + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon yppasswd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac diff --git a/testing/ypserv/ypserv b/testing/ypserv/ypserv new file mode 100755 index 000000000..c36e6901b --- /dev/null +++ b/testing/ypserv/ypserv @@ -0,0 +1,34 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Starting NIS Server" + /usr/sbin/ypserv + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon ypserv + stat_done + fi + ;; + stop) + stat_busy "Stopping NIS Server" + killall -q /usr/sbin/ypserv + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon ypserv + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac |