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
@@ -0,0 +1,14 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import pythonmodules
def build():
pythonmodules.compile()
def install():
pythonmodules.install()
@@ -0,0 +1,39 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>yali-branding-pisilinux</Name>
<Homepage>http://www.pisilinux.org</Homepage>
<Packager>
<Name>Pisi Linux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>data</IsA>
<Summary>Pisi Linux Branding files for YALI</Summary>
<Description>yali-branding includes Pisi Linux branding files for YALI(Yet Another Linux Installer).</Description>
<Archive sha1sum="3aa26d13f075f340e9c42f074e761e4622cd48ef" type="targz">https://github.com/forYali/yali-branding-pisilinux/archive/0.4.tar.gz</Archive>
<BuildDependencies>
<Dependency>intltool</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>yali-branding-pisilinux</Name>
<Files>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/usr/share/yali/branding</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2017-03-05</Date>
<Version>0.4</Version>
<Comment>First release</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>yali-branding-pisilinux</Name>
<Summary xml:lang="tr">Yali için Pisi Linux dosyaları</Summary>
<Description xml:lang="tr">yalı-branding YALI projesi Pisi Linux dosyalarını içerir.</Description>
</Source>
</PISI>
@@ -0,0 +1,14 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import pythonmodules
def build():
pythonmodules.compile()
def install():
pythonmodules.install()
@@ -0,0 +1,39 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>yali-theme-pisilinux</Name>
<Homepage>http://www.pisilinux.org</Homepage>
<Packager>
<Name>Pisi Linux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>data</IsA>
<Summary>PiSi Linux theme files for YALI</Summary>
<Description>yali-branding includes PiSi Linux theme files for YALI(Yet Another Linux Installer).</Description>
<Archive sha1sum="6209955206f4dd5dae56a2c8dd0fd43b9ac588c2" type="targz">https://github.com/forYali/yali-theme-pisilinux/archive/0.4.tar.gz</Archive>
<BuildDependencies>
<Dependency>qt5-base</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>yali-theme-pisilinux</Name>
<Files>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/usr/share/yali/theme</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2017-03-05</Date>
<Version>0.4</Version>
<Comment>First release</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>yali-theme-pisilinux</Name>
<Summary xml:lang="tr">Yali için Pisi Linux tema dosyaları</Summary>
<Description xml:lang="tr">yalı-theme YALI projesi Pisi Linux tema dosyaları içerir.</Description>
</Source>
</PISI>
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import pisitools
from pisi.actionsapi import pythonmodules
def setup():
repo_uri = "http://packages.pisilinux.org/repositories/1.0/stable/x86_64/pisi-index.xml.xz" # FIXME
pisitools.dosed("yali/constants.py", "@REPO_URI@", repo_uri)
pisitools.dosed("yali/constants.py", "@REPO_NAME@", "pisi") # FIXME
pisitools.dosed("conf/yali.conf", "@INSTALL_TYPE@", "default")
def build():
pythonmodules.compile()
def install():
pythonmodules.install()
pisitools.domove("/usr/share/applications/yali.desktop", "/usr/share/display-managers/")
pisitools.removeDir("usr/share/applications")
@@ -0,0 +1,10 @@
--- yali/storage/operations.py~ 2014-08-10 11:45:14.877968618 +0200
+++ yali/storage/operations.py 2014-08-10 11:49:31.360959247 +0200
@@ -235,6 +235,7 @@
self.device.disk.format.commitToDisk()
+ yali.baseudev.udev_settle()
info = udev_get_block_device(self.device.sysfsPath)
try:
olduuid = udev_device_get_uuid(info)
@@ -0,0 +1,13 @@
--- yali/util.py~ 2014-06-16 21:18:24.394455789 +0200
+++ yali/util.py 2014-06-16 21:19:17.858453835 +0200
@@ -370,10 +370,6 @@
chroot("/bin/service dbus start")
def stop_dbus():
- filesdb = pisi.db.filesdb.FilesDB()
- if filesdb.is_initialized():
- filesdb.close()
-
# stop dbus
chroot("/bin/service dbus stop")
# kill comar in chroot if any exists
+90
View File
@@ -0,0 +1,90 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>yali</Name>
<Homepage>http://www.pisilinux.org/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:gui</IsA>
<Summary>Yet Another Linux Installer</Summary>
<Description>YALI is the graphical installer for PiSi Linux distribution which is written using the Qt framework.</Description>
<Archive sha1sum="c162aec1990021c927706d4ad5c97159292c859b" type="targz">https://github.com/forYali/yali/archive/3.0.3.tar.gz</Archive>
<BuildDependencies>
<Dependency>python-qt5</Dependency>
<Dependency>e2fsprogs-devel</Dependency>
</BuildDependencies>
<Patches>
<!--Patch>no_old_filesdb.patch</Patch-->
<Patch>fix_find_device.patch</Patch>
</Patches>
</Source>
<Package>
<Name>yali</Name>
<RuntimeDependencies>
<Dependency>python-qt5</Dependency>
<Dependency>util-linux</Dependency>
<!--<Dependency>gptsync</Dependency> -->
<Dependency>mdadm</Dependency>
<Dependency>lvm2</Dependency>
<Dependency>reiserfsprogs</Dependency>
<Dependency>ntfsprogs</Dependency>
<Dependency>dosfstools</Dependency>
<Dependency>xfsprogs</Dependency>
<Dependency>xdm</Dependency>
<Dependency>comar</Dependency>
<Dependency>panda</Dependency>
<Dependency>python-pyaspects</Dependency>
<Dependency>pisilinux-python</Dependency>
<Dependency>syslinux</Dependency>
<Dependency>pyqtermwidget</Dependency>
<!-- disable gfx family , find a proper solution for its menu generation -->
<!--Dependency>gfxtheme-pisilinux-install</Dependency-->
<Dependency>pyparted</Dependency>
<Dependency>python-pyblock</Dependency>
<Dependency>yali-branding-pisilinux</Dependency>
<Dependency>yali-theme-pisilinux</Dependency>
<Dependency>python-udev</Dependency>
<Dependency>pisilinux-desktop-services</Dependency>
<!--
pardusman should add locale packages according to the selected languages.
IsA tags could be used to decide which packages to be installed.
-->
<Dependency>glibc-locales-nl</Dependency>
<Dependency>glibc-locales-de</Dependency>
<Dependency>glibc-locales-es</Dependency>
<Dependency>glibc-locales-pt</Dependency>
<Dependency>glibc-locales-sv</Dependency>
<Dependency>glibc-locales-fr</Dependency>
<Dependency>glibc-locales-it</Dependency>
<Dependency>glibc-locales-ca</Dependency>
<Dependency>glibc-locales-pl</Dependency>
<Dependency>glibc-locales-ru</Dependency>
<Dependency>glibc-locales-hu</Dependency>
<Dependency>glibc-locales-hr</Dependency>
<Dependency>droid-fonts</Dependency>
<!-- <Dependency>cursor-theme-oxygen-white</Dependency> -->
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="data">/usr/share</Path>
<Path fileType="data">/etc/yali</Path>
<Path fileType="data">/lib/udev/rules.d/70-yali.rules</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2017-03-05</Date>
<Version>3.0.3</Version>
<Comment>First release</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>yali</Name>
<Summary xml:lang="tr">YALI: PiSi Linux kurulum yazılımı</Summary>
<Description xml:lang="tr">YALI: PiSi Linux kurulum yazılımı.</Description>
<Description xml:lang="fr">YALI: Yet Another Linux Installer (encore un nouvel installateur Linux).</Description>
<Description xml:lang="pl">YALI jest graficznym instalatorem PiSi Linux.</Description>
</Source>
</PISI>
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import pisitools
from pisi.actionsapi import pythonmodules
def setup():
# remove pae modules
pisitools.dosed("panda.py", "-pae-", deleteLine=True)
pythonmodules.compile()
def install():
pythonmodules.install()
pisitools.dodoc('AUTHORS', 'COPYING', 'README')
@@ -0,0 +1,29 @@
--- panda.py~ 2013-12-22 18:35:44.986644221 +0100
+++ panda.py 2013-12-23 10:50:00.433218873 +0100
@@ -7,6 +7,7 @@
import pisi
import shutil
from subprocess import call
+from distutils import util
sysdir = "/sys/bus/pci/devices/"
driversDB = "/usr/share/X11/DriversDB"
@@ -36,7 +37,7 @@
"module-nvidia-current-userspace",
"xorg-video-nvidia-current",
"nvidia-xconfig",
- "nvidia-settings"] ,
+ "nvidia-settings"],
"nvidia96": ["module-nvidia96",
"module-pae-nvidia96",
"module-nvidia96-userspace",
@@ -54,6 +55,9 @@
"xorg-video-nvidia304",
"nvidia-xconfig",
"nvidia-settings"]}
+ if util.get_platform() == "linux-x86_64":
+ self.driver_packages["fglrx"].append("xorg-video-fglrx-32bit")
+ self.driver_packages["nvidia-current"].append("xorg-video-nvidia-current-32bit")
def __get_primary_driver(self):
'''Get driver name for the working primary device'''
@@ -0,0 +1,46 @@
--- panda.py~ 2013-09-11 23:01:06.715664263 +0200
+++ panda.py 2013-09-11 23:39:47.000000000 +0200
@@ -48,6 +48,11 @@
"module-nvidia173-userspace",
"xorg-video-nvidia173",
"nvidia-xconfig",
+ "nvidia-settings"],
+ "nvidia304": ["module-nvidia304",
+ "module-nvidia304-userspace",
+ "xorg-video-nvidia304",
+ "nvidia-xconfig",
"nvidia-settings"]}
def __get_primary_driver(self):
@@ -120,7 +125,7 @@
if self.driver_name == "fglrx":
self.os_driver = "radeon"
return self.os_driver
- elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173"]:
+ elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"]:
self.os_driver = "nouveau"
return self.os_driver
else:
@@ -169,10 +174,10 @@
status, modified = self.update_grub_default_entries(arg)
if status in ["os", "generic", "vendor"] and modified:
self.update_grub_cfg()
- self.set_libGL(self.driver_name if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "fglrx"] and status == "vendor" else "mesa")
- if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173"] and status == "vendor":
+ self.set_libGL(self.driver_name if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304", "fglrx"] and status == "vendor" else "mesa")
+ if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"] and status == "vendor":
open(nvidia_blacklist_file, "w").write("blacklist nouveau\n")
- elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173"] and os.path.isfile(nvidia_blacklist_file):
+ elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"] and os.path.isfile(nvidia_blacklist_file):
os.remove(nvidia_blacklist_file)
@@ -221,7 +226,7 @@
if self.driver_name is None:
self.__get_primary_driver()
- if self.driver_name in "fglrx" or self.driver_name in ["nvidia-current", "nvidia96", "nvidia173"]:
+ if self.driver_name in "fglrx" or self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"]:
return ["vendor", "os", "generic"]
elif "Not defined" == self.driver_name:
return ["os", "generic"]
@@ -0,0 +1,53 @@
--- panda-0.2.orig/panda.py 2014-11-14 02:12:02.000000000 +0200
+++ panda-0.2/panda.py 2014-11-14 02:20:47.921188120 +0200
@@ -46,6 +46,10 @@
"xorg-video-nvidia173",
"nvidia-xconfig",
"nvidia-settings"],
+ "nvidia340": ["module-nvidia340",
+ "xorg-video-nvidia340",
+ "nvidia-xconfig",
+ "nvidia-settings"],
"nvidia304": ["module-nvidia304",
"xorg-video-nvidia304",
"nvidia-xconfig",
@@ -53,6 +58,7 @@
if util.get_platform() == "linux-x86_64":
self.driver_packages["fglrx"].append("xorg-video-fglrx-32bit")
self.driver_packages["nvidia-current"].append("xorg-video-nvidia-current-32bit")
+ self.driver_packages["nvidia340"].append("xorg-video-nvidia340-32bit")
def __get_primary_driver(self):
'''Get driver name for the working primary device'''
@@ -124,7 +130,7 @@
if self.driver_name == "fglrx":
self.os_driver = "radeon"
return self.os_driver
- elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"]:
+ elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304" ,"nvidia340"]:
self.os_driver = "nouveau"
return self.os_driver
else:
@@ -173,10 +179,10 @@
status, modified = self.update_grub_default_entries(arg)
if status in ["os", "generic", "vendor"] and modified:
self.update_grub_cfg()
- self.set_libGL(self.driver_name if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304", "fglrx"] and status == "vendor" else "mesa")
- if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"] and status == "vendor":
+ self.set_libGL(self.driver_name if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304", "nvidia340", "fglrx"] and status == "vendor" else "mesa")
+ if self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304", "nvidia340"] and status == "vendor":
open(nvidia_blacklist_file, "w").write("blacklist nouveau\n")
- elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"] and os.path.isfile(nvidia_blacklist_file):
+ elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304", "nvidia340"] and os.path.isfile(nvidia_blacklist_file):
os.remove(nvidia_blacklist_file)
return status
@@ -224,7 +230,7 @@
if self.driver_name is None:
self.__get_primary_driver()
- if self.driver_name in "fglrx" or self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"]:
+ if self.driver_name in "fglrx" or self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304", "nvidia340"]:
return ["vendor", "os", "generic"]
elif "Not defined" == self.driver_name:
return ["os", "generic"]
@@ -0,0 +1,50 @@
--- panda.py~ 2013-06-26 23:14:48.709209877 +0200
+++ panda.py 2013-06-26 23:15:23.467208607 +0200
@@ -269,10 +269,10 @@
with open(grub_default_file) as grub_default:
for line in grub_default:
- if "GRUB_CMDLINE_LINUX=" in line:
+ if "GRUB_CMDLINE_LINUX_DEFAULT=" in line:
params = {} if line.startswith("#") else dict((k, v.split(','))
for k,v in (item.split('=') if "=" in item else (item, '')
- for item in line.replace('"', '').split("LINUX=")[1].split()))
+ for item in line.replace('"', '').replace("'", "").split("DEFAULT=")[1].split()))
old_line = " ".join(["%s%s%s" % (k, "=" if l[0] else "", ",".join([v for v in l])) for k, l in sorted(params.items())])
if arg == "os":
try :
@@ -285,10 +285,6 @@
if not params["xorg"] or not params["xorg"][0]: del params["xorg"]
except KeyError:
pass
- try :
- del params["vga"]
- except KeyError:
- pass
status = "os"
elif arg == "vendor":
@@ -302,7 +298,6 @@
if not params["xorg"] or not params["xorg"][0]: del params["xorg"]
except KeyError:
pass
- if self.driver_name in ["nvidia-current"]: params["vga"] = ["794"]
status = "vendor"
elif arg == "generic":
@@ -430,4 +425,3 @@
# print p.update_grub_entries("vendor")
print p.update_system_files("vendor")
print p.get_needed_driver_packages(installable=False)
-
--- panda.py~ 2013-07-12 12:33:05.029649344 +0200
+++ panda.py 2013-07-12 12:33:09.728649172 +0200
@@ -309,7 +309,7 @@
new_line = " ".join(["%s%s" % ("%s=" % k if l[0] else k, ",".join([v for v in l])) for k, l in sorted(params.items())])
configured = old_line != new_line
- new_line = 'GRUB_CMDLINE_LINUX="%s"\n' % new_line
+ new_line = 'GRUB_CMDLINE_LINUX_DEFAULT="%s"\n' % new_line
grub_tmp.write(new_line)
else:
grub_tmp.write(line)
@@ -0,0 +1,18 @@
--- panda.py~ 2014-04-12 20:47:04.213380223 +0200
+++ panda.py 2014-04-12 20:51:07.980049491 +0200
@@ -30,7 +30,6 @@
self.os_driver = None
self.driver_packages = {"fglrx": ["module-fglrx",
"module-pae-fglrx",
- "module-fglrx-userspace",
"xorg-video-fglrx"],
"nvidia-current": ["module-nvidia-current",
"module-pae-nvidia-current",
@@ -179,7 +178,6 @@
open(nvidia_blacklist_file, "w").write("blacklist nouveau\n")
elif self.driver_name in ["nvidia-current", "nvidia96", "nvidia173", "nvidia304"] and os.path.isfile(nvidia_blacklist_file):
os.remove(nvidia_blacklist_file)
-
return status
@@ -0,0 +1,27 @@
--- panda.py~ 2014-03-10 21:18:48.173319857 +0100
+++ panda.py 2014-03-10 21:19:43.726653009 +0100
@@ -34,24 +34,20 @@
"xorg-video-fglrx"],
"nvidia-current": ["module-nvidia-current",
"module-pae-nvidia-current",
- "module-nvidia-current-userspace",
"xorg-video-nvidia-current",
"nvidia-xconfig",
"nvidia-settings"],
"nvidia96": ["module-nvidia96",
"module-pae-nvidia96",
- "module-nvidia96-userspace",
"xorg-video-nvidia96",
"nvidia-xconfig",
"nvidia-settings"],
"nvidia173": ["module-nvidia173",
"module-pae-nvidia173",
- "module-nvidia173-userspace",
"xorg-video-nvidia173",
"nvidia-xconfig",
"nvidia-settings"],
"nvidia304": ["module-nvidia304",
- "module-nvidia304-userspace",
"xorg-video-nvidia304",
"nvidia-xconfig",
"nvidia-settings"]}
+44
View File
@@ -0,0 +1,44 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>panda</Name>
<Homepage>http://www.pisilinux.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>PisiLinux Alternative Driver Administration</Summary>
<Description>PANDA is an alternative driver administration for PisiLinux.</Description>
<Archive sha1sum="7a7ca0036c04b4a4204725268add191ded5a564a" type="targz">https://github.com/forYali/panda/archive/0.2.tar.gz</Archive>
<Patches>
<!--Patch>fix_editing_grub_default.patch</Patch>
<Patch>add_nvidia340.patch</Patch>
<Patch>add_nvidia304.patch</Patch-->
<Patch>add-32bit_packages.diff</Patch>
<Patch>remove_module-nvidia-userspace.patch</Patch>
<Patch>remove_module-fglrx-userspace.patch</Patch>
</Patches>
</Source>
<Package>
<Name>panda</Name>
<Files>
<Path fileType="executable">/usr/libexec</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2017-03-05</Date>
<Version>0.2</Version>
<Comment>First release</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>panda</Name>
<Summary xml:lang="tr">PisiLinux Alternatif Sürücü Yönetimi</Summary>
<Description xml:lang="tr">Panda, PisiLinux için alternatif sürücü yönetim modülüdür.</Description>
</Source>
</PISI>
+15
View File
@@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import pisitools
from pisi.actionsapi import pythonmodules
def install():
pythonmodules.install("--install-lib=/usr/lib/pardus")
pisitools.dosym("zorg-cli", "/usr/bin/zorg")
# This is now provided by xorg-server package.
pisitools.remove("/usr/share/X11/DriversDB")
+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)
+106
View File
@@ -0,0 +1,106 @@
Index: zorg-2.0.4/zorg/config.py
===================================================================
--- zorg-2.0.4.orig/zorg/config.py
+++ zorg-2.0.4/zorg/config.py
@@ -11,6 +11,21 @@ from zorg.parser import *
from zorg.probe import VideoDevice, Monitor, Output
from zorg.utils import *
+KEYMAP_CONF_TEMPLATE="""\
+# This file is generated by zorg. If you want to change settings
+# in this file, edit the file 10-keyboard.conf in the same
+# directory.
+
+Section "InputClass"
+ Identifier "Configured Keymap"
+ MatchIsKeyboard "on"
+ MatchTag "use_configured_keymap"
+
+ %(comment_layout)sOption "xkb_layout" "%(layout)s"
+ %(comment_variant)sOption "xkb_variant" "%(variant)s"
+EndSection
+"""
+
def saveXorgConfig(card):
parser = XorgParser()
@@ -265,7 +280,7 @@ def saveDeviceInfo(card):
f = open(consts.config_file, "w")
f.write(doc.toPrettyString().replace("\n\n", ""))
-def getKeymap():
+def getKeymapOld():
layout = None
variant = ""
@@ -297,24 +312,44 @@ def getKeymap():
return layout, variant
-def saveKeymap(layout, variant=""):
- if not os.path.exists(consts.config_dir):
- os.mkdir(consts.config_dir, 0755)
+def getKeymap():
+ layout = None
+ variant = ""
try:
- doc = piksemel.parse(consts.config_file)
+ p = XorgParser()
+ p.parseFile(consts.keymap_conf)
+ section = p.getSections("InputClass")[0]
+ layout = section.get("xkb_layout")
+ variant = section.get("xkb_variant", "")
+
except OSError:
- doc = piksemel.newDocument("ZORG")
+ pass
+
+ if not layout:
+ from pardus.localedata import languages
- keyboardTag = doc.getTag("Keyboard")
+ try:
+ language = file("/etc/mudur/language").read().strip()
+ except IOError:
+ language = "en"
+
+ if not languages.has_key(language):
+ language = "en"
- if keyboardTag:
- keyboardTag.hide()
+ keymap = languages[language].keymaps[0]
+ layout = keymap.xkb_layout
+ variant = keymap.xkb_variant
- keyboardTag = doc.insertTag("Keyboard")
- keyboardTag.insertTag("Layout").insertData(layout)
- if variant:
- keyboardTag.insertTag("Variant").insertData(variant)
+ return layout, variant
- f = file(consts.config_file, "w")
- f.write(doc.toPrettyString().replace("\n\n", ""))
+def saveKeymap(layout, variant=""):
+ opts = {"layout": layout,
+ "variant": variant,
+ "comment_layout": "" if layout else "#",
+ "comment_variant": "" if variant else "#"}
+
+ with open(consts.keymap_conf, "w") as f:
+ f.write(KEYMAP_CONF_TEMPLATE % opts)
+ f.flush()
+ os.fsync(f.fileno())
Index: zorg-2.0.4/zorg/consts.py
===================================================================
--- zorg-2.0.4.orig/zorg/consts.py
+++ zorg-2.0.4/zorg/consts.py
@@ -8,6 +8,7 @@ data_dir = "/usr/share/X11"
modules_dir = "/usr/lib/xorg/modules"
xorg_conf_file = "/etc/X11/xorg.conf"
+keymap_conf = "/etc/X11/xorg.conf.d/00-configured-keymap.conf"
config_file = join(config_dir, "config.xml")
configured_bus_file = join(config_dir, "configured_bus")
drivers_file = join(data_dir, "DriversDB")
@@ -0,0 +1,19 @@
Index: zorg-cli
===================================================================
--- zorg-cli (revision 31546)
+++ zorg-cli (revision 31547)
@@ -94,8 +94,12 @@
setDriver(opts.driver)
elif opts.keymap:
- keymap = opts.keymap.split("/", 1)
- link.Xorg.Display["zorg"].setKeymap(*keymap)
+ if "/" in opts.keymap:
+ layout, variant = opts.keymap.split("/", 1)
+ else:
+ layout, variant = opts.keymap, ""
+ link.Xorg.Display["zorg"].setKeymap(layout, variant)
+
else:
parser.print_help()
+40
View File
@@ -0,0 +1,40 @@
Section "Module"
SubSection "extmod"
Option "omit xfree86-dga" "true"
EndSubSection
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "OffTime" "0"
Option "SuspendTime" "0"
Option "AllowMouseOpenFail" "true"
Option "StandbyTime" "0"
EndSection
Section "Device"
Identifier "VideoCard"
Driver "vesa"
EndSection
Section "Screen"
Identifier "Screen"
Device "VideoCard"
Monitor "Default Monitor"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Layout"
Screen "Screen"
EndSection
Section "Monitor"
Identifier "Default Monitor"
HorizSync 31.5 - 50
VertRefresh 50 - 70
EndSection
+50
View File
@@ -0,0 +1,50 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>zorg</Name>
<Homepage>http://www.pisilinux.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>Çomar's X configuration tools</Summary>
<Description>zorg is a set of X configuration tools and monitor and display adapter database files.</Description>
<Archive sha1sum="e643f28430d9c6f190a5164e87960ae0094f0cd0" type="targz">https://github.com/forYali/zorg/archive/2.0.4.tar.gz</Archive>
<Patches>
<Patch level="1">keyboard-config.patch</Patch>
<!--Patch>setkeymap-signature.patch</Patch-->
</Patches>
</Source>
<Package>
<Name>zorg</Name>
<Files>
<Path fileType="executable">/sbin</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="data">/usr/share/X11</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/var/lib/zorg</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/X11/xorg-safe.conf">xorg-safe.conf</AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script="xorg.display.py">Xorg.Display</COMAR>
<COMAR script="package.py">System.Package</COMAR>
</Provides>
</Package>
<History>
<Update release="1">
<Date>2017-03-05</Date>
<Version>2.0.4</Version>
<Comment>First release</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>zorg</Name>
<Summary xml:lang="tr">Çomar'ın X yapılandırma araçları</Summary>
<Description xml:lang="tr">X yapılandırma araçları, monitör ve ekran kartı veritabanları</Description>
<Description xml:lang="fr">outils de configuration de X, fichiers de base de données des écrans et des cartes vidéo.</Description>
<Summary xml:lang="de">Çomar's X-Konfigurationtools</Summary>
</Source>
</PISI>