New version with sparc patches for sanitized headers
authorGustavo Zacarias <gustavoz@gentoo.org>
Fri, 9 Feb 2007 15:13:14 +0000 (15:13 +0000)
committerGustavo Zacarias <gustavoz@gentoo.org>
Fri, 9 Feb 2007 15:13:14 +0000 (15:13 +0000)
Package-Manager: portage-2.1.2-r8

sys-libs/libkudzu/ChangeLog
sys-libs/libkudzu/Manifest
sys-libs/libkudzu/files/digest-libkudzu-1.2.57.1 [new file with mode: 0644]
sys-libs/libkudzu/files/kudzu-1.2.57.1-sbusfix.patch [new file with mode: 0644]
sys-libs/libkudzu/files/kudzu-1.2.57.1-sparc-keyboard.patch [new file with mode: 0644]
sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild [new file with mode: 0644]

index 9f2b3c2b3e956ca07fda42f3ceffc2e3295a4e84..240b1cc4b37200866afacb21b7aae9ea16753d54 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for sys-libs/libkudzu
 # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/libkudzu/ChangeLog,v 1.22 2007/01/31 17:55:28 wolf31o2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libkudzu/ChangeLog,v 1.23 2007/02/09 15:13:14 gustavoz Exp $
+
+*libkudzu-1.2.57.1 (09 Feb 2007)
+
+  09 Feb 2007; Gustavo Zacarias <gustavoz@gentoo.org>
+  +files/kudzu-1.2.57.1-sbusfix.patch,
+  +files/kudzu-1.2.57.1-sparc-keyboard.patch, +libkudzu-1.2.57.1.ebuild:
+  New version with sparc patches for sanitized headers
 
 *libkudzu-1.2.41 (31 Jan 2007)
 
index 317261d025575a24b890375c1c2ca0a4d58a2123..0b6e986efddada0faf3b9dec334b40b03048f8ac 100644 (file)
@@ -1,6 +1,14 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
+AUX kudzu-1.2.57.1-sbusfix.patch 2319 RMD160 b9c5735ec9e4e10f99f18816482906017c93aa55 SHA1 3ddf1d8c311ca79ea875c045ac4219292e203f71 SHA256 e1511617fbbeecf283de6ab1e4b2fa268cc05e77221750cbeb526ed50e13f81b
+MD5 023c461c6065a715b1afe84f7764e480 files/kudzu-1.2.57.1-sbusfix.patch 2319
+RMD160 b9c5735ec9e4e10f99f18816482906017c93aa55 files/kudzu-1.2.57.1-sbusfix.patch 2319
+SHA256 e1511617fbbeecf283de6ab1e4b2fa268cc05e77221750cbeb526ed50e13f81b files/kudzu-1.2.57.1-sbusfix.patch 2319
+AUX kudzu-1.2.57.1-sparc-keyboard.patch 5491 RMD160 9f9d04f0d9e7fbcc6b615eca3124d4d4ba35eff7 SHA1 df03f2d20c264904a13adfd1d94e4764cec4bbe2 SHA256 57bd061861324cdb5733f833d8c2c2b7e27a4ecb8282b9a7cdbf3bdac41f2405
+MD5 9152910cb259712c7484ef6e2451c179 files/kudzu-1.2.57.1-sparc-keyboard.patch 5491
+RMD160 9f9d04f0d9e7fbcc6b615eca3124d4d4ba35eff7 files/kudzu-1.2.57.1-sparc-keyboard.patch 5491
+SHA256 57bd061861324cdb5733f833d8c2c2b7e27a4ecb8282b9a7cdbf3bdac41f2405 files/kudzu-1.2.57.1-sparc-keyboard.patch 5491
 AUX ppc.patch 274 RMD160 1a63b42f7a4c3bb5dbfc10626d73b7a0dce4fd86 SHA1 ea7e72c9129269c7445b5ea253ca1283dc8241f8 SHA256 78f93eeacc54999f503651344c133117ab50fd5877d60eea55bbb41df7b93474
 MD5 04eb5ef4b3ee508cd36744ff1f709b39 files/ppc.patch 274
 RMD160 1a63b42f7a4c3bb5dbfc10626d73b7a0dce4fd86 files/ppc.patch 274
@@ -15,6 +23,7 @@ RMD160 fcae2ac900f98430208b7862a58161a3142a0668 files/typedef_byte.patch 410
 SHA256 befaebfd8c4109458e6e2a3a96d14b566a525946358e7b33921e09391498f83a files/typedef_byte.patch 410
 DIST kudzu-1.1.62.tar.bz2 208388 RMD160 bf19aa2ca9e9922c352a04b43ee99e8a90a7b16f SHA1 b6dacf3c0574990980b1af50a6250a61053549d8 SHA256 11e9a340b64c8f742f668b9eda8e1cc02accf8a7e0c46e0a92e71681ae0fdac1
 DIST kudzu-1.2.41.tar.gz 265371 RMD160 5d4142878f804b8359660e1acd92abf8df58d5cd SHA1 815be25357a13b506185a5d182db237beff83809 SHA256 a5dff9d599d00a70c5f3c01c4c1c47e9619d80f2b75d91c221bbeba0f1d9861b
+DIST kudzu-1.2.57.1.tar.gz 165855 RMD160 cca751661e549b08d9179a421442199f06c9ce64 SHA1 8b5d42792e660bf8090f23224e745791bf7c3882 SHA256 436a3fe44eb906155b954c85887c15d2d9e7ee5107641437443db8997b300687
 EBUILD libkudzu-1.1.62-r1.ebuild 1250 RMD160 98f365b18f055522ca7a2c1d932f03379274b753 SHA1 68740e05ce0d3c1477dc619e5e10340625e7cba5 SHA256 e3c65d35fa3e1bf78b4d204946c0d847fe92f4f10cc1354940299074dd6dde23
 MD5 951c48044f6b8f49092d23ab063925e1 libkudzu-1.1.62-r1.ebuild 1250
 RMD160 98f365b18f055522ca7a2c1d932f03379274b753 libkudzu-1.1.62-r1.ebuild 1250
@@ -23,10 +32,14 @@ EBUILD libkudzu-1.2.41.ebuild 1216 RMD160 89a99369f137d288518e1352506d7c6b9dbe44
 MD5 b4c08207f49ea1c36a1a273921f2a9e6 libkudzu-1.2.41.ebuild 1216
 RMD160 89a99369f137d288518e1352506d7c6b9dbe44af libkudzu-1.2.41.ebuild 1216
 SHA256 9da799d648c99239df8dbb39304b373bf26d5527da28de8624c81d9f116f4823 libkudzu-1.2.41.ebuild 1216
-MISC ChangeLog 3572 RMD160 4f03a06d32eacd77f0f32e2310d29d05dea00dee SHA1 5c29c2ef5f1070d80ae28a2c72dfaec42ef60efa SHA256 fa8cb54c08f750de3195a5ff2882329d8dd9dcdd7e7be5a44526d6fc172ffa55
-MD5 69853ed9d3da3e21691abcace81b0470 ChangeLog 3572
-RMD160 4f03a06d32eacd77f0f32e2310d29d05dea00dee ChangeLog 3572
-SHA256 fa8cb54c08f750de3195a5ff2882329d8dd9dcdd7e7be5a44526d6fc172ffa55 ChangeLog 3572
+EBUILD libkudzu-1.2.57.1.ebuild 1304 RMD160 0f63957a44883d568e38abe4ebc809e3a69043de SHA1 07d8e8aa0338c10833a99298b19857cfdc3be589 SHA256 a90eac5cafab818701346be299ac923ae47ac6f31db1e6ea1bc21d5363ddf80c
+MD5 eba8a8e13ef61d4de9b56cf82d914ec8 libkudzu-1.2.57.1.ebuild 1304
+RMD160 0f63957a44883d568e38abe4ebc809e3a69043de libkudzu-1.2.57.1.ebuild 1304
+SHA256 a90eac5cafab818701346be299ac923ae47ac6f31db1e6ea1bc21d5363ddf80c libkudzu-1.2.57.1.ebuild 1304
+MISC ChangeLog 3828 RMD160 17c77293494f737cde7fdd5d29288797b188e402 SHA1 a5cb69c030a73fcf7a73090fd5ef59b10d282582 SHA256 e677cc1b8adea536e21db646092496d555da5e54dc99619a96a6c7cf8fce1f6e
+MD5 99a0c32e2c37a15b9bccb4bf335c1061 ChangeLog 3828
+RMD160 17c77293494f737cde7fdd5d29288797b188e402 ChangeLog 3828
+SHA256 e677cc1b8adea536e21db646092496d555da5e54dc99619a96a6c7cf8fce1f6e ChangeLog 3828
 MISC metadata.xml 159 RMD160 8db5ed254a6b9baf8f53368da9e71c5532a46073 SHA1 1e72098aafb1fa729eba6fc8357c7e732eb79dee SHA256 b6e17484225400d76c65d178bf5a10dc0a8da7f345993c2acc63d1093a77c90d
 MD5 d86e5b5e47260e5a965eae2afe6d6d40 metadata.xml 159
 RMD160 8db5ed254a6b9baf8f53368da9e71c5532a46073 metadata.xml 159
@@ -37,10 +50,13 @@ SHA256 14bab35d480f9bcce1ed54b05b06eb9dbd1fcbbfdcdab8bf493d03ef7c9158ad files/di
 MD5 adae2dc80f382d0d1c453e9eff473949 files/digest-libkudzu-1.2.41 238
 RMD160 cc6627da5163fff49581f4a492b1a1cca50b18b3 files/digest-libkudzu-1.2.41 238
 SHA256 158269e23a31b99bf5afa2870782134e3fe0b2d7f1f0f508ac5277272953456f files/digest-libkudzu-1.2.41 238
+MD5 eab263f3baa2eea46f33b6fbc2fd010e files/digest-libkudzu-1.2.57.1 244
+RMD160 ab1b66818428a7587cfa593c761fd8f95f3ddf01 files/digest-libkudzu-1.2.57.1 244
+SHA256 3f5c4d917c80b36b064fe15162190d97825b4872cba79820d1195096003bf7f5 files/digest-libkudzu-1.2.57.1 244
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.1 (GNU/Linux)
+Version: GnuPG v1.4.6-ecc01.6 (GNU/Linux)
 
-iD8DBQFFwNgXkT4lNIS36YERAlWNAKCFZHk/BMANc3RVYJRt/4gbQuz/cgCeOEzT
-rKF0mdOEZzPJobLXUuQQBf8=
-=8VFt
+iD8DBQFFzI+VKRy60XGEcJIRAq7FAJ0ZgDMcoxUBBeAbO9jl79nxnba+AwCdEEOO
+D/9kx53YI6MmN9f1AbWf33k=
+=1+vO
 -----END PGP SIGNATURE-----
diff --git a/sys-libs/libkudzu/files/digest-libkudzu-1.2.57.1 b/sys-libs/libkudzu/files/digest-libkudzu-1.2.57.1
new file mode 100644 (file)
index 0000000..b23b866
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 0102005f618d4ddbf79a4c9257f8f535 kudzu-1.2.57.1.tar.gz 165855
+RMD160 cca751661e549b08d9179a421442199f06c9ce64 kudzu-1.2.57.1.tar.gz 165855
+SHA256 436a3fe44eb906155b954c85887c15d2d9e7ee5107641437443db8997b300687 kudzu-1.2.57.1.tar.gz 165855
diff --git a/sys-libs/libkudzu/files/kudzu-1.2.57.1-sbusfix.patch b/sys-libs/libkudzu/files/kudzu-1.2.57.1-sbusfix.patch
new file mode 100644 (file)
index 0000000..a5a0455
--- /dev/null
@@ -0,0 +1,72 @@
+--- kudzu-1.2.57.1/sbus.c.BAD  2006-12-10 11:28:07.000000000 -0500
++++ kudzu-1.2.57.1/sbus.c      2006-12-10 11:32:42.000000000 -0500
+@@ -162,6 +162,7 @@
+                       devClass = CLASS_NETWORK;
+               } else if (!strcmp(prop, "le")) {
+                       type = "Sun Lance Ethernet";
++                      module = "sunlance";
+                       devClass = CLASS_NETWORK;
+               } else if (!strcmp(prop, "qe")) {
+                       prop = prom_getproperty("channel#", &len);
+@@ -206,9 +207,11 @@
+                       devClass = CLASS_SCSI;
+               } else if (!strcmp(prop, "esp")) {
+                       type = "Sun Enhanced SCSI Processor (ESP)";
++                      module = "esp";
+                       devClass = CLASS_SCSI;
+               } else if (!strcmp(prop, "fas")) {
+                       type = "Sun Swift (ESP)";
++                      module = "esp";
+                       devClass = CLASS_SCSI;
+               } else if (!strcmp(prop, "ptisp")) {
+                       type = "Performance Technologies ISP";
+@@ -232,19 +235,19 @@
+                       while ((*prop >= 'A' && *prop <= 'Z') || *prop == ',')
+                               if (*prop++ == ',') break;
+               if (!strcmp(prop, "audio")) {
+-                      type = "AMD7930";
+-                      module = "amd7930";
++                      type = "Sun|AMD7930";
++                      module = "snd-sun-amd7930";
+                       devClass = CLASS_AUDIO;
+               } else if (!strcmp(prop, "CS4231")) {
+                       if (ebus)
+-                              type = "CS4231 EB2 DMA (PCI)";
++                              type = "Sun|CS4231 EB2 DMA (PCI)";
+                       else
+-                              type = "CS4231 APC DMA (SBUS)";
+-                      module = "cs4231";
++                              type = "Sun|CS4231 APC DMA (SBUS)";
++                      module = "snd-sun-cs4231";
+                       devClass = CLASS_AUDIO;
+               } else if (!strcmp(prop, "DBRIe")) {
+-                      type = "SS10/SS20 DBRI";
+-                      module = "dbri";
++                      type = "Sun|SS10/SS20 DBRI";
++                      module = "snd-sun-dbri";
+                       devClass = CLASS_AUDIO;
+               }
+               prop = prom_getproperty("device_type", &len);
+@@ -452,22 +455,6 @@
+ struct device *sbusProbe( enum deviceClass probeClass, int probeFlags,
+                   struct device *devlist) {
+-    if (probeClass & CLASS_MOUSE) {
+-      int fd;
+-      struct sbusDevice *mousedev;
+-
+-      if ((fd = open("/dev/sunmouse", O_RDONLY)) != -1) {
+-          /* FIXME: Should probably talk to the mouse to see
+-             if the connector is not empty. */
+-          close (fd);
+-          mousedev = sbusNewDevice(NULL);
+-          mousedev->type = CLASS_MOUSE;
+-          mousedev->device = strdup("sunmouse");
+-          mousedev->desc = strdup("Sun Mouse");
+-          mousedev->next = devlist;
+-          devlist = (struct device *)mousedev;
+-      }
+-    }
+     if (
+       (probeClass & CLASS_OTHER) ||
+       (probeClass & CLASS_NETWORK) ||
diff --git a/sys-libs/libkudzu/files/kudzu-1.2.57.1-sparc-keyboard.patch b/sys-libs/libkudzu/files/kudzu-1.2.57.1-sparc-keyboard.patch
new file mode 100644 (file)
index 0000000..56fbe59
--- /dev/null
@@ -0,0 +1,195 @@
+--- kudzu-1.2.57.1/keyboard.c.BAD      2006-12-10 11:36:40.000000000 -0500
++++ kudzu-1.2.57.1/keyboard.c  2006-12-10 11:44:58.000000000 -0500
+@@ -21,7 +21,6 @@
+ #include "keyboard.h"
+ #ifdef __sparc__
+-#include <asm/kbio.h>
+ #include <asm/openpromio.h>
+ #include <asm/types.h>
+ #endif
+@@ -96,7 +95,15 @@
+   {0, 0}
+ };
+-#if !defined(__s390__) && !defined(__s390x__)
++#if defined(__sparc__)
++static int termcmp(struct termios *a, struct termios *b) 
++{
++        if (a->c_iflag != b->c_iflag || a->c_oflag != b->c_oflag ||
++            a->c_cflag != b->c_cflag || a->c_lflag != b->c_lflag)
++                return 1;
++        return memcmp(a->c_cc, b->c_cc, sizeof(a->c_cc));
++}
++#elif !defined(__s390__) && !defined(__s390x__)
+ static int termcmp(struct termios *a, struct termios *b)
+ {
+       if (a->c_iflag != b->c_iflag || a->c_oflag != b->c_oflag ||
+@@ -110,150 +117,6 @@
+ struct device *keyboardProbe(enum deviceClass probeClass, int probeFlags,
+                       struct device *devlist)
+ {
+-#ifdef __sparc__
+-      int fd;
+-      char buf[256];
+-      struct keyboardDevice *kbddev;
+-      
+-      if (probeClass & CLASS_KEYBOARD) {
+-              static struct {
+-                int layout0, layout1, layout2;
+-                char *symbols;
+-                int use_iso9995_3;
+-              } sunkbd_translate[] = {
+-                { 0, 33, 80, "",      0, },
+-                { 1, 34, 81, "",      0, },
+-                { 2, -1, -1, "fr_BE", 0, },
+-                { 3, -1, -1, "ca",    0, },
+-                { 4, 36, 83, "dk",    1, },
+-                { 5, 37, 84, "de",    1, },
+-                { 6, 38, 85, "it",    1, },
+-                { 7, 39, 86, "nl",    0, },
+-                { 8, 40, 87, "no",    1, },
+-                { 9, 41, 88, "pt",    1, },
+-                { 10, 42, 89, "es",   1, },
+-                { 11, 43, 90, "se",   1, },
+-                { 12, 44, 91, "fr_CH",1, },
+-                { 13, 45, 92, "de_CH",1, },
+-                { 14, 46, 93, "gb",   1, },
+-                { 16, 47, 94, "ko",   0, },
+-                { 17, 48, 95, "tw",   0, },
+-                { 32, 49, 96, "jp",   0, },
+-                { 50, 97, -1, "fr_CA",0, },
+-                { 51, -1, -1, "hu",   0, },
+-                { 52, -1, -1, "pl",   0, },
+-                { 53, -1, -1, "cs",   0, },
+-                { 54, -1, -1, "ru",   0, },
+-                { -1, -1, -1, NULL,   0, }
+-              };
+-
+-              char twelve = 12;
+-              int fdstd = 0;
+-              char buf[4096];
+-
+-              for (fd = 0; fd <= 2; fd++) {
+-                  sprintf (buf, "/proc/self/fd/%d", fd);
+-                  if (readlink (buf, buf, 4096) == 12 &&
+-                      !strncmp (buf, "/dev/console", 12)) {
+-                      fdstd = 1;
+-                      break;
+-                  }
+-              }
+-              if (!fdstd) {
+-                  fd = open("/dev/console", O_RDWR);
+-                  if (fd < 0) return devlist;
+-              }
+-              
+-              kbddev=keyboardNewDevice(NULL);
+-              kbddev->type=CLASS_KEYBOARD;
+-              if (devlist)
+-                      kbddev->next = devlist;
+-              devlist = (struct device *) kbddev;
+-
+-              if (ioctl (fd, TIOCLINUX, &twelve) < 0) {
+-                      /* Serial console */
+-                      char desc[64];
+-                      struct serial_struct si;
+-                      int line = 0;
+-
+-                      if (ioctl (fd, TIOCGSERIAL, &si) >= 0) {
+-                          if (si.line & 1)
+-                              /* ttyb */
+-                              line = 1;
+-                      }
+-                      if (!fdstd) close(fd);
+-                      sprintf (desc, "Serial console tty%c", line + 'a');
+-                      fd = open("/dev/openprom", O_RDONLY);
+-                      if (fd >= 0) {
+-                              struct openpromio *op = (struct openpromio *)buf;
+-                              sprintf (op->oprom_array, "tty%c-mode", line + 'a');
+-                              op->oprom_size = 4096-128-4;
+-                              if (ioctl (fd, OPROMGETOPT, op) >= 0 &&
+-                                  op->oprom_size > 0 && op->oprom_size < 40) {
+-                                      strcat (desc, " ");
+-                                      op->oprom_array [op->oprom_size] = 0;
+-                                      strcat (desc, op->oprom_array);
+-                              }
+-                              close (fd);
+-                      }
+-                      kbddev->desc=strdup(desc);
+-                      kbddev->device=strdup("console");
+-                      return devlist;
+-              }
+-
+-              if (!fdstd) close(fd);
+-              fd=open("/dev/kbd", O_RDWR);
+-              if (fd < 0) {
+-                      /* PS/2 keyboard */
+-                      kbddev->desc=strdup("Generic PS/2 Keyboard");
+-              } else {
+-                      /* Sun keyboard */
+-                      int kbdtype, kbdlayout, i;
+-                      char *desc, *desclayout = NULL;
+-
+-                      kbddev->device=strdup("kbd");
+-                      desc = "Sun Type4 ";
+-                      if (ioctl(fd, KIOCTYPE, &kbdtype) >= 0)
+-                              switch (kbdtype) {
+-                              case 2: desc = "Sun Type2 "; break;
+-                              case 3: desc = "Sun Type3 "; break;
+-                              case 4: ioctl(fd, KIOCLAYOUT, &kbdlayout);
+-                                      if (kbdlayout < 33)
+-                                              desc = "Sun Type4 ";
+-                                      else switch (kbdlayout) {
+-                                      case 33: case 47: case 48: case 49:
+-                                      case 80: case 94: case 95: case 96:
+-                                              desc = "Sun Type5 "; break;
+-                                      case 34: case 81:
+-                                              desc = "Sun Type5 Unix "; break;
+-                                      default:
+-                                              desc = "Sun Type5 Euro "; break;
+-                                      }
+-                                      for (i = 0; sunkbd_translate[i].layout0 != -1; i++) {
+-                                              if (sunkbd_translate[i].layout0 == kbdlayout ||
+-                                                  sunkbd_translate[i].layout1 == kbdlayout ||
+-                                                  sunkbd_translate[i].layout2 == kbdlayout)
+-                                              break;
+-                                      }
+-                                      if (sunkbd_translate[i].layout0 != -1 &&
+-                                          sunkbd_translate[i].symbols[0])
+-                                              desclayout = sunkbd_translate[i].symbols;
+-                                      break;
+-                              }
+-                      if (desclayout) {
+-                              kbddev->desc = malloc(strlen(desc) + strlen(desclayout) + 1 + strlen("Keyboard") + 1);
+-                              strcpy (kbddev->desc, desc);
+-                              strcat (kbddev->desc, desclayout);
+-                              strcat (kbddev->desc, " Keyboard");
+-                      } else {
+-                              kbddev->desc = malloc(strlen(desc) + strlen("Keyboard") + 1);
+-                              strcpy (kbddev->desc, desc);
+-                              strcat (kbddev->desc, "Keyboard");
+-                      }
+-              }
+-              close (fd);
+-      }
+-#else
+       int fd;
+       char twelve = 12;
+       int fdstd = 0;
+@@ -311,7 +174,7 @@
+                       kbddev->device = strdup("ttySG0");
+               }
+ #endif
+-#if defined(__i386__) || defined(__x86_64__) || defined(__ia64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__ia64__) || defined(__sparc__)
+               int cfd;
+               struct termios cmode, mode;
+@@ -397,7 +260,6 @@
+                       kbddev->device=strdup(desc);
+               }
+       }
+-#endif
+ out:
+       return devlist;
+ }
diff --git a/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild b/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild
new file mode 100644 (file)
index 0000000..cf0ad0c
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild,v 1.1 2007/02/09 15:13:14 gustavoz Exp $
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Red Hat Hardware detection tools"
+HOMEPAGE="http://fedora.redhat.com/projects/additional-projects/kudzu/"
+SRC_URI="mirror://gentoo/kudzu-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 -mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DEPEND="dev-libs/popt
+       >=sys-apps/pciutils-2.2.4"
+RDEPEND="${DEPEND}
+       sys-apps/hwdata-gentoo
+       !sys-apps/kudzu"
+
+S=${WORKDIR}/kudzu-${PV}
+
+src_unpack() {
+       unpack ${A}
+
+    unpack ${A}
+       epatch \
+               "${FILESDIR}"/kudzu-${PV}-sbusfix.patch \
+               "${FILESDIR}"/kudzu-${PV}-sparc-keyboard.patch
+}
+
+
+src_compile() {
+       # Fix the modules directory to match Gentoo layout.
+       perl -pi -e 's|/etc/modutils/kudzu|/etc/modules.d/kudzu|g' *.*
+
+       if [ $(tc-arch-kernel) == "powerpc" ]; then
+               emake libkudzu.a libkudzu_loader.a ARCH="ppc" \
+                       RPM_OPT_FLAGS="${CFLAGS}" || die
+       else
+               emake libkudzu.a libkudzu_loader.a ARCH=$(tc-arch-kernel) \
+                       RPM_OPT_FLAGS="${CFLAGS}" || die
+       fi
+}
+
+src_install() {
+       keepdir /etc/sysconfig
+       insinto /usr/include/kudzu
+       doins *.h
+       dolib.a libkudzu.a libkudzu_loader.a
+}