diff options
author | Chris Gianelloni <wolf31o2@gentoo.org> | 2005-06-14 16:27:12 +0000 |
---|---|---|
committer | Chris Gianelloni <wolf31o2@gentoo.org> | 2005-06-14 16:27:12 +0000 |
commit | e5cceb4d869fdedeb77bd5855ff86421733cf7b7 (patch) | |
tree | 4eb8bf71afea0f3cd94cdb332027953b0ebe41fb /sys-apps/hwsetup/files | |
parent | add ldap files (diff) | |
download | historical-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-r3 | 1 | ||||
-rw-r--r-- | sys-apps/hwsetup/files/hwsetup-1.0-alsa.patch | 99 | ||||
-rw-r--r-- | sys-apps/hwsetup/files/hwsetup-1.0-dyn_blacklist.patch | 58 | ||||
-rw-r--r-- | sys-apps/hwsetup/files/hwsetup-1.0-fastprobe.patch | 94 | ||||
-rw-r--r-- | sys-apps/hwsetup/files/hwsetup-1.0-gentoo.patch | 96 |
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 ξ + } + } +@@ -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 ξ + } + +@@ -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 ?! */ |