コード例 #1
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    version = GetVersion()

    tarballUrl = "http://www.ijg.org/files/jpegsrc.v" + version + ".tar.gz"
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(
             ["wget", "-P", "./", "-O", tarballShortFilename, tarballUrl],
             verbose)
            RunCommand(
             ["tar", "--verbose", "--extract", "--gzip", "--file",
              tarballShortFilename],
             verbose)
        extractedDir = os.path.join(tempPath, "jpeg-" + version)
        with WorkingDir(extractedDir):
            RunCommand(
             ["./configure", "--host=" + targetTriplet,
              "--prefix=" + installPrefix, "--disable-shared"],
             verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #2
0
ファイル: libpcre.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--prefix=" + installPrefix, "--host=" +
                targetTriplet, "--enable-pcre16", "--enable-pcre32",
                "--enable-jit=auto", "--enable-newline-is-any", "--enable-utf",
                "--enable-unicode-properties"
            ], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #3
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(
                ["wget", "-P", "./", "-O", tarballShortFilename, tarballUrl],
                verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--host=" + targetTriplet,
                "--prefix=" + installPrefix, "--disable-sdltest",
                "CPPFLAGS=-I" + installPrefix + "/include",
                "LDFLAGS=-L" + installPrefix + "/lib"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #4
0
ファイル: libmodplug.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = requests.get(
        "https://sourceforge.net/projects/modplug-xmms/best_release.json"
    ).json()["release"]["url"]
    tarballShortFilename = tarballUrl.split("/")[-2]

    try:
        with WorkingDir(tempPath):
            RunCommand(
                ["wget", "-P", "./", "-O", tarballShortFilename, tarballUrl],
                verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--host=" + targetTriplet, "--prefix=" +
                installPrefix, "--enable-static=yes", "--disable-shared"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #5
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    sourceforgeMirrorsManager = mirrors["sourceforge"].CreateMirrorsManager(
        ["https", "http"])

    filename = requests.get(
        "https://sourceforge.net/projects/pcre/best_release.json").json(
        )["release"]["filename"]
    arhiveShortFilename = filename.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            SourceforgeDownloadTarballWhileErrorcodeFour(
                sourceforgeMirrorsManager, "pcre", filename, verbose)
            RunCommand(["unzip", arhiveShortFilename], verbose)
        extractedDir = os.path.join(tempPath, arhiveShortFilename[0:-4])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--prefix=" + installPrefix, "--host=" +
                targetTriplet, "--enable-pcre2-16", "--enable-pcre2-32",
                "--enable-jit=auto", "--enable-newline-is-any"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #6
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    xorgMirrorsManager = mirrors["xorg"].CreateMirrorsManager(
     ["https", "http"])

    tarballUrl = GetTarballUrl(xorgMirrorsManager)
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand(
             ["tar", "--verbose", "--extract", "--gzip", "--file",
              tarballShortFilename],
             verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand(
             ["./configure", "--host=" + targetTriplet,
              "--prefix=" + installPrefix],
             verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #7
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    pkgConfig = GetPkgConfig(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = requests.get(
     "https://sourceforge.net/projects/freetype/best_release.json"
    ).json()["release"]["url"]
    tarballShortFilename = tarballUrl.split("/")[-2]

    if os.path.exists(installPrefix + "/lib/libharfbuzz.a"):
        withHarfbuzz = "yes"
    else:
        withHarfbuzz = "no"

    try:
        with WorkingDir(tempPath):
            RunCommand(
             ["wget", "-P", "./", "-O", tarballShortFilename, tarballUrl],
             verbose)
            RunCommand(
             ["tar", "--verbose", "--extract", "--gzip", "--file",
              tarballShortFilename],
             verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            try:
                RunCommand(
                 ["./configure", "--host=" + targetTriplet,
                  "--prefix=" + installPrefix, "--disable-shared",
                  "--with-zlib=yes", "--with-bzip2=yes", "--with-png=yes",
                  "--with-harfbuzz=" + withHarfbuzz, "--with-old-mac-fonts",
                  "PKG_CONFIG=" + pkgConfig,
                  "PKG_CONFIG_PATH=" + installPrefix + "/lib/pkgconfig",
                  "BZIP2_CFLAGS=-I" + installPrefix + "/include",
                  "BZIP2_LIBS=-L" + installPrefix + "/lib -lbz2",
                  "HARFBUZZ_CFLAGS=-I" + installPrefix + "/include/harfbuzz",
                  "HARFBUZZ_LIBS=-L" + installPrefix + "/lib -lharfbuzz"],
                 verbose)
            except CommandError as e:
                try:
                    RunCommand(["cat", "./config.log"], verbose)
                except CommandError:
                    print("VGAZER: 'config.log' not found")
                finally:
                    raise e
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #8
0
ファイル: luajit.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    # ar = GetAr(platformData["target"]) + " rcu"
    # cc = GetCc(platformData["target"])
    triplet = GetTriplet(platformData["target"])
    # ranlib = GetRanlib(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    # luaTarget = {
    #     "linux": "linux",
    #     "windows": "mingw",
    # }[platformData["target"].GetOs()]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            # We need not Lua commandline tools, because it depends on readline
            # library. We need not extra depends like it. We need unly lua
            # library. This arguments prevent building commandline tools:
            # TO_BIN=
            # LUA_T=
            # LUAC_T=
            # INSTALL_BIN=
            # INSTALL_EXEC=true
            RunCommand([
                "make", "BUILDMODE=static", "CROSS=" + triplet + "-",
                "TARGET_SYS=" + platformData["target"].GetOs().capitalize()
            ], verbose)
            RunCommand(["make", "install", "PREFIX=" + installPrefix], verbose)
            # RunCommand(
            #  ["make", luaTarget, "CC=" + cc, "AR=" + ar, "RANLIB=" + ranlib,
            #   "TO_BIN=", "LUA_T=", "LUAC_T="],
            #  verbose)
            # RunCommand(
            #  ["make", luaTarget, "install", "INSTALL_TOP=" + installPrefix,
            #   "TO_BIN=", "LUA_T=", "LUAC_T=", "INSTALL_BIN=",
            #   "INSTALL_EXEC=true"],
            #  verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #9
0
ファイル: libbsd-minimal.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])
    # ar = GetAr(platformData["target"])
    # cc = GetCc(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    try:
        with WorkingDir(tempPath):
            RunCommand([
                "git", "clone",
                "https://github.com/AltSysrq/libbsd-minimal.git"
            ], verbose)
        clonedDir = os.path.join(tempPath, "libbsd-minimal")
        with WorkingDir(clonedDir):
            RunCommand(["libtoolize"], verbose)
            RunCommand(["aclocal"], verbose)
            RunCommand(["autoheader"], verbose)
            # RunCommand(["automake"], verbose)
            RunCommand(["automake", "--add-missing"], verbose)
            RunCommand(["autoreconf"], verbose)
            RunCommand([
                "./configure", "--host=" + targetTriplet,
                "--prefix=" + installPrefix, "--disable-shared",
                "CFLAGS=-D__THROW= -include features.h"
            ], verbose)
            RunCommand([
                "sed", "-i", "s"
                "/#define __nonnull(x)\t__attribute__((__nonnull__(x)))"
                "/#define __nonnull(x)    __attribute__((__nonnull__ x))"
                "/g", "include/bsd/sys/freebsd-cdefs.h"
            ], verbose)
            RunCommand(["make", "V=1"], verbose)
            RunCommand(["make", "install"], verbose)
            # RunCommand(["make", "CC=" + cc, "AR=" + ar], verbose)
            # if not os.path.exists(installPrefix + "/include"):
            #     RunCommand(["mkdir", "-p", installPrefix + "/include"],
            #      verbose)
            # if not os.path.exists(installPrefix + "/lib"):
            #     RunCommand(["mkdir", "-p", installPrefix + "/lib"], verbose)
            # RunCommand(
            #  ["cp", "./include/saneopt.h", installPrefix + "/include"],
            #  verbose)
            # RunCommand(["cp", "./libsaneopt.a", installPrefix + "/lib"],
            #  verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #10
0
ファイル: sdl2_image.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])
    pkgConfig = GetPkgConfig(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(
                ["wget", "-P", "./", "-O", tarballShortFilename, tarballUrl],
                verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            #tiffLibs = GetCommandOutputUtf8(
            #[pkgConfig, "--libs", "--static", "libtiff-4"], verbose=False)
            #RunCommand(
            #["sed", "-i",
            #"-e", "s/"
            #"AC_CHECK_LIB("
            #"[tiff], [TIFFClientOpen], [have_tif_lib=yes], [], [-lz]"
            #")/"
            #"AC_CHECK_LIB("
            #"[tiff], [TIFFClientOpen], [have_tif_lib=yes], [], "
            #"[" + tiffLibs + "]"
            #")/g",
            #"./configure.in"],
            #verbose)
            #RunCommand(["./autogen.sh"], verbose)
            RunCommand([
                "./configure", "--host=" + targetTriplet,
                "--prefix=" + installPrefix, "--disable-sdltest",
                "CPPFLAGS=-I" + installPrefix + "/include",
                "LDFLAGS=-L" + installPrefix + "/lib"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #11
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tags = auth["github"].GetJson(
        "https://api.github.com/repos/freedesktop/xorg-libpciaccess/tags")

    if GithubCheckApiRateLimitExceeded(tags):
        raise GithubApiRateLimitExceeded(
            "Github API rate limit reached while searching last version of "
            "repo: freedesktop/xorg-libpciaccess")

    tagNum = 0
    for tag in tags:
        if tag["name"] in [
                "xf86-video-xgi-0.9.1",
        ]:
            tagNum = tagNum + 1
        else:
            break

    tarballUrl = tags[tagNum]["tarball_url"]
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
            output = GetCommandOutputUtf8(
                ["tar", "--list", "--file", tarballShortFilename])
            extractedDir = os.path.join(tempPath,
                                        output.splitlines()[0].split("/")[0])
        with WorkingDir(extractedDir):
            RunCommand([
                "./autogen.sh", "--host=" + targetTriplet,
                "--prefix=" + installPrefix
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #12
0
ファイル: mpg123.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = requests.get(
        "https://sourceforge.net/projects/mpg123/best_release.json").json(
        )["release"]["url"]
    tarballShortFilename = tarballUrl.split("/")[-2]

    if platformData["target"].GetArch() == "i386":
        cpu = "i386_fpu"
    elif platformData["target"].GetArch() == "i486":
        cpu = "i486"
    elif platformData["target"].GetArch() in ["i586", "i686"]:
        cpu = "i586_dither"
    elif platformData["target"].GetArch() == "x86_64":
        cpu = "x86-64"
    else:
        raise UnknownTargetArch("Unknown target architecture: " +
                                platformData["target"].GetArch())

    try:
        with WorkingDir(tempPath):
            RunCommand(
                ["wget", "-P", "./", "-O", tarballShortFilename, tarballUrl],
                verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--bzip2", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-8])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--host=" + targetTriplet, "--prefix=" +
                installPrefix, "--enable-nagging=no", "--enable-ipv6=yes",
                "--enable-network=yes", "--with-cpu=" + cpu,
                "--with-audio=dummy", "--with-default-audio=dummy"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #13
0
ファイル: sdl2_gfx.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    sourceforgeMirrorsManager = mirrors["sourceforge"].CreateMirrorsManager(
        ["https", "http"])

    filename = requests.get(
        "https://sourceforge.net/projects/sdl2gfx/best_release.json").json(
        )["release"]["filename"]
    tarballShortFilename = filename.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            SourceforgeDownloadTarballWhileErrorcodeFour(
                sourceforgeMirrorsManager, "sdl2gfx", filename, verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand([
                "wget", "-O", "config.guess",
                "https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;"
                "f=config.guess;hb=HEAD"
            ], verbose)
            RunCommand([
                "wget", "-O", "config.sub",
                "https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;"
                "f=config.sub;hb=HEAD"
            ], verbose)
            RunCommand([
                "./configure", "--prefix=" + installPrefix,
                "--host=" + targetTriplet, "--disable-dependency-tracking",
                "--disable-sdltest"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #14
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    releases = auth["github"].GetJson(
     "https://api.github.com/repos/intel/libva/releases")

    if GithubCheckApiRateLimitExceeded(releases):
        raise GithubApiRateLimitExceeded(
         "Github API rate limit reached while searching last version of "
         "repo: intel/libva"
        )

    tarballUrl = releases[0]["tarball_url"]
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand(
             ["tar", "--verbose", "--extract", "--gzip", "--file",
              tarballShortFilename],
             verbose)
            output = GetCommandOutputUtf8(
             ["tar", "--list", "--file", tarballShortFilename]
            )
        extractedDir = os.path.join(tempPath,
         output.splitlines()[0].split("/")[0])
        with WorkingDir(extractedDir):
            RunCommand(
             ["./autogen.sh", "--host=" + targetTriplet,
              "--prefix=" + installPrefix,
              "PKG_CONFIG_PATH=" + installPrefix + "/lib/pkgconfig"],
             verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #15
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    libs = {
        "linux": "LIBS=-lasound",
        "windows": "",
    }[platformData["target"].GetOs()]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, "portaudio")
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--host=" + targetTriplet, "--prefix=" +
                installPrefix, "--disable-shared", "--with-alsa=yes",
                "--with-oss=yes", "--with-winapi=wmme,directx,wdmks",
                "LDFLAGS=-L" + installPrefix + "/lib", libs,
                "CPPFLAGS=-I" + installPrefix + "/include"
            ], verbose)
            RunCommand([
                "sed", "-i", "-e", "s#CFLAGS = #CFLAGS = -I" + installPrefix +
                "/include #g", "./Makefile"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #16
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    xorgMirrorsManager = mirrors["xorg"].CreateMirrorsManager(
     ["https", "http"])

    tarballUrl = GetTarballUrl(xorgMirrorsManager, suburl="individual/lib/",
     projectName="xlib", linksMustHave=["libX11-", ".tar.gz"],
     linksMustNotHave=[".sig"])
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand(
             ["tar", "--verbose", "--extract", "--gzip", "--file",
              tarballShortFilename],
             verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand(
             [
              "./configure",
              "--host=" + targetTriplet,
              "--prefix=" + installPrefix,
              "CPPFLAGS=-I" + installPrefix + "/include",
              "PKG_CONFIG_PATH={installPrefix}/lib/pkgconfig:"
              "{installPrefix}/share/pkgconfig".format(
               installPrefix=installPrefix)
             ],
             verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #17
0
ファイル: libxfixes.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tags = auth["base"].GetJson(
        "https://gitlab.freedesktop.org/api/v4/projects/715/repository/tags")

    tarballUrl = (
        "https://gitlab.freedesktop.org/api/v4/projects/715/repository/"
        "archive.tar.gz?sha=" + tags[0]["name"])
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
            output = GetCommandOutputUtf8(
                ["tar", "--list", "--file", tarballShortFilename])
        extractedDir = os.path.join(tempPath,
                                    output.splitlines()[0].split("/")[0])
        with WorkingDir(extractedDir):
            RunCommand([
                "./autogen.sh", "--host=" + targetTriplet,
                "--prefix=" + installPrefix,
                "PKG_CONFIG_PATH=" + installPrefix + "/lib/pkgconfig"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #18
0
ファイル: libpng.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    sourceforgeMirrorsManager = mirrors["sourceforge"].CreateMirrorsManager(
        ["https", "http"])

    filename = requests.get(
        "https://sourceforge.net/projects/libpng/best_release.json").json(
        )["release"]["filename"]
    tarballShortFilename = filename.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            SourceforgeDownloadTarballWhileErrorcodeFour(
                sourceforgeMirrorsManager, "libpng", filename, verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--xz", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--host=" + targetTriplet,
                "--prefix=" + installPrefix, "--disable-shared",
                "--enable-hardware-optimizations=yes",
                "CPPFLAGS=-I" + installPrefix + "/include",
                "LDFLAGS=-L" + installPrefix + "/lib"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #19
0
ファイル: libmount.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand(
             ["tar", "--verbose", "--extract", "--gzip", "--file",
              tarballShortFilename],
             verbose)
        extractedDir = os.path.join(tempPath,
         tarballShortFilename.split(".tar.gz")[0])
        with WorkingDir(extractedDir):
            RunCommand(["./autogen.sh"], verbose)
            RunCommand(
             [
              "./configure", "--prefix=" + installPrefix,
              "--host=" + targetTriplet, "--disable-static",
              "--disable-all-programs", "--enable-libblkid",
              "--enable-libmount"
             ],
             verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #20
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    if platformData["target"].GetArch() in ["i386", "i486", "i586", "i686"]:
        gccArch = platformData["target"].GetArch()
    elif platformData["target"].GetArch() == "x86_64":
        gccArch = "x86-64"

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--host=" + targetTriplet,
                "--prefix=" + installPrefix, "--disable-shared",
                "--enable-portable-binary", "--with-gcc-arch=" + gccArch
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #21
0
    def GenerateCrossFile(self):
        print("VGAZER: Generating CMake toolchain file...")
        cmakeOs = Platform.GetGenericOs(
            self.platformData["target"].GetOs()).capitalize()
        prefix = GetInstallPrefix(self.platformData)
        targetTriplet = GetTriplet(self.platformData["target"])

        cc = GetCc(self.platformData["target"])
        cxx = GetCxx(self.platformData["target"])

        if self.platformData["target"].PlatformsEqual(
                self.platformData["host"]):
            findMode = "BOTH"
        else:
            findMode = "ONLY"

        self.storeTemp.DirectoryWriteTextFile(
            "toolchain.cmake", "set(CMAKE_SYSTEM_NAME {cmakeOs})\n"
            "set(CMAKE_SYSTEM_PROCESSOR {cpu})\n"
            "set(CMAKE_C_COMPILER {cc})\n"
            "set(CMAKE_CXX_COMPILER {cxx})\n"
            "set(CMAKE_FIND_ROOT_PATH {prefix})\n"
            "SET("
            "ENV{{PKG_CONFIG_LIBDIR}} "
            "${{CMAKE_FIND_ROOT_PATH}}/lib/pkgconfig/:"
            "/usr/lib/{triplet}/pkgconfig"
            ")\n"
            "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)\n"
            "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY {findMode})\n"
            "SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE {findMode})".format(
                cmakeOs=cmakeOs,
                cpu=self.platformData["target"].GetArch(),
                cc=cc,
                cxx=cxx,
                prefix=prefix,
                triplet=targetTriplet,
                findMode=findMode))
コード例 #22
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tarballUrl = GetTarballUrl()
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(
                ["wget", "-P", "./", "-O", tarballShortFilename, tarballUrl],
                verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--xz", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-7])
        with WorkingDir(extractedDir):
            RunCommand([
                "./configure", "--host=" + targetTriplet,
                "--prefix=" + installPrefix, "--enable-static=yes",
                "--disable-shared", "--disable-thorough-tests",
                "--disable-doxygen-docs", "--disable-xmms-plugin",
                "--disable-cpplibs", "--enable-ogg", "--disable-oggtest"
            ], verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #23
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])
    targetOs = platformData["target"].GetOs()

    cc = GetCc(platformData["target"])
    ar = GetAr(platformData["target"])
    strip = GetStrip(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    sourceforgeMirrorsManager = mirrors["sourceforge"].CreateMirrorsManager(
        ["https", "http"])

    filename = requests.get(
        "https://sourceforge.net/projects/glew/best_release.json").json(
        )["release"]["filename"]
    tarballShortFilename = filename.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            SourceforgeDownloadTarballWhileErrorcodeFour(
                sourceforgeMirrorsManager, "glew", filename, verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
        extractedDir = os.path.join(tempPath, tarballShortFilename[0:-4])
        with WorkingDir(extractedDir):
            if targetOs == "windows":
                RunCommand([
                    "make", "glew.lib.static", "SYSTEM=linux-mingw64",
                    "HOST=" + targetTriplet, "AR=" + ar, "STRIP=" + strip,
                    "CFLAGS.EXTRA=-I" + installPrefix + "/include -fPIC",
                    "LDFLAGS.EXTRA=-L" + installPrefix + "/lib"
                ], verbose)
                RunCommand([
                    "make", "install.include", "SYSTEM=linux-mingw64",
                    "GLEW_PREFIX=" + installPrefix,
                    "GLEW_DEST=" + installPrefix
                ], verbose)
                if not os.path.exists(installPrefix + "/lib"):
                    RunCommand(["mkdir", "-p", installPrefix + "/lib"],
                               verbose)
                #if not os.path.exists(installPrefix + "/bin"):
                #RunCommand(["mkdir", "-p", installPrefix + "/bin"],
                #verbose)
                RunCommand(["cp", "lib/libglew32.a", installPrefix + "/lib"],
                           verbose)
                #RunCommand(["cp", "lib/glew32.dll", installPrefix + "/bin"],
                #verbose)
                RunCommand([
                    "make", "install.pkgconfig", "SYSTEM=linux-mingw64",
                    "GLEW_PREFIX=" + installPrefix,
                    "GLEW_DEST=" + installPrefix
                ], verbose)
            else:
                RunCommand([
                    "make", "glew.lib", "CC=" + cc, "LD=" + cc, "AR=" + ar,
                    "STRIP=" + strip,
                    "CFLAGS.EXTRA=-I" + installPrefix + "/include -fPIC",
                    "LDFLAGS.EXTRA=-L" + installPrefix + "/lib"
                ], verbose)
                RunCommand([
                    "make", "install", "GLEW_PREFIX=" + installPrefix,
                    "GLEW_DEST=" + installPrefix
                ], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #24
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    isCrossbuild = not (platformData["target"].PlatformsEqual(
        platformData["host"]))
    hostBitness = GetBitness(platformData["host"])
    hostTriplet = GetTriplet(platformData["host"])
    hostCc = GetCc(platformData["host"])
    hostCxx = GetCxx(platformData["host"])
    hostOs = platformData["host"].GetOs()
    hostIcuPlatformName = GetIcuPlatformName(
        platformData["host"].GetGenericOs(hostOs))
    if isCrossbuild:
        hostInstallPrefix = "/usr/local"
        targetInstallPrefix = GetInstallPrefix(platformData)
        targetTriplet = GetTriplet(platformData["target"])
        targetCc = GetCc(platformData["target"])
        targetCxx = GetCxx(platformData["target"])
        targetOs = platformData["host"].GetOs()
        targetIcuPlatformName = GetIcuPlatformName(
            platformData["target"].GetGenericOs(targetOs))
    else:
        hostInstallPrefix = GetInstallPrefix(platformData)

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    releases = auth["github"].GetJson(
        "https://api.github.com/repos/unicode-org/icu/releases")

    if GithubCheckApiRateLimitExceeded(releases):
        raise GithubApiRateLimitExceeded(
            "Github API rate limit reached while searching last version of "
            "repo: unicode-org/icu")

    tarballUrl = releases[0]["tarball_url"]
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
            output = GetCommandOutputUtf8(
                ["tar", "--list", "--file", tarballShortFilename])
        extractedDir = os.path.join(tempPath,
                                    output.splitlines()[0].split("/")[0])
        with WorkingDir(extractedDir):
            RunCommand(["mkdir", "icu4c/hostBuild"], verbose)
        hostBuildDir = os.path.join(extractedDir, "icu4c/hostBuild")
        with WorkingDir(hostBuildDir):
            RunCommand([
                "../source/runConfigureICU", hostIcuPlatformName,
                "--host=" + hostTriplet, "--prefix=" + hostInstallPrefix,
                "--disable-shared", "--enable-static=yes",
                "--enable-extras=no", "--enable-icuio=no",
                "--enable-layoutex=no", "--enable-tools", "--enable-tests=no",
                "--enable-samples=no", "--with-library-bits=" +
                str(hostBitness), "CC=" + hostCc, "CXX=" + hostCxx
            ], verbose)
            RunCommand(["make"], verbose)
            if not isCrossbuild:
                RunCommand(["make", "install"], verbose)
        if isCrossbuild:
            with WorkingDir(extractedDir):
                RunCommand(["mkdir", "icu4c/targetBuild"], verbose)
            targetBuildDir = os.path.join(extractedDir, "icu4c/targetBuild")
            with WorkingDir(targetBuildDir):
                RunCommand([
                    "../source/runConfigureICU", targetIcuPlatformName,
                    "--host=" + targetTriplet,
                    "--prefix=" + targetInstallPrefix,
                    "--with-cross-build=" + hostBuildDir, "--disable-shared",
                    "--enable-static=yes", "--enable-extras=no",
                    "--enable-icuio=no", "--enable-layoutex=no",
                    "--enable-tools", "--enable-tests=no",
                    "--enable-samples=no", "CC=" + targetCc, "CXX=" + targetCxx
                ], verbose)
                RunCommand(["make"], verbose)
                RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #25
0
ファイル: tslib.py プロジェクト: edomin/vgazer
def Install(auth, software, platform, platformData, mirrors, verbose):
    targetOs = platformData["target"].GetOs()
    if targetOs == "linux":
        configCmake = ConfigCmake(platformData)
        configCmake.GenerateCrossFile()
    elif targetOs == "windows":
        targetTriplet = GetTriplet(platformData["target"])
        pkgConfig = GetPkgConfig(platformData["target"])
    else:
        raise UnknownOs("Unknown OS: " + targetOs)

    installPrefix = GetInstallPrefix(platformData)

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    releases = auth["github"].GetJson(
        "https://api.github.com/repos/libts/tslib/releases")

    if GithubCheckApiRateLimitExceeded(releases):
        raise GithubApiRateLimitExceeded(
            "Github API rate limit reached while searching last version of "
            "repo: libts/tslib")

    tarballUrl = releases[0]["tarball_url"]
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand([
                "tar", "--verbose", "--extract", "--gzip", "--file",
                tarballShortFilename
            ], verbose)
            output = GetCommandOutputUtf8(
                ["tar", "--list", "--file", tarballShortFilename])
        extractedDir = os.path.join(tempPath,
                                    output.splitlines()[0].split("/")[0])
        with WorkingDir(extractedDir):
            RunCommand(["mkdir", "build"], verbose)
            if targetOs == "windows":
                RunCommand(["./autogen.sh"], verbose)
        buildDir = os.path.join(extractedDir, "build")
        with WorkingDir(buildDir):
            if targetOs == "linux":
                RunCommand([
                    "cmake", "..",
                    "-DCMAKE_TOOLCHAIN_FILE=" + configCmake.GetCrossFileName(),
                    "-DCMAKE_INSTALL_PREFIX=" + installPrefix,
                    "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON", "-DENABLE_TOOLS=OFF"
                ], verbose)
                RunCommand(["cmake", "--build", "."], verbose)
                RunCommand(["cmake", "-P", "cmake_install.cmake"], verbose)
            elif targetOs == "windows":
                RunCommand([
                    "../configure", "--host=" + targetTriplet, "--prefix=" +
                    installPrefix, "--disable-input", "--disable-touchkit",
                    "--disable-waveshare", "PKG_CONFIG=" + pkgConfig
                ], verbose)
                RunCommand(["make"], verbose)
                RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")
コード例 #26
0
def Install(auth, software, platform, platformData, mirrors, verbose):
    installPrefix = GetInstallPrefix(platformData)
    targetTriplet = GetTriplet(platformData["target"])

    storeTemp = StoreTemp()
    storeTemp.ResolveEmptySubdirectory(software)
    tempPath = storeTemp.GetSubdirectoryPath(software)

    tags = auth["github"].GetJson(
     "https://api.github.com/repos/freedesktop/libXext/tags")

    if GithubCheckApiRateLimitExceeded(tags):
        raise GithubApiRateLimitExceeded(
         "Github API rate limit reached while searching last version of "
         "repo: freedesktop/libXext"
        )

    tagNum = 0
    for tag in tags:
        if tag["name"] in [
         "xo-6_7_0",
         "xf86-012804-2330",
         "xf86-4_4_99_1",
         "xf86-4_4_0",
         "xf86-4_3_99_903",
         "xf86-4_3_99_903_special",
         "xf86-4_3_99_902",
         "xf86-4_3_99_901",
         "xf86-4_3_99_16",
         "xf86-4_3_0_1",
         "sco_port_update-base",
         "rel-0-6-1",
         "lg3d-rel-0-7-0",
        ]:
            tagNum = tagNum + 1
        else:
            break

    tarballUrl = tags[tagNum]["tarball_url"]
    tarballShortFilename = tarballUrl.split("/")[-1]

    try:
        with WorkingDir(tempPath):
            RunCommand(["wget", "-P", "./", tarballUrl], verbose)
            RunCommand(
             ["tar", "--verbose", "--extract", "--gzip", "--file",
              tarballShortFilename],
             verbose)
            output = GetCommandOutputUtf8(
             ["tar", "--list", "--file", tarballShortFilename]
            )
        extractedDir = os.path.join(tempPath,
         output.splitlines()[0].split("/")[0])
        with WorkingDir(extractedDir):
            RunCommand(
             ["./autogen.sh", "--host=" + targetTriplet,
              "--prefix=" + installPrefix,
              "PKG_CONFIG_PATH=" + installPrefix + "/lib/pkgconfig"],
             verbose)
            RunCommand(["make"], verbose)
            RunCommand(["make", "install"], verbose)
    except CommandError:
        print("VGAZER: Unable to install", software)
        raise InstallError(software + " not installed")

    print("VGAZER:", software, "installed")