123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- # -*- 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 kerneltools
- from pisi.actionsapi import shelltools
- from pisi.actionsapi import pisitools
- from pisi.actionsapi import get
- WorkDir = "./"
- KDIR = kerneltools.getKernelVersion()
- NoStrip = ["/lib/modules"]
- BuildDir = "common/lib/modules/fglrx/build_mod"
- if get.buildTYPE() == 'emul32':
- Target = "x86"
- Libdir = "/usr/lib32"
- else:
- Target = get.ARCH().replace("i686", "x86")
- Libdir = "/usr/lib"
- XDir = "xpic" + ("_64a" if Target == "x86_64" else "")
- def setup():
- shelltools.makedirs("%s/common" % get.workDIR())
- shelltools.move("lib", "%s/common/" % get.workDIR())
- shelltools.move("usr", "%s/common/" % get.workDIR())
- shelltools.move("etc", "%s/common/" % get.workDIR())
- #shelltools.export("SETUP_NOCHECK", "1")
- #shelltools.system("sh amd-driver-installer-*-x86.x86_64.run --extract .")
- if get.buildTYPE() == "emul32":
- return
- # Needed during kernel module compiling
- shelltools.sym("../../../../../arch/%s/lib/modules/fglrx/build_mod/libfglrx_ip.a" % Target, "%s/libfglrx_ip.a" % BuildDir)
- pisitools.dosed("%s/make.sh" % BuildDir, r"^linuxincludes=.*", "linuxincludes=/lib/modules/%s/build/include" % KDIR)
- pisitools.dosed("%s/make.sh" % BuildDir, r"^uname_r=.*", "uname_r=%s" % KDIR)
- pisitools.dosed("common/etc/ati/authatieventsd.sh", "/var/lib/xdm/authdir/authfiles", "/var/run/xauth")
- shelltools.system("patch -p1 < desktop-files.patch")
-
- #shelltools.system("patch -p1 < fglrx_gpl_symbol.patch")
- #shelltools.system("patch -p1 < kolasa_4.0-cr4-strn.patch")
- #shelltools.system("patch -p1 < lano1106_fglrx_intel_iommu.patch")
- #shelltools.system("patch -p1 < lano1106_kcl_agp_13_4.patch")
- shelltools.system("patch -p1 < makefile_compat.patch")
- #shelltools.system("patch -p1 < 4.4-manjaro-xstate.patch")
- def build():
- shelltools.export("SHELL", "/bin/sh")
- if get.buildTYPE() == "emul32":
- return
- shelltools.cd(BuildDir)
- shelltools.system("sh ./make.sh")
- def install():
- # Controlcenter binaries
- if not get.buildTYPE() == 'emul32':
- pisitools.dobin("arch/%s/usr/X11R6/bin/*" % Target)
- pisitools.dobin("common/usr/X11R6/bin/*")
- pisitools.dosbin("arch/%s/usr/sbin/*" % Target)
- pisitools.dobin("arch/%s/usr/bin/*" % Target)
- pisitools.dosbin("common/usr/sbin/*")
- # Controlcenter libraries
- # The other files under /usr/share are common files like icon,man,doc ,etc ..
- DIRS = {
- "common/usr/share/doc/fglrx/examples/etc/acpi/events": "/etc/acpi",
- "common/etc/*": "/etc",
- "arch/%s/etc/OpenCL/*" % Target: "/etc/OpenCL",
- "arch/%s/usr/X11R6/lib*/*" % Target: Libdir,
- "arch/%s/usr/lib*/*" % Target: Libdir,
- "common/usr/share/*": "/usr/share"
- }
- # Emul32 package don't need files that belongs to /usr/share
- if get.buildTYPE() == "emul32":
- del DIRS["common/usr/share/*"]
- del DIRS["common/etc/*"]
- del DIRS["common/usr/share/doc/fglrx/examples/etc/acpi/events"]
- for source, target in DIRS.items():
- pisitools.insinto(target, source)
- # pisitools.insinto("usr/share/ati/lib64", "arch/%s/usr/share/ati/lib*/*" % Target)
- # X.org drivers
- pisitools.domove("%s/modules" % Libdir, "%s/fglrx" % Libdir)
- pisitools.insinto("%s/fglrx/modules" % Libdir, "%s/usr/X11R6/lib*/modules/*" % XDir)
- pisitools.insinto("%s/xorg/modules" % Libdir, "%s/usr/X11R6/lib*/modules/*" % XDir)
- # libGl library name changed to fglrx-libGl since 1.15
- pisitools.domove("%s/fglrx/fglrx-libGL.so.1.2" % Libdir, "%s/fglrx" % Libdir, "libGL.so.1.2.0")
- pisitools.domove("%s/fglrx/modules/dri" % Libdir, "%s/xorg/modules/" % Libdir)
- pisitools.domove("%s/fglrx/modules/extensions/fglrx/fglrx-libglx.so" % Libdir,
- "%s/fglrx/modules/extensions" % Libdir, "libglx.so")
- # Necessary symlinks
- pisitools.dosym("%s/xorg/modules/dri/fglrx_dri.so" % Libdir, "%s/dri/fglrx_dri.so" % Libdir)
- pisitools.dosym("libatiuki.so.1.0", "%s/libatiuki.so.1" % Libdir)
- pisitools.dosym("libatiuki.so.1", "%s/libatiuki.so" % Libdir)
- pisitools.dosym("libfglrx_dm.so.1.0", "%s/libfglrx_dm.so.1" % Libdir)
- pisitools.dosym("libfglrx_dm.so.1", "%s/libfglrx_dm.so" % Libdir)
- pisitools.dosym("libAMDXvBA.so.1.0", "%s/libAMDXvBA.so.1" % Libdir)
- pisitools.dosym("libAMDXvBA.so.1", "%s/libAMDXvBA.so" % Libdir)
- pisitools.dosym("libXvBAW.so.1.0", "%s/libXvBAW.so.1" % Libdir)
- pisitools.dosym("libXvBAW.so.1", "%s/libXvBAW.so" % Libdir)
- # remove static libs
- pisitools.remove("%s/*.a" % Libdir)
- if shelltools.isFile("%s%s/fglrx/modules/esut.a" % (get.installDIR(), Libdir)):
- pisitools.remove("%s/fglrx/modules/esut.a" % Libdir)
- # compatibility links
- pisitools.dosym("xorg/modules", "%s/modules" % Libdir)
- # OK, That's the end of emul32 build, it's time to exit.
- if get.buildTYPE() == "emul32":
- return
- # Another compatibility link
- pisitools.dosym("/usr", "/usr/X11R6")
- pisitools.dosym("../security/console.apps/amdcccle-su", "/etc/pam.d/amdcccle-su")
- # copy compiled kernel module
- pisitools.insinto("/lib/modules/%s/extra/fglrx" % KDIR, "common/lib/modules/fglrx/fglrx.%s.ko" % KDIR, "fglrx.ko")
- pisitools.insinto("/lib/modules/%s/kernel/drivers/char/drm" % KDIR, "common/lib/modules/fglrx/fglrx.%s.ko" % KDIR, "fglrx.ko")
- # control script for ACPI lid state and AC adapter state
- pisitools.insinto("/etc/acpi", "common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh")
- # not needed as xdg-utils package provides xdg-su
- pisitools.remove("/usr/bin/amdxdg-su")
- pisitools.domove("/usr/share/icons/ccc_large.xpm", "/usr/share/pixmaps", "amdcccle.xpm")
- pisitools.removeDir("/usr/share/icons")
- #LICENSE information
- pisitools.dodoc("LICENSE.TXT")
- # Fix file permissions
- exec_file_suffixes = (".sh", ".so", ".so.1.2.0")
- exec_dir_suffixes = ("/bin", "/sbin", "/lib")
- import os
- for root, dirs, files in os.walk(get.installDIR()):
- for name in files:
- filePath = os.path.join(root, name)
- if os.path.islink(filePath):
- continue
- if root.endswith(exec_dir_suffixes) \
- or name.endswith(exec_file_suffixes):
- shelltools.chmod(filePath, 0755)
- else:
- shelltools.chmod(filePath, 0644)
|