summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Gianelloni <wolf31o2@gentoo.org>2005-06-14 16:27:12 +0000
committerChris Gianelloni <wolf31o2@gentoo.org>2005-06-14 16:27:12 +0000
commite5cceb4d869fdedeb77bd5855ff86421733cf7b7 (patch)
tree4eb8bf71afea0f3cd94cdb332027953b0ebe41fb /sys-apps/hwsetup/files
parentadd ldap files (diff)
downloadhistorical-e5cceb4d869fdedeb77bd5855ff86421733cf7b7.tar.gz
historical-e5cceb4d869fdedeb77bd5855ff86421733cf7b7.tar.bz2
historical-e5cceb4d869fdedeb77bd5855ff86421733cf7b7.zip
Added blacklist patch from Islam Amer <pharon@gmail.com> and closing bug #90639.
Package-Manager: portage-2.0.51.22-r1
Diffstat (limited to 'sys-apps/hwsetup/files')
-rw-r--r--sys-apps/hwsetup/files/digest-hwsetup-1.0-r31
-rw-r--r--sys-apps/hwsetup/files/hwsetup-1.0-alsa.patch99
-rw-r--r--sys-apps/hwsetup/files/hwsetup-1.0-dyn_blacklist.patch58
-rw-r--r--sys-apps/hwsetup/files/hwsetup-1.0-fastprobe.patch94
-rw-r--r--sys-apps/hwsetup/files/hwsetup-1.0-gentoo.patch96
5 files changed, 341 insertions, 7 deletions
diff --git a/sys-apps/hwsetup/files/digest-hwsetup-1.0-r3 b/sys-apps/hwsetup/files/digest-hwsetup-1.0-r3
new file mode 100644
index 000000000000..b3852e0446f7
--- /dev/null
+++ b/sys-apps/hwsetup/files/digest-hwsetup-1.0-r3
@@ -0,0 +1 @@
+MD5 12ed659c6ce09dd4c06ee4bc07f0adfe hwsetup_1.0-14.tar.gz 8491
diff --git a/sys-apps/hwsetup/files/hwsetup-1.0-alsa.patch b/sys-apps/hwsetup/files/hwsetup-1.0-alsa.patch
new file mode 100644
index 000000000000..e32094f6ada7
--- /dev/null
+++ b/sys-apps/hwsetup/files/hwsetup-1.0-alsa.patch
@@ -0,0 +1,99 @@
+Common subdirectories: hwsetup-1.0.fastprobe/debian and hwsetup-1.0/debian
+diff -u hwsetup-1.0.fastprobe/hwsetup.c hwsetup-1.0/hwsetup.c
+--- hwsetup-1.0.fastprobe/hwsetup.c 2005-06-10 16:29:24.000000000 -0400
++++ hwsetup-1.0/hwsetup.c 2005-06-10 16:30:40.000000000 -0400
+@@ -7,6 +7,7 @@
+ \****************************************************************************/
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <errno.h>
+@@ -24,7 +25,7 @@
+
+ #define VERSION "HWSETUP 1.0, an automatic hardware configuration tool\n" \
+ "(C) 2002 Klaus Knopper <knoppix@knopper.net>\n" \
+- "Modifications (C) 2004 René Rhéaume <rener@mediom.qc.ca>\n"
++ "Modifications (C) 2004,2005 René Rhéaume <rener@mediom.qc.ca>\n"
+
+ #define CARDSDB "/usr/share/hwdata/Cards"
+ #define XPATH "/usr/X11R6/bin/"
+@@ -88,7 +89,8 @@
+ "\t\t-a\tignore audio devices\n"
+ "\t\t-s\tignore scsi controllers\n"
+ "\t\t-n\tprobe only, don't configure anything\n"
+- "\t\t-f\trun a fast probe.");
++ "\t\t-f\trun a fast probe\n"
++ "\t\t-l\ttry to load an ALSA sound module.");
+ return option?1:0;
+ }
+
+@@ -526,10 +528,11 @@
+ return 0;
+ }
+
+-int hw_setup(enum deviceClass dc, int verbose, int probeonly, int skip, int fastprobe)
++int hw_setup(enum deviceClass dc, int verbose, int probeonly, int skip, int fastprobe, int tryalsa)
+ {
+- int i,mouse=0,cdrom=0,modem=0,scanner=0;
++ int i,mouse=0,cdrom=0,modem=0,scanner=0,alsaok=0;
+ int probeopt=fastprobe?PROBE_SAFE:PROBE_ALL;
++ const char *alsadriver=NULL;
+ struct device **currentDevs, *d, *serialmouse=NULL, *usbmouse=NULL;
+ if(verbose&VERBOSE_PROMPT) wpid=startwheel();
+ if((currentDevs=probeDevices(dc,BUS_UNSPEC,probeopt))==NULL) return -1;
+@@ -564,8 +567,23 @@
+ case CLASS_VIDEO: writeconfig("/etc/sysconfig/xserver",d,verbose);
+ break;
+ case CLASS_AUDIO: if(skip&SKIP_AUDIO) break;
++ if(tryalsa)
++ {
++ alsaok=0;
++ asprintf(&alsadriver, "snd-%s", d->driver);
++ if (load_mod(alsadriver,verbose) == 0)
++ {
++ d->driver=alsadriver;
++ writeconfig("/etc/sysconfig/sound",d,verbose);
++ alsaok=1;
++ }
++ }
++ if(!alsaok) /* fallback */
++ {
+ writeconfig("/etc/sysconfig/sound",d,verbose);
+ load_mod(d->driver,verbose); break;
++ }
++ break;
+ case CLASS_NETWORK: writeconfig("/etc/sysconfig/netcard",d,verbose);
+ load_mod(d->driver,verbose); break;
+ case CLASS_FLOPPY: writeconfig("/etc/sysconfig/floppy",d,verbose);
+@@ -581,12 +599,13 @@
+ }
+ }
+ }
++ if(alsadriver!=NULL) free(alsadriver);
+ return 0;
+ }
+
+ int main(int argc, char **argv)
+ {
+- int i, verbose=0, probeonly=0, skip=0, fast=0;
++ int i, verbose=0, probeonly=0, skip=0, fast=0, alsaaudio=0;
+ enum deviceClass dc=CLASS_UNSPEC;
+ for(i=1;i<argc;i++)
+ {
+@@ -596,6 +615,7 @@
+ else if(!strcasecmp(argv[i],"-s")) skip|=SKIP_SCSI;
+ else if(!strcasecmp(argv[i],"-n")) probeonly=1;
+ else if(!strcasecmp(argv[i],"-f")) fast=1;
++ else if(!strcasecmp(argv[i],"-l")) alsaaudio=1;
+ else return syntax(argv[i]);
+ }
+ /* Allow SIGTERM, SIGINT: rmmod depends on this. */
+@@ -604,5 +624,5 @@
+ #ifdef BLACKLIST
+ gen_blacklist();
+ #endif
+- return hw_setup(dc,verbose,probeonly,skip,fast);
++ return hw_setup(dc,verbose,probeonly,skip,fast,alsaaudio);
+ }
diff --git a/sys-apps/hwsetup/files/hwsetup-1.0-dyn_blacklist.patch b/sys-apps/hwsetup/files/hwsetup-1.0-dyn_blacklist.patch
new file mode 100644
index 000000000000..51558524eb37
--- /dev/null
+++ b/sys-apps/hwsetup/files/hwsetup-1.0-dyn_blacklist.patch
@@ -0,0 +1,58 @@
+diff -Naur hwsetup-1.0/hwsetup.c hwsetup-1.0-patched/hwsetup.c
+--- hwsetup-1.0/hwsetup.c 2003-06-02 22:01:28.000000000 +0300
++++ hwsetup-1.0-patched/hwsetup.c 2005-05-28 17:07:09.000000000 +0300
+@@ -42,8 +42,35 @@
+ /* Do not, under any circumstances, load these modules automatically, */
+ /* even if in pcitable. (libkudzu may ignore this, and the KNOPPIX */
+ /* autoconfig scripts may probe them, too) */
+-const char *blacklist[] = { "apm","agpgart","yenta_socket","i82092","i82365","tcic",
++char blacklist[200][1024] = { "apm","agpgart","yenta_socket","i82092","i82365","tcic",
+ "pcmcia_core","ds","ohci1394" };
++int blacklistsize = 9;
++
++void gen_blacklist(){
++ int n = 9;
++ int size = 0;
++ char *comment;
++ char module[1024];
++ FILE *stream;
++
++ if((stream = fopen ("/etc/hotplug/blacklist", "r")) != (FILE *)0) {
++ while((fgets(module, 1023, stream)) != (char *)0 ) {
++
++ comment = strchr(module, '#');
++ if (comment != 0) *comment = '\0';
++ comment = strchr(module, '\n');
++ if (comment != 0) *comment = '\0';
++ size = strlen(module);
++ if (size < 2) continue;
++ strcat (module , " \0");
++ strcpy(blacklist[n] , module);
++ n++;
++ //printf(module);
++ }
++ blacklistsize = n;
++ }
++}
++
+ #endif
+
+ /* These need to be global, so we can kill them in case of problems */
+@@ -349,7 +376,7 @@
+ pid_t mpid;
+ if((m==NULL)||(!strcmp("unknown",m))||(!strcmp("ignore",m))) return 0;
+ #ifdef BLACKLIST
+- for(i=0;i<(sizeof(blacklist)/sizeof(char*));i++)
++ for(i=0;i < blacklistsize;i++)
+ {
+ if(!strcmp(blacklist[i],m))
+ {
+@@ -569,5 +596,8 @@
+ /* Allow SIGTERM, SIGINT: rmmod depends on this. */
+ signal(SIGTERM,SIG_DFL); signal(SIGINT,SIG_DFL);
+ signal(SIGALRM,alarm_handler); alarm(MAX_TIME);
++#ifdef BLACKLIST
++ gen_blacklist();
++#endif
+ return hw_setup(dc,verbose,probeonly,skip);
+ }
diff --git a/sys-apps/hwsetup/files/hwsetup-1.0-fastprobe.patch b/sys-apps/hwsetup/files/hwsetup-1.0-fastprobe.patch
new file mode 100644
index 000000000000..8198bda72cc2
--- /dev/null
+++ b/sys-apps/hwsetup/files/hwsetup-1.0-fastprobe.patch
@@ -0,0 +1,94 @@
+Common subdirectories: hwsetup-1.0.dyn_blacklist/debian and hwsetup-1.0/debian
+diff -u hwsetup-1.0.dyn_blacklist/hwsetup.c hwsetup-1.0/hwsetup.c
+--- hwsetup-1.0.dyn_blacklist/hwsetup.c 2005-06-10 16:25:06.000000000 -0400
++++ hwsetup-1.0/hwsetup.c 2005-06-10 16:28:24.000000000 -0400
+@@ -3,6 +3,7 @@
+ * loads modules, generates /dev links, no isapnp autoconfiguration (yet) *
+ * needs kudzu-devel (ver. 0.23 and up) *
+ * Author: Klaus Knopper <knopper@knopper.net> *
++* Modifications: René Rhéaume <rener@mediom.qc.ca> *
+ \****************************************************************************/
+
+ #include <stdio.h>
+@@ -22,7 +23,8 @@
+ #endif
+
+ #define VERSION "HWSETUP 1.0, an automatic hardware configuration tool\n" \
+- "(C) 2002 Klaus Knopper <knoppix@knopper.net>\n\n"
++ "(C) 2002 Klaus Knopper <knoppix@knopper.net>\n" \
++ "Modifications (C) 2004 René Rhéaume <rener@mediom.qc.ca>\n"
+
+ #define CARDSDB "/usr/share/hwdata/Cards"
+ #define XPATH "/usr/X11R6/bin/"
+@@ -78,14 +80,15 @@
+
+ int syntax(char *option)
+ {
+- printf(VERSION);
++ puts(VERSION);
+ if(option) fprintf(stderr,"hwsetup: Unknown option '%s'\n\n",option);
+- printf("Usage: hwsetup\n"
+- " -v be verbose\n"
+- " -p print rotating prompt\n"
+- " -a ignore audio devices\n"
+- " -s ignore scsi controllers\n"
+- " -n probe only, don't configure anything.\n");
++ puts("Usage: hwsetup\n"
++ "\t\t-v\tbe verbose\n"
++ "\t\t-p\tprint rotating prompt\n"
++ "\t\t-a\tignore audio devices\n"
++ "\t\t-s\tignore scsi controllers\n"
++ "\t\t-n\tprobe only, don't configure anything\n"
++ "\t\t-f\trun a fast probe.");
+ return option?1:0;
+ }
+
+@@ -363,7 +366,7 @@
+ {
+ signal(SIGALRM,SIG_IGN);
+ fprintf(stderr,"\nWARNING: Autodetection seems to hang,\n"
+- "please check your computers BIOS settings.\n");
++ "please check your computer BIOS settings.\n");
+ fflush(stderr);
+ if(wpid) { kill(wpid,SIGTERM); usleep(2500000); kill(wpid,SIGKILL); wpid=0; }
+ exit(1); /* exit program */
+@@ -523,12 +526,13 @@
+ return 0;
+ }
+
+-int hw_setup(enum deviceClass dc, int verbose, int probeonly, int skip)
++int hw_setup(enum deviceClass dc, int verbose, int probeonly, int skip, int fastprobe)
+ {
+ int i,mouse=0,cdrom=0,modem=0,scanner=0;
++ int probeopt=fastprobe?PROBE_SAFE:PROBE_ALL;
+ struct device **currentDevs, *d, *serialmouse=NULL, *usbmouse=NULL;
+ if(verbose&VERBOSE_PROMPT) wpid=startwheel();
+- if((currentDevs=probeDevices(dc,BUS_UNSPEC,PROBE_ALL))==NULL) return -1;
++ if((currentDevs=probeDevices(dc,BUS_UNSPEC,probeopt))==NULL) return -1;
+ if(verbose&VERBOSE_PROMPT&&wpid>0) { kill(wpid,SIGTERM); wpid=0; usleep(160000); write(2,"\033[0m Done.\n",11); }
+ for(i=0;(d=currentDevs[i]);i++)
+ {
+@@ -582,7 +586,7 @@
+
+ int main(int argc, char **argv)
+ {
+- int i, verbose=0, probeonly=0, skip=0;
++ int i, verbose=0, probeonly=0, skip=0, fast=0;
+ enum deviceClass dc=CLASS_UNSPEC;
+ for(i=1;i<argc;i++)
+ {
+@@ -591,6 +595,7 @@
+ else if(!strcasecmp(argv[i],"-a")) skip|=SKIP_AUDIO;
+ else if(!strcasecmp(argv[i],"-s")) skip|=SKIP_SCSI;
+ else if(!strcasecmp(argv[i],"-n")) probeonly=1;
++ else if(!strcasecmp(argv[i],"-f")) fast=1;
+ else return syntax(argv[i]);
+ }
+ /* Allow SIGTERM, SIGINT: rmmod depends on this. */
+@@ -599,5 +604,5 @@
+ #ifdef BLACKLIST
+ gen_blacklist();
+ #endif
+- return hw_setup(dc,verbose,probeonly,skip);
++ return hw_setup(dc,verbose,probeonly,skip,fast);
+ }
diff --git a/sys-apps/hwsetup/files/hwsetup-1.0-gentoo.patch b/sys-apps/hwsetup/files/hwsetup-1.0-gentoo.patch
index 03de58c3eef9..90e030c3f502 100644
--- a/sys-apps/hwsetup/files/hwsetup-1.0-gentoo.patch
+++ b/sys-apps/hwsetup/files/hwsetup-1.0-gentoo.patch
@@ -1,21 +1,103 @@
-diff -urN hwsetup-1.0.orig/hwsetup.c hwsetup-1.0/hwsetup.c
---- hwsetup-1.0.orig/hwsetup.c 2003-06-02 15:01:28.000000000 -0400
-+++ hwsetup-1.0/hwsetup.c 2004-07-24 18:57:36.986337040 -0400
+diff -urN hwsetup-1.0.old/hwsetup.c hwsetup-1.0/hwsetup.c
+--- hwsetup-1.0.old/hwsetup.c 2003-06-02 15:01:28.000000000 -0400
++++ hwsetup-1.0/hwsetup.c 2005-06-10 15:47:07.000000000 -0400
+@@ -25,8 +25,8 @@
+ "(C) 2002 Klaus Knopper <knoppix@knopper.net>\n\n"
+
+ #define CARDSDB "/usr/share/hwdata/Cards"
+-#define XPATH "/usr/X11R6/bin/"
+-#define XMODPATH "/usr/X11R6/lib/modules/drivers/"
++#define XPATH "/usr/bin/"
++#define XMODPATH "/usr/lib/modules/drivers/"
+
+ #define VERBOSE_PRINT 1
+ #define VERBOSE_PROMPT 2
@@ -103,7 +103,7 @@
struct xinfo *getxinfo(struct device *d)
{
- const char *xfree4="XFree86", *xvesa4="vesa";
-+ const char *xfree4="X", *xvesa4="vesa";
++ const char *xorg="X", *xvesa="vesa";
const char *xpath=XPATH;
static struct xinfo xi;
int rescanned=0;
-@@ -206,7 +206,7 @@
+@@ -113,10 +113,10 @@
+ {
+ const char *driver[]={"3DLabs", "Mach64", "Mach32", "Mach8", "AGX",
+ "P9000", "S3 ViRGE", "S3V", "S3", "W32",
+- "8514", "I128", "SVGA", xfree4, NULL};
++ "8514", "I128", "SVGA", xorg, NULL};
+ const char *server[]={driver[0], driver[1], driver[2], driver[3], driver[4],
+ driver[5], "S3V", driver[7], driver[8], driver[9],
+- driver[10], driver[11], driver[12], xfree4, NULL};
++ driver[10], driver[11], driver[12], xorg, NULL};
+ if(!strncasecmp(d->driver,"Card:",5)) /* RedHat Cards-DB */
+ { /* Kudzu "Cards" format */
+ FILE *cardsdb;
+@@ -189,9 +189,9 @@
+ if(*xfree3server&&!*xi.xmodule)
+ strncpy(xi.xserver,xfree3server,sizeof(xi.xserver));
+ else
+- strncpy(xi.xserver,xfree4,sizeof(xi.xserver));
++ strncpy(xi.xserver,xorg,sizeof(xi.xserver));
+ }
+- if(!*xi.xmodule) strcpy(xi.xmodule,xvesa4);
++ if(!*xi.xmodule) strcpy(xi.xmodule,xvesa);
+ return &xi;
+ }
+ }
+@@ -202,14 +202,14 @@
+ if(strstr(d->driver,driver[i]))
+ {
+ char *xpos;
+- if((xpos=strstr(d->driver,xfree4))!=NULL) /* Check for XFree 4 */
++ if((xpos=strstr(d->driver,xorg))!=NULL)
{
char xm[32]="";
- strcpy(xi.xserver,xfree4);
+- strcpy(xi.xserver,xfree4);
- if(sscanf(xpos,"XFree86(%30[^)])",xm)==1)
++ strcpy(xi.xserver,xorg);
+ if(sscanf(xpos,"X(%30[^)])",xm)==1)
strcpy(xi.xmodule,xm);
else
- strcpy(xi.xmodule,xvesa4);
+- strcpy(xi.xmodule,xvesa4);
++ strcpy(xi.xmodule,xvesa);
+ }
+ else
+ {
+@@ -240,22 +240,22 @@
+ if(strstr(d->desc,"Trident")||strstr(d->desc,"TGUI")
+ ||strstr(d->desc,"Cirrus")||strstr(d->desc,"clgd"))
+ {
+- if(!strcmp(xi.xserver,xfree4))
++ if(!strcmp(xi.xserver,xorg))
+ strncpy(xi.xopts,"-depth 16",sizeof(xi.xopts)-1);
+ else
+ strncpy(xi.xopts,"-bpp 16",sizeof(xi.xopts)-1);
+ }
+ else if(strstr(d->desc,"Savage 4")) /* S3 Inc.|Savage 4 */
+ {
+- if(!strcmp(xi.xserver,xfree4))
++ if(!strcmp(xi.xserver,xorg))
+ strncpy(xi.xopts,"-depth 32",sizeof(xi.xopts)-1);
+ else
+ strncpy(xi.xopts,"-bpp 32",sizeof(xi.xopts)-1);
+ }
+ }
+ /* Fallback values */
+- if(!*xi.xserver) strcpy(xi.xserver,xfree4);
+- if(!*xi.xmodule) strcpy(xi.xmodule,xvesa4);
++ if(!*xi.xserver) strcpy(xi.xserver,xorg);
++ if(!*xi.xmodule) strcpy(xi.xmodule,xvesa);
+ return &xi;
+ }
+
+@@ -421,7 +421,7 @@
+ int writeconfig(char *name,struct device *d,int verbose)
+ {
+ FILE *f,*k;
+- const char *kconfig="/etc/sysconfig/knoppix";
++ const char *kconfig="/etc/sysconfig/gentoo";
+ unlink(name);
+ if((f=fopen(name,"w"))==NULL)
+ { /* Read-only filesystem on /etc ?! */