diff -ruN pciutils-2.2.9/ChangeLog pciutils-2.2.10/ChangeLog
--- pciutils-2.2.9/ChangeLog	2007-11-06 22:27:34.000000000 +0100
+++ pciutils-2.2.10/ChangeLog	2008-02-12 12:30:51.000000000 +0100
@@ -1,3 +1,26 @@
+2008-02-11  Martin Mares <mj@ucw.cz>
+
+	* Released as 2.2.10.
+
+	* lspci.c, setpci.c: Cleaned up the list of options.
+
+	* lib/names.c: Fix displaying of errors reported by zlib.
+	Previously, the buffer containing the error message had
+	been deallocated by gzclose() before the message was printed.
+
+2008-01-07  Martin Mares <mj@ucw.cz>
+
+	* update-pciids.sh: Added quiet mode (-q). Clean up uncompressed
+	files left by previous versions of the pciutils. Patch by Mike
+	Frysinger.
+
+	* update-pciids.man: Mention the -q switch.
+
+2007-11-29  Martin Mares <mj@ucw.cz>
+
+	* lib/dump.c: Squashed compiler warnings about code with
+	no effect (there really were surplus *'s).
+
 2007-11-06  Martin Mares <mj@ucw.cz>
 
 	* Released as 2.2.9.
diff -ruN pciutils-2.2.9/Makefile pciutils-2.2.10/Makefile
--- pciutils-2.2.9/Makefile	2007-11-06 22:29:09.000000000 +0100
+++ pciutils-2.2.10/Makefile	2008-02-12 12:31:02.000000000 +0100
@@ -1,11 +1,11 @@
 # Makefile for The PCI Utilities
-# (c) 1998--2007 Martin Mares <mj@ucw.cz>
+# (c) 1998--2008 Martin Mares <mj@ucw.cz>
 
 OPT=-O2
 CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes
 
-VERSION=2.2.9
-DATE=2007-11-06
+VERSION=2.2.10
+DATE=2008-02-11
 
 PREFIX=/usr/local
 SBINDIR=$(PREFIX)/sbin
diff -ruN pciutils-2.2.9/README pciutils-2.2.10/README
--- pciutils-2.2.9/README	2007-11-06 22:29:27.000000000 +0100
+++ pciutils-2.2.10/README	2008-02-12 12:32:22.000000000 +0100
@@ -1,6 +1,6 @@
-This package contains the PCI Utilities, version 2.2.9.
+This package contains the PCI Utilities, version 2.2.10.
 
-Copyright (c) 1997--2007 Martin Mares <mj@ucw.cz>
+Copyright (c) 1997--2008 Martin Mares <mj@ucw.cz>
 
 All files in this package can be freely distributed and used according
 to the terms of the GNU General Public License, either version 2 or
diff -ruN pciutils-2.2.9/lib/configure pciutils-2.2.10/lib/configure
--- pciutils-2.2.9/lib/configure	2007-10-19 15:38:23.000000000 +0200
+++ pciutils-2.2.10/lib/configure	2008-02-11 21:04:18.000000000 +0100
@@ -64,7 +64,7 @@
 						echo >>$c "#define PCI_HAVE_PM_INTEL_CONF"
 						;;
 				*)
-						echo " The PCI library is does not support Solaris for this architecture: $cpu"
+						echo " The PCI library does not support Solaris for this architecture: $cpu"
 						exit 1
 						;;
 		esac
diff -ruN pciutils-2.2.9/lib/dump.c pciutils-2.2.10/lib/dump.c
--- pciutils-2.2.9/lib/dump.c	2006-09-17 16:55:50.000000000 +0200
+++ pciutils-2.2.10/lib/dump.c	2007-11-29 13:47:48.000000000 +0100
@@ -41,7 +41,7 @@
     {
       if (*fmt == '#' ? !isxdigit(*s) : *fmt != *s)
 	return 0;
-      *fmt++, *s++;
+      fmt++, s++;
     }
   return 1;
 }
diff -ruN pciutils-2.2.9/lib/names.c pciutils-2.2.10/lib/names.c
--- pciutils-2.2.9/lib/names.c	2007-08-27 18:10:22.000000000 +0200
+++ pciutils-2.2.10/lib/names.c	2008-02-11 21:04:26.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  *	The PCI Library -- ID to Name Translation
  *
- *	Copyright (c) 1997--2007 Martin Mares <mj@ucw.cz>
+ *	Copyright (c) 1997--2008 Martin Mares <mj@ucw.cz>
  *
  *	Can be freely distributed and used under the terms of the GNU GPL.
  */
@@ -43,9 +43,10 @@
 #define PCI_ERROR(f, err)						\
 	if (!err) {							\
 		int errnum;						\
-		err = gzerror(f, &errnum);				\
-		if (errnum == Z_ERRNO)	err = "I/O error";		\
-		else if (errnum >= 0)	err = NULL;			\
+		gzerror(f, &errnum);					\
+		if (errnum >= 0) err = NULL;				\
+		else if (errnum == Z_ERRNO) err = "I/O error";		\
+		else err = zError(errnum);				\
 	}
 #else
 typedef FILE * pci_file;
diff -ruN pciutils-2.2.9/lspci.c pciutils-2.2.10/lspci.c
--- pciutils-2.2.9/lspci.c	2007-11-06 22:27:24.000000000 +0100
+++ pciutils-2.2.10/lspci.c	2008-02-11 21:13:21.000000000 +0100
@@ -31,29 +31,27 @@
 
 static char options[] = "nvbxs:d:ti:mgp:kMD" GENERIC_OPTIONS ;
 
-static char help_msg[] = "\
-Usage: lspci [<switches>]\n\
-\n\
--v\t\tBe verbose\n\
--n\t\tShow numeric ID's\n\
--nn\t\tShow both textual and numeric ID's (names & numbers)\n\
--b\t\tBus-centric view (PCI addresses and IRQ's instead of those seen by the CPU)\n\
--x\t\tShow hex-dump of the standard portion of config space\n\
--xxx\t\tShow hex-dump of the whole config space (dangerous; root only)\n\
--xxxx\t\tShow hex-dump of the 4096-byte extended config space (root only)\n\
--s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]]\tShow only devices in selected slots\n\
--d [<vendor>]:[<device>]\tShow only selected devices\n\
--t\t\tShow bus tree\n\
--m\t\tProduce machine-readable output\n\
--i <file>\tUse specified ID database instead of %s\n"
+static char help_msg[] =
+"Usage: lspci [<switches>]\n"
+"\n"
+"-v\t\tBe verbose\n"
+"-n\t\tShow numeric ID's\n"
+"-nn\t\tShow both textual and numeric ID's (names & numbers)\n"
+"-b\t\tBus-centric view (PCI addresses and IRQ's instead of those seen by the CPU)\n"
+"-x\t\tShow hex-dump of the standard portion of config space\n"
+"-xxx\t\tShow hex-dump of the whole config space (dangerous; root only)\n"
+"-xxxx\t\tShow hex-dump of the 4096-byte extended config space (root only)\n"
+"-s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]]\tShow only devices in selected slots\n"
+"-d [<vendor>]:[<device>]\tShow only selected devices\n"
+"-t\t\tShow bus tree\n"
+"-m\t\tProduce machine-readable output\n"
+"-i <file>\tUse specified ID database instead of %s\n"
 #ifdef PCI_OS_LINUX
-"\
--k\t\tShow kernel drivers handling each device\n\
--p <file>\tLook up kernel modules in a given file instead of default modules.pcimap\n"
+"-k\t\tShow kernel drivers handling each device\n"
+"-p <file>\tLook up kernel modules in a given file instead of default modules.pcimap\n"
 #endif
-"\
--D\t\tAlways show domain numbers\n\
--M\t\tEnable `bus mapping' mode (dangerous; root only)\n"
+"-D\t\tAlways show domain numbers\n"
+"-M\t\tEnable `bus mapping' mode (dangerous; root only)\n"
 GENERIC_HELP
 ;
 
diff -ruN pciutils-2.2.9/pciutils.lsm pciutils-2.2.10/pciutils.lsm
--- pciutils-2.2.9/pciutils.lsm	2007-11-06 22:29:27.000000000 +0100
+++ pciutils-2.2.10/pciutils.lsm	2008-02-12 12:32:22.000000000 +0100
@@ -1,14 +1,14 @@
 Begin3
 Title:          The PCI Utilities
-Version:        2.2.9
-Entered-date:   071106
+Version:        2.2.10
+Entered-date:   080212
 Description:    This package contains various utilities for inspecting and
 		setting of devices connected to the PCI bus.
 Keywords:       kernel, pci, lspci, setpci, libpci
 Author:         mj@ucw.cz (Martin Mares)
 Maintained-by:  mj@ucw.cz (Martin Mares)
-Primary-site:   atrey.karlin.mff.cuni.cz pub/linux/pci/pciutils-2.2.9.tar.gz
-Alternate-site: ftp.kernel.org pub/software/utils/pciutils/pciutils-2.2.9.tar.gz
-Alternate-site: metalab.unc.edu pub/Linux/hardware/pciutils-2.2.9.tar.gz
+Primary-site:   atrey.karlin.mff.cuni.cz pub/linux/pci/pciutils-2.2.10.tar.gz
+Alternate-site: ftp.kernel.org pub/software/utils/pciutils/pciutils-2.2.10.tar.gz
+Alternate-site: metalab.unc.edu pub/Linux/hardware/pciutils-2.2.10.tar.gz
 Copying-policy: GPL
 End
diff -ruN pciutils-2.2.9/pciutils.spec pciutils-2.2.10/pciutils.spec
--- pciutils-2.2.9/pciutils.spec	2007-11-06 22:29:28.000000000 +0100
+++ pciutils-2.2.10/pciutils.spec	2008-02-12 12:32:23.000000000 +0100
@@ -1,5 +1,5 @@
 Name:		pciutils
-Version:	2.2.9
+Version:	2.2.10
 Release: 	1
 Source:		ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/%{name}-%{version}.tar.gz
 Copyright:	GNU GPL
diff -ruN pciutils-2.2.9/setpci.c pciutils-2.2.10/setpci.c
--- pciutils-2.2.9/setpci.c	2006-05-31 18:03:18.000000000 +0200
+++ pciutils-2.2.10/setpci.c	2008-02-11 21:13:55.000000000 +0100
@@ -258,10 +258,10 @@
       fprintf(stderr, "\n\n");
     }
   fprintf(stderr,
-"Usage: setpci [<options>] (<device>+ <reg>[=<values>]*)*\n\
--f\t\tDon't complain if there's nothing to do\n\
--v\t\tBe verbose\n\
--D\t\tList changes, don't commit them\n"
+"Usage: setpci [<options>] (<device>+ <reg>[=<values>]*)*\n"
+"-f\t\tDon't complain if there's nothing to do\n"
+"-v\t\tBe verbose\n"
+"-D\t\tList changes, don't commit them\n"
 GENERIC_HELP
 "<device>:\t-s [[[<domain>]:][<bus>]:][<slot>][.[<func>]]\n"
 "\t|\t-d [<vendor>]:[<device>]\n"
diff -ruN pciutils-2.2.9/update-pciids.man pciutils-2.2.10/update-pciids.man
--- pciutils-2.2.9/update-pciids.man	2006-05-05 14:18:34.000000000 +0200
+++ pciutils-2.2.10/update-pciids.man	2008-01-07 22:03:04.000000000 +0100
@@ -6,6 +6,7 @@
 
 .SH SYNOPSIS
 .B update-pciids
+.RB [ -q ]
 
 .SH DESCRIPTION
 .B update-pciids
@@ -15,6 +16,11 @@
 This utility requires curl, wget or lynx to be installed. If gzip or bzip2
 are available, it automatically downloads the compressed version of the list.
 
+.SH OPTIONS
+.TP
+.B -q
+Be quiet and do not report anything except errors.
+
 .SH FILES
 .TP
 .B @IDSDIR@/pci.ids
diff -ruN pciutils-2.2.9/update-pciids.sh pciutils-2.2.10/update-pciids.sh
--- pciutils-2.2.9/update-pciids.sh	2006-09-09 12:36:17.000000000 +0200
+++ pciutils-2.2.10/update-pciids.sh	2008-01-07 22:01:11.000000000 +0100
@@ -1,30 +1,41 @@
 #!/bin/sh
 
+[ "$1" = "-q" ] && quiet=true || quiet=false
+
 set -e
 SRC="http://pciids.sourceforge.net/v2.2/pci.ids"
 DEST=pci.ids
 PCI_COMPRESSED_IDS=
 GREP=grep
 
+# if pci.ids is read-only (because the filesystem is read-only),
+# then just skip this whole process.
+if ! touch ${DEST} >/dev/null 2>&1 ; then
+	${quiet} || echo "${DEST} is read-only, exiting." 1>&2
+	exit 1
+fi
+
 if [ -n "$PCI_COMPRESSED_IDS" ] ; then
 	DECOMP="cat"
 	SRC="$SRC.gz"
 	GREP=zgrep
-elif which bzip2 >/dev/null ; then
+elif which bzip2 >/dev/null 2>&1 ; then
 	DECOMP="bzip2 -d"
 	SRC="$SRC.bz2"
-elif which gzip >/dev/null ; then
+elif which gzip >/dev/null 2>&1 ; then
 	DECOMP="gzip -d"
 	SRC="$SRC.gz"
 else
 	DECOMP="cat"
 fi
 
-if which curl >/dev/null ; then
+if which curl >/dev/null 2>&1 ; then
 	DL="curl -o $DEST.new $SRC"
-elif which wget >/dev/null ; then
+    ${quiet} && DL="$DL -s -S"
+elif which wget >/dev/null 2>&1 ; then
 	DL="wget -O $DEST.new $SRC"
-elif which lynx >/dev/null ; then
+	${quiet} && DL="$DL -q"
+elif which lynx >/dev/null 2>&1 ; then
 	DL="eval lynx -source $SRC >$DEST.new"
 else
 	echo >&2 "update-pciids: cannot find curl, wget or lynx"
@@ -55,4 +66,10 @@
 mv $DEST.neww $DEST
 rm $DEST.new
 
-echo "Done."
+# Older versions did not compress the ids file, so let's make sure we
+# clean that up.
+if [ ${DEST%.gz} != ${DEST} ] ; then
+	rm -f ${DEST%.gz} ${DEST%.gz}.old
+fi
+
+${quiet} || echo "Done."
diff -ruN pciutils-2.2.9/win32/config.h pciutils-2.2.10/win32/config.h
--- pciutils-2.2.9/win32/config.h	2007-11-06 22:29:28.000000000 +0100
+++ pciutils-2.2.10/win32/config.h	2008-02-12 12:32:23.000000000 +0100
@@ -3,4 +3,4 @@
 #define PCI_HAVE_PM_INTEL_CONF
 #define PCI_IDS "pci.ids"
 #define PCI_PATH_IDS_DIR "."
-#define PCILIB_VERSION "2.2.9"
+#define PCILIB_VERSION "2.2.10"
