home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / share / envy / instun / objects.py < prev    next >
Encoding:
Python Source  |  2007-05-14  |  30.0 KB  |  951 lines

  1. #!/usr/bin/env python
  2. #Developed by Alberto Milone (aka tseliot)
  3.  
  4. import sys
  5. import commands
  6. import string
  7. import os, popen2, fcntl, fcntl, select
  8. from os.path import isfile
  9. import shutil
  10. import interfaceclasses
  11. import classes #instun/classes.py
  12. import main#instun/main.py
  13. import idcardlist
  14.  
  15. ver = '0.9.3'#SET ENVY VERSION HERE
  16. legacyoses = ['dapper', 'etch']
  17. debianos = ['etch']
  18.  
  19. '''DE\BLACKLIST FGLRX OR NVIDIA'''
  20. def deblacklist():#Remove any driver from the blacklist
  21.     blist = classes.Chooselist()
  22.     blist.driver = ''
  23.     blist.blacklist()
  24.  
  25. def blacklistnv():#Blacklist the Nvidia driver
  26.     blist = classes.Chooselist()
  27.     blist.driver = 'nv'
  28.     blist.blacklist()
  29.  
  30. def blacklistati():#Blacklist the Ati driver
  31.     blist = classes.Chooselist()
  32.     blist.driver = 'fglrx'
  33.     blist.blacklist()
  34.  
  35.  
  36. '''
  37. FUNCTIONS TO USE TO ENABLE\DISABLE COMPOSITE
  38. '''
  39. def removecomposite():#removes any trace of the Composite Extension
  40.     compositext = classes.Composite()
  41.     compositext.file = '/etc/X11/xorg.conf'
  42.     compositext.operate()
  43.  
  44. def enablecomposite():
  45.     composite = classes.Compositechoice()
  46.     composite.file = '/etc/X11/xorg.conf'
  47.     composite.operation = 'Enable'
  48.     composite.choosecomposite()
  49.  
  50. def disablecomposite():
  51.     composite = classes.Compositechoice()
  52.     composite.file = '/etc/X11/xorg.conf'
  53.     composite.operation = 'Disable'
  54.     composite.choosecomposite()
  55.     
  56.  
  57. '''
  58. FUNCTIONS TO USE TO ENABLE\DISABLE AIGLX
  59. '''
  60. def removeaiglx():#removes any trace of AIGLX
  61.     aiglxtext = classes.Aiglx()
  62.     aiglxtext.file = '/etc/X11/xorg.conf'
  63.     aiglxtext.operate()
  64.  
  65. def enableaiglx():
  66.     aiglx = classes.Aiglxchoice()
  67.     aiglx.file = '/etc/X11/xorg.conf'
  68.     aiglx.operation = 'on'
  69.     aiglx.chooseaiglx()
  70.  
  71. def disableaiglx():
  72.     aiglx = classes.Aiglxchoice()
  73.     aiglx.file = '/etc/X11/xorg.conf'
  74.     aiglx.operation = 'off'
  75.     aiglx.chooseaiglx()
  76.  
  77.  
  78. '''NVIDIA INSTALLATION SEQUENCE'''
  79. '''PART 2: THE REAL INSTALLATION SEQUENCE'''
  80. def nvidiainstall2():
  81.     task = classes.Specsdetect()#instantiate the class
  82.     task.init()#initialise empty "details"
  83.     task.cards = idcardlist.nvnewcards()#set the id lists
  84.     task.middlecards = idcardlist.nvmidcards()
  85.     task.legacycards = idcardlist.nvoldcards()
  86.     
  87.     task.details['cardbrand'] = 'nvidia'
  88.     task.codename()#os name
  89.     task.architecture()#arch
  90.     task.systemcheck()#system/arch compatibility
  91.     
  92.     task.drivertype()#latest, middle, oldest driver
  93.     task.nvreleasenum()#(e.g. '1.0-9746')
  94.     task.nvpkg()#pkg1
  95.     task.nvvarsum()#md5
  96.     
  97.     ##main.dm_stop()#shut down the Xserver
  98.     main.blkresmanager()#restricted drivers manager
  99.     main.dependencies()#dependencies for ATI and Nvidia installers
  100.     main.remove_nvidia_pkg()#remove previous nvidia packages
  101.     main.remove_ati_pkg()#remove previous ati packages
  102.     main.remove_debsrc()
  103.  
  104.     task.nvpkgname()#the name of the Nvidia installer
  105.     task.nvftpfolder()
  106.     task.nvaddress()#http link to the installer
  107.     #if task.details['drvtype'] != 'oldest':#TEMPORARY FIX FOR THE LEGACY DRIVER
  108.     task.getdriver()
  109.     #main.deldriverfolder()
  110.     #main.driverextract()
  111.     task.newkernelcontrol()
  112.     task.strippedver()
  113.     task.changelog()
  114.     task.control()
  115.     task.rules()
  116.     task.upstream()
  117.     task.nvidiapkgmake()
  118.     task.nvpkginstall1()#MOD
  119.     task.nvrmdeb()
  120.     task.nvkmod()
  121.     task.nvpkginstall2()#MOD
  122.     
  123.     main.remove_deb()
  124.     main.nvremovechanges()
  125.     task.buildclean()
  126.     task.nviconadd()
  127.     
  128.     task.xorgbackup()
  129.     task.restoregcc()
  130.     main.depmodules()
  131.     
  132.     #if task.details['drvtype'] != 'oldest':
  133.     if task.details['osname'] not in debianos:
  134.         blacklistnv()
  135.     #else: deblacklist()
  136.     a = main.xorgset()
  137.     if a == 'y':
  138.         task.nvxorgset()
  139.     main.xserverstart()#if the Xserver is restarted the program will exit
  140.     print 'ENVY: Operation Completed'
  141.     mainmenu()
  142.  
  143. '''PART 1: MAKE SURE THE COMPUTER HAS AN NVIDIA CARD'''
  144. def nvidiainstall():
  145.     compatible = classes.Compatibcheck()
  146.     compatible.brandname = 'Nvidia'
  147.     compat = compatible.check()#COMPATIBILITY CHECK
  148.     if compat != 'error':
  149.         nvidiainstall2()#CONTINUE THE INSTALLATION
  150.     else:
  151.         mainmenu()
  152.  
  153. '''NVIDIA INSTALLATION SEQUENCE'''
  154. '''PART 2: THE REAL INSTALLATION SEQUENCE'''
  155. def nvidiainstall2g():
  156.     task = classes.Specsdetect()#instantiate the class
  157.     task.init()#initialise empty "details"
  158.     task.cards = idcardlist.nvnewcards()#set the id lists
  159.     task.middlecards = idcardlist.nvmidcards()
  160.     task.legacycards = idcardlist.nvoldcards()
  161.     
  162.     task.details['cardbrand'] = 'nvidia'
  163.     task.codename()#os name
  164.     task.architecture()#arch
  165.     task.systemcheck()#system/arch compatibility
  166.     
  167.     task.drivertype()#latest, middle, oldest driver
  168.     task.nvreleasenum()#(e.g. '1.0-9746')
  169.     task.nvpkg()#pkg1
  170.     task.nvvarsum()#md5
  171.     
  172.     ##main.dm_stop()#shut down the Xserver
  173.     main.blkresmanager()#restricted drivers manager
  174.     main.dependencies()#dependencies for ATI and Nvidia installers
  175.     main.remove_nvidia_pkg()#remove previous nvidia packages
  176.     main.remove_ati_pkg()#remove previous ati packages
  177.     main.remove_debsrc()
  178.  
  179.     task.nvpkgname()#the name of the Nvidia installer
  180.     task.nvftpfolder()
  181.     task.nvaddress()#http link to the installer
  182.     
  183.     #if task.details['drvtype'] != 'oldest':#TEMPORARY FIX FOR THE LEGACY DRIVER
  184.     task.getdriver()
  185.     #main.deldriverfolder()
  186.     #main.driverextract()
  187.     task.newkernelcontrol()
  188.     task.strippedver()
  189.     task.changelog()
  190.     task.control()
  191.     task.rules()
  192.     task.upstream()
  193.     task.nvidiapkgmake()
  194.     task.nvpkginstall1()#MOD
  195.     task.nvrmdeb()
  196.     task.nvkmod()
  197.     task.nvpkginstall2()#MOD
  198.  
  199.  
  200.     main.remove_deb()
  201.     main.nvremovechanges()
  202.     task.buildclean()
  203.     task.nviconadd()
  204.     
  205.     task.xorgbackup()
  206.     task.restoregcc()
  207.     main.depmodules()
  208.  
  209.     if task.details['osname'] not in debianos:
  210.         blacklistnv()
  211.     #else: deblacklist()
  212.     #a = main.xorgset()
  213.     #if a == 'y':
  214.     #    task.nvxorgset()
  215.     #main.xserverstart()#if the Xserver is restarted the program will exit
  216.     os.system('sleep 3')
  217.     print 'ENVY: Operation Completed'
  218.     #mainmenu()
  219.  
  220. def nvidiainstallg():
  221.     compatible = classes.Compatibcheck()
  222.     compatible.brandname = 'Nvidia'
  223.     compat = compatible.check()#COMPATIBILITY CHECK
  224.     if compat != 'error':
  225.         nvidiainstall2g()#CONTINUE THE INSTALLATION
  226.     #else:
  227.     #    mainmenu()
  228.  
  229.  
  230.  
  231. '''NVIDIA UNINSTALLATION SEQUENCE'''
  232. '''PART 2: THE REAL UNINSTALLATION SEQUENCE'''
  233. def nvidiauninstall2g():
  234.     task = classes.Specsdetect()#instantiate the class
  235.     task.init()
  236.     task.nviconrm()
  237.     main.remove_nvidia_pkg()#remove previous nvidia packages
  238.     main.restoremesa()
  239.     task.codename()
  240.     if task.details['osname'] not in debianos:
  241.         deblacklist()
  242.     os.system('sleep 3')
  243.     print 'ENVY: Operation Completed'
  244.  
  245.  
  246.  
  247. '''PART 1: MAKE SURE THE COMPUTER HAS AN NVIDIA CARD'''
  248. def nvidiauninstallg():
  249.     compatible = classes.Compatibcheck()
  250.     compatible.brandname = 'Nvidia'
  251.     #compat = compatible.check()#COMPATIBILITY CHECK
  252.     #if compat != 'error':
  253.     nvidiauninstall2g()#CONTINUE THE INSTALLATION
  254.     #else:
  255.     #    mainmenu()
  256.  
  257. '''NVIDIA UNINSTALLATION SEQUENCE'''
  258. '''PART 2: THE REAL UNINSTALLATION SEQUENCE'''
  259. def nvidiauninstall2():
  260.     main.remove_deb()#Just in case
  261.     task = classes.Specsdetect()#instantiate the class
  262.     task.init()#initialise empty "details"
  263.     #task.cards = idcardlist.nvnewcards()#set the id lists
  264.     #task.middlecards = idcardlist.nvmidcards()
  265.     #task.legacycards = idcardlist.nvoldcards()
  266.  
  267.     task.details['cardbrand'] = 'nvidia'    
  268.     task.codename()#os name
  269.     task.architecture()#arch
  270.     task.systemcheck()#system/arch compatibility
  271.     task.nviconrm()
  272.     main.remove_nvidia_pkg()#remove previous nvidia packages
  273.     main.remove_ati_pkg()#remove previous ati packages
  274.     main.remove_debsrc()
  275.     main.restoremesa()
  276.  
  277.     if task.details['osname'] not in debianos:
  278.         deblacklist()
  279.     #task.nvxorgset()
  280.     #main.xserverstart()#if the Xserver is restarted the program will exit
  281.     print 'ENVY: Operation Completed'
  282.     mainmenu()
  283.  
  284.  
  285. '''PART 1: MAKE SURE THE COMPUTER HAS AN NVIDIA CARD'''
  286. def nvidiauninstall():
  287.     compatible = classes.Compatibcheck()
  288.     compatible.brandname = 'Nvidia'
  289.     #compat = compatible.check()#COMPATIBILITY CHECK
  290.     #if compat != 'error':
  291.     nvidiauninstall2()#CONTINUE THE INSTALLATION
  292.     #else:
  293.     #    mainmenu()
  294.  
  295.  
  296. def maninstall2():
  297.     task = classes.Specsdetect()#instantiate the class
  298.     task.init()#initialise empty "details"
  299.     #task.cards = idcardlist.nvnewcards()#set the id lists
  300.     #task.middlecards = idcardlist.nvmidcards()
  301.     #task.legacycards = idcardlist.nvoldcards()
  302.     
  303.     task.codename()#os name
  304.     task.architecture()#arch
  305.     task.systemcheck()#system/arch compatibility
  306.     
  307.     #task.drivertype()#latest, middle, oldest driver
  308.     task.manualdetails()#LET YOU CHOOSE THE CARD AND DRIVER
  309.     main.blkresmanager()#restricted drivers manager
  310.     
  311.     if task.details['cardbrand'] == 'nvidia':
  312.         task.nvreleasenum()#md5
  313.         task.nvpkg()#pkg1
  314.         task.nvvarsum()#md5
  315.         
  316.         ##main.dm_stop()#shut down the Xserver
  317.     
  318.         main.dependencies()#dependencies for ATI and Nvidia installers
  319.         main.remove_nvidia_pkg()#remove previous nvidia packages
  320.         main.remove_ati_pkg()#remove previous ati packages
  321.         main.remove_debsrc()
  322.  
  323.         task.nvpkgname()#the name of the Nvidia installer
  324.         task.nvftpfolder()
  325.         task.nvaddress()#http link to the installer
  326.         
  327.         #if task.details['drvtype'] != 'oldest':#TEMPORARY FIX FOR THE LEGACY DRIVER    
  328.         task.getdriver()
  329.         #main.deldriverfolder()
  330.         #main.driverextract()
  331.         task.newkernelcontrol()
  332.         task.strippedver()
  333.         task.changelog()
  334.         task.control()
  335.         task.rules()
  336.         task.upstream()
  337.         task.nvidiapkgmake()
  338.         task.nvpkginstall1()#MOD
  339.         task.nvrmdeb()
  340.         task.nvkmod()
  341.         task.nvpkginstall2()#MOD
  342.     
  343.         main.remove_deb()
  344.         main.nvremovechanges()
  345.         task.buildclean()
  346.  
  347.         task.nviconadd()
  348.         task.geforcegocheck()#only for geforce go and manual installation
  349.         task.xorgbackup()
  350.         task.restoregcc()
  351.         main.depmodules()
  352.  
  353.         if task.details['osname'] not in debianos:
  354.             deblacklist()
  355.         #else: deblacklist()
  356.         
  357.         a = main.xorgset()
  358.         if a == 'y':
  359.             task.nvxorgset()
  360.         main.xserverstart()#if the Xserver is restarted the program will exit
  361.     
  362.     elif task.details['cardbrand'] == 'ati':
  363.         if task.details['osname'] not in legacyoses and task.details['drvtype'] == 'oldest':
  364.             print 'ENVY ERROR: ATI\'s legacy driver does not support your operative system'
  365.         else:
  366.             main.remove_deb()#Just in case
  367.             #task = classes.Specsdetect()#instantiate the class
  368.             ##task.init()#initialise empty "details"
  369.             #task.cards = idcardlist.atinewcards()#set the id lists
  370.             #task.middlecards = idcardlist.atimidcards()
  371.             #task.legacycards = idcardlist.atioldcards()
  372.             
  373.             #task.codename()#os name
  374.             #task.architecture()#arch
  375.             #task.systemcheck()#system/arch compatibility
  376.             
  377.             #task.drivertype()#latest, middle, oldest driver
  378.             task.atireleasenum()#(e.g. '8.28.8')
  379.             #task.nvpkg()#pkg1
  380.             task.ativarsum()#md5
  381.             
  382.             #main.dm_stop()#shut down the Xserver
  383.             
  384.             main.dependencies()#dependencies for ATI and Nvidia installers
  385.             main.remove_ati_pkg()#remove previous nvidia packages
  386.             main.remove_nvidia_pkg()
  387.             main.remove_debsrc()
  388.     
  389.             task.atipkgname()#the name of the ATI installer
  390.             #task.nvftpfolder()
  391.             task.atiaddress()#http link to the installer
  392.             
  393.             task.getdriver()
  394.             #main.deldriverfolder()
  395.             #main.driverextract()
  396.             task.newkernelcontrol()
  397.             
  398.             task.atirmdeb()#Remove any old fglrx deb from /usr/src/
  399.             task.atipkgmake()#makepackages
  400.             task.atipkginstall()
  401.             task.atikmod()
  402.             main.remove_deb()#Just in case
  403.     
  404.             task.xorgbackup()
  405.             task.restoregcc()
  406.             main.depmodules()
  407.     
  408.         if task.details['osname'] not in debianos:
  409.             blacklistati()
  410.             
  411.             main.atiremovechanges()
  412.             
  413.             a = main.xorgset()
  414.             if a == 'y':
  415.                 task.atixorgset()
  416.             main.pcrestart()#the ATI driver needs a reboot
  417.         #main.xserverstart()#if the Xserver is restarted the program will exit
  418.         #os.system('sleep 3')
  419.         print 'ENVY: Operation Completed'
  420.     mainmenu()
  421.  
  422. '''PART 1: MANUAL INSTALLATION''' 
  423. def maninstall():
  424.     #compatible = classes.Compatibcheck()
  425.     #compatible.brandname = 'Nvidia'
  426.     #compat = compatible.check()#COMPATIBILITY CHECK
  427.     #if compat != 'error':
  428.     maninstall2()#CONTINUE THE INSTALLATION
  429.     #else:
  430.     #    mainmenu()
  431.  
  432. #def maninstall4(brand, drv):
  433. #    task = classes.Specsdetect()#instantiate the class
  434. #    task.init()#initialise empty "details"
  435. #    task.details['cardbrand'] = '\'' + brand + '\''
  436. #    task.details['drvtype'] = '\'' + drv + '\''
  437. #    print task.details['cardbrand']
  438. #    print task.details['drvtype']
  439.  
  440. def maninstall3(brand, drv):
  441.     #print brand
  442.     #print drv
  443.     task = classes.Specsdetect()#instantiate the class
  444.     task.init()#initialise empty "details"
  445.     #task.cards = idcardlist.nvnewcards()#set the id lists
  446.     #task.middlecards = idcardlist.nvmidcards()
  447.     #task.legacycards = idcardlist.nvoldcards()
  448.     task.details['cardbrand'] = brand#'\'' + brand + '\''
  449.     task.details['drvtype'] = drv#'\'' + drv + '\''
  450.  
  451.     #print task.details['cardbrand']
  452.     #print task.details['drvtype']
  453.  
  454.     task.codename()#os name
  455.     task.architecture()#arch
  456.     task.systemcheck()#system/arch compatibility
  457.     
  458.     #task.details['cardbrand'] = '\'' + brand + '\''
  459.     #task.details['drvtype'] = '\'' + drv + '\''
  460.     #task.drivertype()#latest, middle, oldest driver
  461.     #task.manualdetails()#LET YOU CHOOSE THE CARD AND DRIVER
  462.     main.blkresmanager()#restricted drivers manager
  463.     
  464.     if task.details['cardbrand'] == 'nvidia':
  465.         task.nvreleasenum()#md5
  466.         task.nvpkg()#pkg1
  467.         task.nvvarsum()#md5
  468.         
  469.         ##main.dm_stop()#shut down the Xserver
  470.     
  471.         main.dependencies()#dependencies for ATI and Nvidia installers
  472.         main.remove_nvidia_pkg()#remove previous nvidia packages
  473.         main.remove_ati_pkg()#remove previous ati packages
  474.         main.remove_debsrc()
  475.  
  476.         task.nvpkgname()#the name of the Nvidia installer
  477.         task.nvftpfolder()
  478.         task.nvaddress()#http link to the installer
  479.         
  480.         #if task.details['drvtype'] != 'oldest':#TEMPORARY FIX FOR THE LEGACY DRIVER    
  481.         task.getdriver()
  482.         #main.deldriverfolder()
  483.         #main.driverextract()
  484.         task.newkernelcontrol()
  485.         task.strippedver()
  486.         task.changelog()
  487.         task.control()
  488.         task.rules()
  489.         task.upstream()
  490.         task.nvidiapkgmake()
  491.         task.nvpkginstall1()#MOD
  492.         task.nvrmdeb()
  493.         task.nvkmod()
  494.         task.nvpkginstall2()#MOD    
  495.  
  496.         main.remove_deb()
  497.         main.nvremovechanges()
  498.         task.buildclean()
  499.  
  500.         task.nviconadd()
  501.         task.geforcegocheck()#only for geforce go and manual installation
  502.         task.xorgbackup()
  503.         task.restoregcc()
  504.         main.depmodules()
  505.  
  506.         if task.details['osname'] not in debianos:
  507.             blacklistnv()
  508.         #else: deblacklist()
  509.         #a = main.xorgset()
  510.         #if a == 'y':
  511.         #    task.nvxorgset()
  512.         #main.xserverstart()#if the Xserver is restarted the program will exit
  513.         os.system('sleep 3')
  514.         print 'ENVY: Operation Completed'
  515.         #mainmenu()
  516.         #blacklistnv()
  517.         #task.nvxorgset()#FARE POPUP!!!
  518.         #main.xserverstart()#if the Xserver is restarted the program will exit##FARE POPUP!!!
  519.     
  520.     elif task.details['cardbrand'] == 'ati':
  521.         if task.details['osname'] not in legacyoses and task.details['drvtype'] == 'oldest':
  522.             print 'ENVY ERROR: ATI\'s legacy driver does not support your operative system'
  523.         else:
  524.             main.remove_deb()#Just in case
  525.             #task = classes.Specsdetect()#instantiate the class
  526.             ##task.init()#initialise empty "details"
  527.             #task.cards = idcardlist.atinewcards()#set the id lists
  528.             #task.middlecards = idcardlist.atimidcards()
  529.             #task.legacycards = idcardlist.atioldcards()
  530.             
  531.             #task.codename()#os name
  532.             #task.architecture()#arch
  533.             #task.systemcheck()#system/arch compatibility
  534.             
  535.             #task.drivertype()#latest, middle, oldest driver
  536.             task.atireleasenum()#(e.g. '8.28.8')
  537.             #task.nvpkg()#pkg1
  538.             task.ativarsum()#md5
  539.             
  540.             #main.dm_stop()#shut down the Xserver
  541.             
  542.             main.dependencies()#dependencies for ATI and Nvidia installers
  543.             main.remove_ati_pkg()#remove previous nvidia packages
  544.             main.remove_nvidia_pkg()
  545.             main.remove_debsrc()
  546.     
  547.             task.atipkgname()#the name of the ATI installer
  548.             #task.nvftpfolder()
  549.             task.atiaddress()#http link to the installer
  550.             
  551.             task.getdriver()
  552.             #main.deldriverfolder()
  553.             #main.driverextract()
  554.             task.newkernelcontrol()
  555.             
  556.             task.atirmdeb()#Remove any old fglrx deb from /usr/src/
  557.             task.atipkgmake()#makepackages
  558.             task.atipkginstall()
  559.             task.atikmod()
  560.             main.remove_deb()#Just in case
  561.     
  562.             task.xorgbackup()
  563.             task.restoregcc()
  564.             main.depmodules()
  565.     
  566.         if task.details['osname'] not in debianos:
  567.             blacklistati()
  568.             main.atiremovechanges()
  569.             os.system('sleep 3')
  570.             print 'ENVY: Operation Completed' 
  571.             #task.atixorgset()
  572.             ##main.xserverstart()#if the Xserver is restarted the program will exit#POPUP
  573.             ##main.pcrestart()#the ATI driver needs a reboot#POPUP
  574.     else: print 'Something wrong with the if'
  575.     ##print 'Operation Completed'POPUP
  576.  
  577. '''ATI INSTALLATION SEQUENCE'''
  578. '''PART 2: THE REAL INSTALLATION SEQUENCE'''
  579. def atiinstall2():
  580.     main.remove_deb()#Just in case
  581.     task = classes.Specsdetect()#instantiate the class
  582.     task.init()#initialise empty "details"
  583.     task.cards = idcardlist.atinewcards()#set the id lists
  584.     task.middlecards = idcardlist.atimidcards()
  585.     task.legacycards = idcardlist.atioldcards()
  586.  
  587.     task.details['cardbrand'] = 'ati'    
  588.     task.codename()#os name
  589.     task.architecture()#arch
  590.     task.systemcheck()#system/arch compatibility
  591.     main.blkresmanager()#restricted drivers manager
  592.     
  593.     task.drivertype()#latest, middle, oldest driver
  594.     
  595.     if task.details['osname'] not in legacyoses and task.details['drvtype'] == 'oldest':
  596.         print 'ENVY ERROR: ATI\'s legacy driver does not support your operative system'
  597.     else:
  598.         task.atireleasenum()#(e.g. '8.28.8')
  599.         #task.nvpkg()#pkg1
  600.         task.ativarsum()#md5
  601.         
  602.         #main.dm_stop()#shut down the Xserver
  603.         
  604.         main.dependencies()#dependencies for ATI and Nvidia installers
  605.         main.remove_nvidia_pkg()#remove previous nvidia packages
  606.         main.remove_ati_pkg()#remove previous ati packages
  607.         main.remove_debsrc()
  608.     
  609.         task.atipkgname()#the name of the ATI installer
  610.         #task.nvftpfolder()
  611.         task.atiaddress()#http link to the installer
  612.         
  613.         task.getdriver()
  614.         #main.deldriverfolder()
  615.         #main.driverextract()
  616.         task.newkernelcontrol()
  617.         
  618.         task.atirmdeb()#Remove any old fglrx deb from /usr/src/
  619.         task.atipkgmake()#makepackages
  620.         task.atipkginstall()
  621.         task.atikmod()
  622.         main.remove_deb()#Just in case
  623.     
  624.         task.xorgbackup()
  625.         task.restoregcc()
  626.         main.depmodules()#make sure the module is there
  627.     
  628.         if task.details['osname'] not in debianos:
  629.             blacklistati()
  630.         main.atiremovechanges()
  631.         
  632.         task.atixorgset()
  633.         #main.xserverstart()#if the Xserver is restarted the program will exit
  634.         main.pcrestart()#the ATI driver needs a reboot
  635.         print 'ENVY: Operation Completed'
  636.     mainmenu()
  637.  
  638.  
  639. '''PART 1: MAKE SURE THE COMPUTER HAS AN ATI CARD'''
  640. def atiinstall():
  641.     compatible = classes.Compatibcheck()
  642.     compatible.brandname = 'ATI'
  643.     compat = compatible.check()#COMPATIBILITY CHECK
  644.     if compat != 'error':
  645.         atiinstall2()#CONTINUE THE INSTALLATION
  646.     #else:
  647.     #    mainmenu()
  648.     '''ATI INSTALLATION SEQUENCE'''
  649.  
  650. '''ATI INSTALLATION SEQUENCE'''
  651. '''PART 2: THE REAL INSTALLATION SEQUENCE'''
  652. def atiinstall2g():
  653.     main.remove_deb()#Just in case
  654.     task = classes.Specsdetect()#instantiate the class
  655.     task.init()#initialise empty "details"
  656.     task.cards = idcardlist.atinewcards()#set the id lists
  657.     task.middlecards = idcardlist.atimidcards()
  658.     task.legacycards = idcardlist.atioldcards()
  659.  
  660.     task.details['cardbrand'] = 'ati'    
  661.     task.codename()#os name
  662.     task.architecture()#arch
  663.     task.systemcheck()#system/arch compatibility
  664.     main.blkresmanager()#restricted drivers manager
  665.     
  666.     task.drivertype()#latest, middle, oldest driver
  667.     
  668.     if task.details['osname'] not in legacyoses and task.details['drvtype'] == 'oldest':
  669.         print 'ENVY ERROR: ATI\'s legacy driver does not support your operative system'
  670.     else:
  671.         task.atireleasenum()#(e.g. '8.28.8')
  672.         #task.nvpkg()#pkg1
  673.         task.ativarsum()#md5
  674.         
  675.         #main.dm_stop()#shut down the Xserver
  676.         
  677.         main.dependencies()#dependencies for ATI and Nvidia installers
  678.         main.remove_ati_pkg()#remove previous ati packages
  679.         main.remove_nvidia_pkg()#remove previous nvidia packages
  680.         main.remove_debsrc()
  681.     
  682.         task.atipkgname()#the name of the ATI installer
  683.         #task.nvftpfolder()
  684.         task.atiaddress()#http link to the installer
  685.         
  686.         task.getdriver()
  687.         #main.deldriverfolder()
  688.         #main.driverextract()
  689.         task.newkernelcontrol()
  690.         
  691.         task.atirmdeb()#Remove any old fglrx deb from /usr/src/
  692.         task.atipkgmake()#makepackages
  693.         task.atipkginstall()
  694.         task.atikmod()
  695.         main.remove_deb()#Just in case
  696.     
  697.         task.xorgbackup()
  698.         task.restoregcc()
  699.         main.depmodules()#make sure the module is there
  700.     
  701.         if task.details['osname'] not in debianos:
  702.             blacklistati()
  703.         main.atiremovechanges()
  704.         os.system('sleep 3')
  705.         print 'ENVY: Operation Completed'
  706.     #task.atixorgset()
  707.     #main.xserverstart()#if the Xserver is restarted the program will exit
  708.     #main.pcrestart()#the ATI driver needs a reboot
  709.     #print 'ENVY: Operation Completed'
  710.     #mainmenu()
  711.  
  712.  
  713. def atiinstallg():
  714.     compatible = classes.Compatibcheck()
  715.     compatible.brandname = 'ATI'
  716.     compat = compatible.check()#COMPATIBILITY CHECK
  717.     if compat != 'error':
  718.         atiinstall2g()#CONTINUE THE INSTALLATION
  719.     #else:
  720.     #    mainmenu()
  721.  
  722. '''ATI UNINSTALLATION SEQUENCE'''
  723. '''PART 2: THE REAL UNINSTALLATION SEQUENCE'''
  724. def atiuninstall2():
  725.     main.remove_deb()#Just in case
  726.     task = classes.Specsdetect()#instantiate the class
  727.     task.init()#initialise empty "details"
  728.     main.remove_ati_pkg()#remove previous ati packages
  729.     task.atirmdeb()#Remove any old fglrx deb from /usr/src/
  730.     task.codename()#os name
  731.     if task.details['osname'] not in debianos:
  732.         deblacklist()
  733.     main.restoremesa()
  734.     os.system('sleep 3')
  735.     print 'ENVY: Operation Completed'
  736.     mainmenu()
  737.  
  738. '''PART 1: MAKE SURE THE COMPUTER HAS AN ATI CARD'''
  739. def atiuninstall():
  740.     compatible = classes.Compatibcheck()
  741.     compatible.brandname = 'ATI'
  742.     #compat = compatible.check()#COMPATIBILITY CHECK
  743.     #if compat != 'error':
  744.     atiuninstall2()#CONTINUE THE INSTALLATION
  745.     #else:
  746.     #    mainmenu()
  747.  
  748. '''ATI UNINSTALLATION SEQUENCE'''
  749. '''PART 2: THE REAL UNINSTALLATION SEQUENCE'''
  750. def atiuninstall2g():
  751.     main.remove_deb()#Just in case
  752.     task = classes.Specsdetect()#instantiate the class
  753.     task.init()#initialise empty "details"
  754.     main.remove_ati_pkg()#remove previous ati packages
  755.     task.atirmdeb()#Remove any old fglrx deb from /usr/src/
  756.     task.codename()#os name
  757.     if task.details['osname'] not in debianos:
  758.         deblacklist()
  759.     main.restoremesa()
  760.     os.system('sleep 3')
  761.     print 'ENVY: Operation Completed'
  762.     #mainmenu()
  763.  
  764. '''PART 1: MAKE SURE THE COMPUTER HAS AN ATI CARD'''
  765. def atiuninstallg():
  766.     compatible = classes.Compatibcheck()
  767.     compatible.brandname = 'ATI'
  768.     #compat = compatible.check()#COMPATIBILITY CHECK
  769.     #if compat != 'error':
  770.     atiuninstall2g()#CONTINUE THE INSTALLATION
  771.     #else:
  772.     #    mainmenu()
  773.  
  774.  
  775. '''NVIDIA UNINSTALLATION SEQUENCE'''
  776. '''PART 2: THE REAL UNINSTALLATION SEQUENCE'''
  777. def nvidiaclean2():
  778.     main.remove_deb()#Just in case
  779.     task = classes.Specsdetect()#instantiate the class
  780.     task.init()#initialise empty "details"
  781.     #task.cards = idcardlist.nvnewcards()#set the id lists
  782.     #task.middlecards = idcardlist.nvmidcards()
  783.     #task.legacycards = idcardlist.nvoldcards()
  784.     
  785.     task.details['cardbrand'] = 'nvidia'
  786.     task.details['drvtype'] = 'latest'
  787.     task.codename()#os name
  788.     task.architecture()#arch
  789.     task.systemcheck()#system/arch compatibility
  790.     
  791.     ##task.drivertype()#latest, middle, oldest driver
  792.     task.details['drvtype'] = 'latest'#set the driver to latest
  793.     task.nvreleasenum()#(e.g. '1.0-9746')
  794.     task.nvpkg()#pkg1
  795.     task.nvvarsum()#md5
  796.     
  797.     main.dm_stop()#shut down the Xserver
  798.     
  799.     main.dependencies()#dependencies for ATI and Nvidia installers
  800.     main.remove_nvidia_pkg()#remove previous nvidia packages
  801.     main.remove_debsrc()
  802.  
  803.     task.nvpkgname()#the name of the Nvidia installer
  804.     task.nvftpfolder()
  805.     task.nvaddress()#http link to the installer
  806.     
  807.     task.getdriver()
  808.     #main.deldriverfolder()
  809.     #main.driverextract()
  810.     #task.nvkernelcontrol()
  811.  
  812.     #task.xorgbackup()
  813.     #task.restoregcc()
  814.     
  815.     task.nvuninstalling()
  816.  
  817.     if task.details['osname'] not in debianos:
  818.         deblacklist()
  819.     #task.nvxorgset()
  820.     #main.xserverstart()#if the Xserver is restarted the program will exit
  821.     print 'ENVY: Operation Completed'
  822.     mainmenu()
  823.  
  824.  
  825. '''PART 1: MAKE SURE THE COMPUTER HAS AN NVIDIA CARD'''
  826. def nvidiaclean():
  827.     compatible = classes.Compatibcheck()
  828.     compatible.brandname = 'Nvidia'
  829.     #compat = compatible.check()#COMPATIBILITY CHECK NOT NECESSARY
  830.     #if compat != 'error':
  831.     nvidiaclean2()#CONTINUE THE INSTALLATION
  832.     #else:
  833.     #    mainmenu()
  834.  
  835.  
  836.  
  837. '''RESTART THE XSERVER'''
  838. def xserverstart():
  839.     os.system('sudo /etc/init.d/gdm restart')
  840.     os.system('sudo /etc/init.d/kdm restart')
  841.  
  842.  
  843.  
  844. '''
  845. ASK FOR CONFIRMATION OF USER'S CHOICE
  846. '''
  847. def nvinstconfirm():#Install the Nvidia driver
  848.     confirmation = interfaceclasses.Interface()
  849.     confirmation.operation = 'install'
  850.     confirmation.brand = 'Nvidia driver'
  851.     confirmation.gotoop = nvidiainstall()
  852.     confirmation.confirm()
  853.  
  854. def nvuninstconfirm():#Uninstall the Nvidia driver
  855.     confirmation = interfaceclasses.Interface()
  856.     confirmation.operation = 'uninstall'
  857.     confirmation.brand = 'Nvidia driver'
  858.     confirmation.gotoop = nvidiauninstall()
  859.     confirmation.confirm()
  860.  
  861. def atiinstconfirm():#Install the ATI driver
  862.     confirmation = interfaceclasses.Interface()
  863.     confirmation.operation = 'install'
  864.     confirmation.brand = 'Ati driver'
  865.     confirmation.gotoop = atiinstall()
  866.     confirmation.confirm()
  867.  
  868. def maninstconfirm():#Install the driver Manually
  869.     confirmation = interfaceclasses.Interface()
  870.     confirmation.operation = 'install'
  871.     confirmation.brand = 'driver manually'
  872.     confirmation.gotoop = maninstall()
  873.     confirmation.confirm()
  874.  
  875. def atiuninstconfirm():#Uninstall the ATI driver
  876.     confirmation = interfaceclasses.Interface()
  877.     confirmation.operation = 'uninstall'
  878.     confirmation.brand = 'Ati driver'
  879.     confirmation.gotoop = atiuninstall()
  880.     confirmation.confirm()
  881.  
  882. def nvcleanconfirm():#Clean the NVIDIA driver
  883.     confirmation = interfaceclasses.Interface()
  884.     confirmation.operation = 'clean'
  885.     confirmation.brand = 'the NVIDIA driver'#RIDEFINIRE QUESTA STRINGA!!!
  886.     confirmation.gotoop = nvidiaclean()#RIDEFINIRE LA FUNZIONE!!!
  887.     confirmation.confirm()
  888.  
  889. def xorgreset():#Restart the Xserver
  890.     confirmation = interfaceclasses.Interface()
  891.     confirmation.operation = 'restart'
  892.     confirmation.brand = 'Xserver'
  893.     confirmation.gotoop = main.xserverstart()#nvidiainstall()
  894.     confirmation.confirm()
  895.  
  896.  
  897.  
  898. '''INTERFACE OBJECTS'''
  899. '''Welcome'''
  900. def welcomemenu():
  901.     menu0 = interfaceclasses.Interface()
  902.     #menu0.init()
  903.     menu0.linetxt = ['-', '', '         Welcome to Envy ' + ver, ' ', 'Developed by Alberto Milone (aka tseliot)', '', '-']
  904.     menu0.page()
  905.  
  906. '''Main Menu'''
  907. def  mainmenu():
  908.     menu1 = interfaceclasses.Interface()
  909.     menu1.linetxt = ['', 'Envy Menu ver.' + ver, '', '1 - Install the NVIDIA driver', '', '2 - Uninstall the NVIDIA driver', '', '3 - Install the ATI driver', '', '4 - Uninstall the ATI driver', '','5 - Install the ATI/NVIDIA driver Manually', '', '6 - Clean the Installation of any Nvidia driver', '',  '7 - Restart the Xserver', '', '8 - Exit', '', 'NOTE: IF THE SCREEN TURNS BLACK, PLEASE TYPE ALT+F1', '']
  910.  
  911.     while 1:
  912.         menu1.page()
  913.         reply = raw_input('Please select one of the activities displayed above and press ENTER:\n\n').strip()
  914.         if reply == '1':
  915.             menu1.operation = 'nvinstall'
  916.             #return operation
  917.             break
  918.         elif reply == '2':
  919.             menu1.operation = 'nvuninstall'
  920.             #return operation
  921.             break
  922.         elif reply == '3':
  923.             menu1.operation = 'atiinstall'
  924.             #return operation
  925.             break
  926.         elif reply == '4':
  927.             menu1.operation = 'atiuninstall'
  928.             #return operation
  929.             break
  930.         elif reply == '5':
  931.             menu1.operation = 'maninstall'
  932.             #return operation
  933.             break
  934.         elif reply == '6':
  935.             menu1.operation = 'nvidiaclean'
  936.             #return operation
  937.             break
  938.         elif reply == '7':
  939.             menu1.operation = 'xorgrestart'
  940.             #return operation
  941.             break
  942.         elif reply == '8':
  943.             sys.exit()
  944.             break
  945.     menu1.process()
  946.  
  947.  
  948.  
  949.  
  950.  
  951.