~ubuntu-branches/ubuntu/saucy/jockey/saucy

« back to all changes in this revision

Viewing changes to jockey/xorg_driver.py

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2011-11-02 11:21:03 UTC
  • Revision ID: package-import@ubuntu.com-20111102112103-vqqeyc32czx008wm
Tags: 0.9.5-0ubuntu2
* Merge from trunk:
  - Add XorgDriverHandler.loaded_drivers(), as a prerequisite for LP #885204
  - Update translations from Launchpad.
* data/handlers/{fglrx,nvidia}.py: Do not offer these drivers if intel
  X.org driver is loaded. On hybrid systems where intel is active,
  installing the proprietary drivers and their libGL breaks intel.
  (LP: #885204)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
'''Abstract handler for a restricted X.org graphics driver.'''
18
18
 
19
 
import os.path, logging
 
19
import os.path, logging, re
 
20
from glob import glob
20
21
 
21
22
import XKit.xutils
22
23
import XKit.xorgparser
357
358
 
358
359
        return False
359
360
 
 
361
    @classmethod
 
362
    def loaded_drivers(klass, log_dir='/var/log/'):
 
363
        '''Return a set of graphics drivers loaded by X.org.'''
 
364
 
 
365
        # find the most recent X.org log
 
366
        log = None
 
367
        max_time = 0
 
368
        for f in glob(os.path.join(log_dir, 'Xorg.*.log')):
 
369
            mtime = os.stat(f).st_mtime
 
370
            if mtime > max_time:
 
371
                max_time = mtime
 
372
                log = f
 
373
 
 
374
        drivers = set()
 
375
        if not log:
 
376
            return drivers
 
377
 
 
378
        with open(log) as f:
 
379
            for match in re.finditer('\(II\) Loading.*modules\/drivers\/(.+)_drv\.so', f.read()):
 
380
                drivers.add(match.group(1))
 
381
 
 
382
        return drivers
 
383