class Base(Hook): @classmethod # Returns the kmod links def GetKmodLinks(cls): return cls._kmod_links # Dependencies # 1. sys-apps/busybox # 2. sys-apps/kmod # 3. app-shells/bash # 4. sys-apps/grep # 5. sys-apps/kbd # 6. udev _files = [ "/bin/busybox", Tools.GetProgramPath("kmod"), "/bin/bash", "/bin/egrep", "/bin/fgrep", "/bin/grep", "/usr/bin/loadkeys", Tools.GetUdevPath(), Tools.GetProgramPath("udevadm"), ] _kmod_links = ["depmod", "insmod", "lsmod", "modinfo", "modprobe", "rmmod"]
def VerifyPreliminaryBinaries(cls): Tools.Info("Checking preliminary binaries ...") # If the required binaries don't exist, then exit for binary in var.prel_bin: if not os.path.isfile(Tools.GetProgramPath(binary)): Tools.BinaryDoesntExist(binary)
def CopyLibGccLibrary(cls): """Copy the 'libgcc' library so that when libpthreads loads it during runtime.""" # https://github.com/zfsonlinux/zfs/issues/4749. # Find the correct path for libgcc libgccFilename = "libgcc_s.so" libgccFilenameMain = libgccFilename + ".1" # check for gcc-config gccConfigPath = Tools.GetProgramPath("gcc-config") if gccConfigPath: # Try gcc-config cmd = "gcc-config -L | cut -d ':' -f 1" res = Tools.Run(cmd) if res: # Use path from gcc-config libgccPath = res[0] + "/" + libgccFilenameMain Tools.SafeCopy(libgccPath, var.GetTempLib64Dir()) os.chdir(var.GetTempLib64Dir()) os.symlink(libgccFilenameMain, libgccFilename) return # Doing a 'whereis <name of libgcc library>' will not work because it seems # that it finds libraries in /lib, /lib64, /usr/lib, /usr/lib64, but not in # /usr/lib/gcc/ (x86_64-pc-linux-gnu/5.4.0, etc) # When a better approach is found, we can plug it in here directly and return # in the event that it succeeds. If it fails, we just continue execution # until the end of the function. # If we've reached this point, we have failed to copy the gcc library. Tools.Fail("Unable to retrieve the gcc library path!")
class Base(Hook): @classmethod # Returns the kmod links def GetKmodLinks(cls): return cls._kmod_links _files = [ # sys-apps/busybox "/bin/busybox", # sys-apps/kmod Tools.GetProgramPath("kmod"), # app-shells/bash "/bin/bash", # sys-apps/grep "/bin/egrep", "/bin/fgrep", "/bin/grep", # sys-apps/kbd, "/usr/bin/loadkeys", # udev Tools.GetUdevPath(), Tools.GetProgramPath("udevadm"), ] _kmod_links = [ "depmod", "insmod", "lsmod", "modinfo", "modprobe", "rmmod", ]