foryali first commit

works continue..
This commit is contained in:
Ertuğrul Erata
2017-03-05 21:42:13 +03:00
parent af9d310d6d
commit db4f70f2c6
28 changed files with 1045 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from pisi.version import Version
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
if fromVersion and Version("0.90") <= Version(fromVersion) <= Version("0.96"):
from zorg import config
busId = call("zorg", "Xorg.Display", "activeDeviceID")
device = config.getDeviceInfo(busId)
if device:
config.saveDeviceInfo(device)
config.saveXorgConfig(device)
if fromRelease and int(fromRelease) < 81:
from zorg import config
layout, variant = config.getKeymapOld()
config.saveKeymap(layout, variant)
+222
View File
@@ -0,0 +1,222 @@
# -*- coding: utf-8 -*-
import os
import comar
from pardus.sysutils import *
from zorg.config import *
from zorg.consts import *
from zorg.probe import *
from zorg.utils import *
kernel_module_file = os.path.join(config_dir, "kernel_module")
def getDevice():
bus = configuredBus()
if not bus:
return None
return getDeviceInfo(bus)
def getDeviceOutput(output):
dev = getDevice()
if not dev:
return None, None
if output not in dev.outputs:
dev.outputs[output] = Output(output)
return dev, dev.outputs[output]
# Model methods
def ready(boot):
opts = {}
if boot:
opts = get_kernel_option("xorg")
if "keymap" in opts:
keymap = opts["keymap"].split("/", 1)
setKeymap(*keymap)
if "safe" in opts:
return False
driver = opts.get("driver")
if driver or "probe" in opts:
return initialConfig(driver)
busId = configuredBus()
if not busId:
return initialConfig()
if boot:
# Check if the active card is changed
try:
device = getDeviceInfo(busId)
except IOError:
# Device is not present on specified bus.
# Check if the new device is configured before.
newBus = getPrimaryCard()
if newBus:
device = getDeviceInfo(VideoDevice(newBus).bus_id)
if device and not device.isChanged():
# Yes, it is configured before.
# Reenable driver and write xorg.conf.
device.enableDriver()
saveXorgConfig(device)
else:
# This is a different card.
return initialConfig()
else:
# No card is present. Return True in order to
# start with a manually edited xorg.conf.
return True
else:
if not device or device.isChanged():
return initialConfig()
# Check kernel module. Later, this should be done
# with Xorg.Driver.ready method.
if os.path.exists(kernel_module_file):
kernelModule = file(kernel_module_file).read()
if run("/sbin/modprobe", "-i", kernelModule) and kernelModule != "fglrx":
return False
return True
def initialConfig(preferredDriver=None):
bus = getPrimaryCard()
if bus:
device = VideoDevice(bus)
else:
# This machine might be a terminal server with no video cards.
# We start X and leave the decision to the user.
log_debug("No video card found.")
return True
if preferredDriver is None:
preferredDriver = device.preferredDriver()
device.setDriver(preferredDriver)
saveDeviceInfo(device)
saveXorgConfig(device)
return True
def safeConfig():
bus = getPrimaryCard()
if bus:
device = VideoDevice(bus)
else:
# See the comment in initialConfig
return True
device.setDriver("vesa")
device.depth = 16
device.outputs["default"] = Output("default")
device.monitors["default"] = Monitor()
saveDeviceInfo(device)
saveXorgConfig(device)
return True
# FIXME Confusing method name
def activeDeviceID():
return configuredBus()
def listDrivers():
drivers = listAvailableDrivers()
link = comar.Link()
packages = list(link.Xorg.Driver)
for package in packages:
try:
info = link.Xorg.Driver[package].getInfo()
except dbus.DBusException:
continue
alias = str(info["alias"])
driver = str(info["xorg-module"])
drivers.append(alias)
if driver in drivers:
drivers.remove(driver)
return sorted(drivers)
def setDriver(driver):
dev = getDevice()
if dev:
dev.setDriver(driver)
saveDeviceInfo(dev)
def setDepth(depth):
dev = getDevice()
if dev:
dev.depth = depth
saveDeviceInfo(dev)
def setOutput(output, enabled, ignored):
dev, out = getDeviceOutput(output)
if dev:
out.setEnabled(enabled)
out.setIgnored(ignored)
saveDeviceInfo(dev)
def setMode(output, resolution, rate):
dev, out = getDeviceOutput(output)
if dev:
out.setMode(resolution, rate)
saveDeviceInfo(dev)
def setOrientation(output, rotation, reflection):
dev, out = getDeviceOutput(output)
if dev:
out.setOrientation(rotation, reflection)
saveDeviceInfo(dev)
def setPosition(output, position, arg):
dev, out = getDeviceOutput(output)
if dev:
out.setPosition(position, arg)
saveDeviceInfo(dev)
def setMonitor(output, vendor, model, horizSync, vertRefresh):
dev, out = getDeviceOutput(output)
if dev:
if model:
mon = Monitor()
mon.vendor = vendor
mon.model = model
mon.hsync = horizSync
mon.vref = vertRefresh
dev.monitors[output] = mon
elif output in dev.monitors:
del dev.monitors[output]
else:
return
saveDeviceInfo(dev)
def syncConfigs():
dev = getDevice()
if dev:
saveXorgConfig(dev)
def setKeymap(layout, variant=""):
saveKeymap(layout, variant)