summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2007-02-19 20:18:20 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2007-02-19 20:18:20 +0000
commitb8057ff11a14e09e507ed721f53ea704da1d24d7 (patch)
treefd013e0b4deb353ab1dd22cace25f58185e1810b
parent5ddcfd16e0b5d412653a5bc1440eddf599578cb1 (diff)
downloadnixlib-b8057ff11a14e09e507ed721f53ea704da1d24d7.tar
nixlib-b8057ff11a14e09e507ed721f53ea704da1d24d7.tar.gz
nixlib-b8057ff11a14e09e507ed721f53ea704da1d24d7.tar.bz2
nixlib-b8057ff11a14e09e507ed721f53ea704da1d24d7.tar.lz
nixlib-b8057ff11a14e09e507ed721f53ea704da1d24d7.tar.xz
nixlib-b8057ff11a14e09e507ed721f53ea704da1d24d7.tar.zst
nixlib-b8057ff11a14e09e507ed721f53ea704da1d24d7.zip
* Latest pciutils.
svn path=/nixpkgs/trunk/; revision=7914
-rw-r--r--pkgs/development/libraries/pciutils/default.nix11
-rw-r--r--pkgs/development/libraries/pciutils/pciutils-devicetype.patch136
-rw-r--r--pkgs/development/libraries/pciutils/pciutils-path.patch12
-rw-r--r--pkgs/tools/system/pciutils/builder.sh (renamed from pkgs/development/libraries/pciutils/builder.sh)3
-rw-r--r--pkgs/tools/system/pciutils/default.nix11
-rw-r--r--pkgs/top-level/all-packages.nix4
6 files changed, 17 insertions, 160 deletions
diff --git a/pkgs/development/libraries/pciutils/default.nix b/pkgs/development/libraries/pciutils/default.nix
deleted file mode 100644
index 67605200170b..000000000000
--- a/pkgs/development/libraries/pciutils/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "pciutils-2.2.1";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://nix.cs.uu.nl/dist/tarballs/pciutils-2.2.1.tar.bz2;
-    md5 = "483a08dc864ec42497ad95310bb1a8ee";
-  };
-  patches = [./pciutils-path.patch ./pciutils-devicetype.patch];
-}
diff --git a/pkgs/development/libraries/pciutils/pciutils-devicetype.patch b/pkgs/development/libraries/pciutils/pciutils-devicetype.patch
deleted file mode 100644
index 87e45b44cebd..000000000000
--- a/pkgs/development/libraries/pciutils/pciutils-devicetype.patch
+++ /dev/null
@@ -1,136 +0,0 @@
---- pciutils-2.2.1/lib/sysfs.c.devicetype	2005-09-21 07:51:00.000000000 -0400
-+++ pciutils-2.2.1/lib/sysfs.c	2005-12-13 17:02:12.000000000 -0500
-@@ -164,7 +164,6 @@
- 	  sysfs_get_resources(d);
- 	  d->irq = sysfs_get_value(d, "irq");
- 	  d->known_fields = PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES;
--#if 0
- 	  /*
- 	   *  We prefer reading these from the config registers, it's faster.
- 	   *  However, it would be possible and maybe even useful to hack the kernel
-@@ -173,8 +172,8 @@
- 	   */
- 	  d->vendor_id = sysfs_get_value(d, "vendor");
- 	  d->device_id = sysfs_get_value(d, "device");
--	  d->known_fields |= PCI_FILL_IDENT;
--#endif
-+	  d->device_class = sysfs_get_value(d, "class") >> 8;
-+	  d->known_fields |= PCI_FILL_IDENT | PCI_FILL_CLASS;
- 	}
-       pci_link_dev(a, d);
-     }
---- pciutils-2.2.1/lib/pci.h.devicetype	2005-09-10 08:10:54.000000000 -0400
-+++ pciutils-2.2.1/lib/pci.h	2005-12-13 17:02:12.000000000 -0500
-@@ -84,6 +84,7 @@
-   /* These fields are set by pci_fill_info() */
-   int known_fields;			/* Set of info fields already known */
-   u16 vendor_id, device_id;		/* Identity of the device */
-+  u16 device_class;			/* PCI device class */
-   int irq;				/* IRQ number */
-   pciaddr_t base_addr[6];		/* Base addresses */
-   pciaddr_t size[6];			/* Region sizes */
-@@ -118,6 +119,7 @@
- #define PCI_FILL_BASES		4
- #define PCI_FILL_ROM_BASE	8
- #define PCI_FILL_SIZES		16
-+#define PCI_FILL_CLASS		32
- #define PCI_FILL_RESCAN		0x10000
- 
- void pci_setup_cache(struct pci_dev *, u8 *cache, int len);
---- pciutils-2.2.1/lib/generic.c.devicetype	2004-08-13 16:15:23.000000000 -0400
-+++ pciutils-2.2.1/lib/generic.c	2005-12-13 17:02:12.000000000 -0500
-@@ -46,7 +46,8 @@
- 	  d->func = t->func;
- 	  d->vendor_id = vd & 0xffff;
- 	  d->device_id = vd >> 16U;
--	  d->known_fields = PCI_FILL_IDENT;
-+	  d->device_class = pci_read_byte(t,PCI_CLASS_DEVICE+1) << 8 | pci_read_byte(t, PCI_CLASS_DEVICE);
-+	  d->known_fields = PCI_FILL_IDENT | PCI_FILL_CLASS;
- 	  d->hdrtype = ht;
- 	  pci_link_dev(a, d);
- 	  switch (ht)
-@@ -86,6 +87,8 @@
-       d->vendor_id = pci_read_word(d, PCI_VENDOR_ID);
-       d->device_id = pci_read_word(d, PCI_DEVICE_ID);
-     }
-+  if (flags & PCI_FILL_CLASS)
-+      d->device_class = pci_read_byte(d, PCI_CLASS_DEVICE+1) << 8 | pci_read_byte(d, PCI_CLASS_DEVICE);
-   if (flags & PCI_FILL_IRQ)
-     d->irq = pci_read_byte(d, PCI_INTERRUPT_LINE);
-   if (flags & PCI_FILL_BASES)
---- pciutils-2.2.1/lib/example.c.devicetype	2000-03-09 03:38:33.000000000 -0500
-+++ pciutils-2.2.1/lib/example.c	2005-12-13 17:02:12.000000000 -0500
-@@ -21,7 +21,7 @@
-   pci_scan_bus(pacc);		/* We want to get the list of devices */
-   for(dev=pacc->devices; dev; dev=dev->next)	/* Iterate over all devices */
-     {
--      pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES);	/* Fill in header info we need */
-+      pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_CLASS);	/* Fill in header info we need */
-       c = pci_read_word(dev, PCI_CLASS_DEVICE);	/* Read config register directly */
-       printf("%02x:%02x.%d vendor=%04x device=%04x class=%04x irq=%d base0=%lx\n",
- 	     dev->bus, dev->dev, dev->func, dev->vendor_id, dev->device_id,
---- pciutils-2.2.1/lspci.c.devicetype	2005-11-26 06:48:29.000000000 -0500
-+++ pciutils-2.2.1/lspci.c	2005-12-13 17:04:39.000000000 -0500
-@@ -123,7 +123,7 @@
- 	d->config_cached += 64;
-     }
-   pci_setup_cache(p, d->config, d->config_cached);
--  pci_fill_info(p, PCI_FILL_IDENT | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES);
-+  pci_fill_info(p, PCI_FILL_IDENT | PCI_FILL_CLASS | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES);
-   return d;
- }
- 
-@@ -255,7 +255,7 @@
-   printf(" %s: %s",
- 	 pci_lookup_name(pacc, classbuf, sizeof(classbuf),
- 			 PCI_LOOKUP_CLASS,
--			 get_conf_word(d, PCI_CLASS_DEVICE)),
-+			 p->device_class),
- 	 pci_lookup_name(pacc, devbuf, sizeof(devbuf),
- 			 PCI_LOOKUP_VENDOR | PCI_LOOKUP_DEVICE,
- 			 p->vendor_id, p->device_id));
-@@ -267,7 +267,7 @@
-       c = get_conf_byte(d, PCI_CLASS_PROG);
-       x = pci_lookup_name(pacc, devbuf, sizeof(devbuf),
- 			  PCI_LOOKUP_PROGIF | PCI_LOOKUP_NO_NUMBERS,
--			  get_conf_word(d, PCI_CLASS_DEVICE), c);
-+			  p->device_class, c);
-       if (c || x)
- 	{
- 	  printf(" (prog-if %02x", c);
-@@ -1585,7 +1585,7 @@
-   struct pci_dev *p = d->dev;
-   word status = get_conf_word(d, PCI_STATUS);
-   word cmd = get_conf_word(d, PCI_COMMAND);
--  word class = get_conf_word(d, PCI_CLASS_DEVICE);
-+  word class = p->device_class;
-   byte bist = get_conf_byte(d, PCI_BIST);
-   byte htype = get_conf_byte(d, PCI_HEADER_TYPE) & 0x7f;
-   byte latency = get_conf_byte(d, PCI_LATENCY_TIMER);
-@@ -1783,7 +1783,7 @@
-       show_slot_name(d);
-       putchar('\n');
-       printf("Class:\t%s\n",
--	     pci_lookup_name(pacc, classbuf, sizeof(classbuf), PCI_LOOKUP_CLASS, get_conf_word(d, PCI_CLASS_DEVICE)));
-+	     pci_lookup_name(pacc, classbuf, sizeof(classbuf), PCI_LOOKUP_CLASS, p->device_class));
-       printf("Vendor:\t%s\n",
- 	     pci_lookup_name(pacc, vendbuf, sizeof(vendbuf), PCI_LOOKUP_VENDOR, p->vendor_id, p->device_id));
-       printf("Device:\t%s\n",
-@@ -1805,7 +1805,7 @@
-       show_slot_name(d);
-       printf(" \"%s\" \"%s\" \"%s\"",
- 	     pci_lookup_name(pacc, classbuf, sizeof(classbuf), PCI_LOOKUP_CLASS,
--			     get_conf_word(d, PCI_CLASS_DEVICE)),
-+			     p->device_class),
- 	     pci_lookup_name(pacc, vendbuf, sizeof(vendbuf), PCI_LOOKUP_VENDOR,
- 			     p->vendor_id, p->device_id),
- 	     pci_lookup_name(pacc, devbuf, sizeof(devbuf), PCI_LOOKUP_DEVICE,
-@@ -1929,7 +1929,7 @@
-   last_br = &host_bridge.chain;
-   for(d=first_dev; d; d=d->next)
-     {
--      word class = get_conf_word(d, PCI_CLASS_DEVICE);
-+      word class = d->dev->device_class;
-       byte ht = get_conf_byte(d, PCI_HEADER_TYPE) & 0x7f;
-       if (class == PCI_CLASS_BRIDGE_PCI &&
- 	  (ht == PCI_HEADER_TYPE_BRIDGE || ht == PCI_HEADER_TYPE_CARDBUS))
diff --git a/pkgs/development/libraries/pciutils/pciutils-path.patch b/pkgs/development/libraries/pciutils/pciutils-path.patch
deleted file mode 100644
index fb46403735a1..000000000000
--- a/pkgs/development/libraries/pciutils/pciutils-path.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN pciutils-2.2.1/Makefile pciutils-2.2.1.new/Makefile
---- pciutils-2.2.1/Makefile	2005-11-26 14:00:57.000000000 +0100
-+++ pciutils-2.2.1.new/Makefile	2005-12-23 15:24:14.000000000 +0100
-@@ -7,7 +7,7 @@
- VERSION=2.2.1
- DATE=2005-11-26
- 
--PREFIX=/usr/local
-+PREFIX=$(out)
- SBINDIR=$(PREFIX)/sbin
- SHAREDIR=$(PREFIX)/share
- IDSDIR=$(SHAREDIR)
diff --git a/pkgs/development/libraries/pciutils/builder.sh b/pkgs/tools/system/pciutils/builder.sh
index cba1da836fc7..d61eaf5dec32 100644
--- a/pkgs/development/libraries/pciutils/builder.sh
+++ b/pkgs/tools/system/pciutils/builder.sh
@@ -1,5 +1,6 @@
 source $stdenv/setup
 
+postInstall=postInstall
 postInstall() {
   ensureDir $out/lib
   ensureDir $out/include/pci
@@ -7,6 +8,6 @@ postInstall() {
   cp lib/libpci.a $out/lib
 }
 
-postInstall=postInstall
+makeFlags="PREFIX=$out"
 
 genericBuild
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
new file mode 100644
index 000000000000..200d7a16e4fa
--- /dev/null
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, zlib}:
+
+stdenv.mkDerivation {
+  name = "pciutils-2.2.4";
+  builder = ./builder.sh;
+  src = fetchurl {
+    url = ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/pciutils-2.2.4.tar.gz;
+    sha256 = "17vaa1rij0q2xj8z8b8c6qq7a4g65gj419dsz067zlf6i3v0gz32";
+  };
+  buildInputs = [zlib];
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index eb7c68286cce..851875f407a9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -457,6 +457,10 @@ rec {
 
   patch = useFromStdenv (stdenv ? patch) stdenv.patch gnupatch;
 
+  pciutils = import ../tools/system/pciutils {
+    inherit fetchurl stdenv zlib;
+  };
+
   ploticus = import ../tools/graphics/ploticus {
     inherit fetchurl stdenv zlib libpng;
     inherit (xlibs) libX11;