You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
4.2 KiB
Python
121 lines
4.2 KiB
Python
#!/usr/bin/env python
|
|
# -*-mode: python; coding: utf-8 -*-
|
|
|
|
import os
|
|
import glob
|
|
import sys
|
|
import urllib2
|
|
|
|
#INDI = "http://ftp.sunet.se/pub/X11/ftp.x.org/individual"
|
|
INDI = "http://ftp.x.org/pub/individual/"
|
|
PROTO = INDI + "proto/"
|
|
LIB = INDI + "lib/"
|
|
SERVER = INDI + "xserver/"
|
|
UTIL = INDI + "util/"
|
|
DATA = INDI + "data/"
|
|
APP = INDI + "app/"
|
|
|
|
packages = {
|
|
"damageproto": PROTO + "damageproto-1.2.0.tar.bz2",
|
|
"fixesproto": PROTO + "fixesproto-4.1.1.tar.bz2",
|
|
"resourceproto": PROTO + "resourceproto-1.1.0.tar.bz2",
|
|
"fontsproto": PROTO + "fontsproto-2.1.0.tar.bz2",
|
|
"bigreqsproto": PROTO + "bigreqsproto-1.1.0.tar.bz2",
|
|
"kbproto": PROTO + "kbproto-1.0.4.tar.bz2",
|
|
"inputproto": PROTO + "inputproto-2.0.tar.bz2",
|
|
"glproto": PROTO + "glproto-1.4.12.tar.bz2",
|
|
"xineramaproto": PROTO + "xineramaproto-1.2.tar.bz2",
|
|
"randrproto": PROTO + "randrproto-1.3.1.tar.bz2",
|
|
"scrnsaverproto": PROTO + "scrnsaverproto-1.2.0.tar.bz2",
|
|
"renderproto": PROTO + "renderproto-0.11.tar.bz2",
|
|
"xcmiscproto": PROTO + "xcmiscproto-1.2.0.tar.bz2",
|
|
"xextproto": PROTO + "xextproto-7.1.1.tar.bz2",
|
|
"xf86driproto": PROTO + "xf86driproto-2.1.0.tar.bz2",
|
|
"dri2proto": PROTO + "dri2proto-2.1.tar.bz2",
|
|
"compositeproto": PROTO + "compositeproto-0.4.1.tar.bz2",
|
|
"xf86vidmodeproto": PROTO + "xf86vidmodeproto-2.3.tar.bz2",
|
|
"videoproto": PROTO + "videoproto-2.3.0.tar.bz2",
|
|
"xproto": PROTO + "xproto-7.0.16.tar.bz2",
|
|
|
|
"libxkbfile": LIB + "libxkbfile-1.0.6.tar.bz2",
|
|
"libXxf86vm": LIB + "libXxf86vm-1.1.0.tar.bz2",
|
|
"libXext": LIB + "libXext-1.1.2.tar.bz2",
|
|
"libfontenc": LIB + "libfontenc-1.0.5.tar.bz2",
|
|
"libXau": LIB + "libXau-1.0.6.tar.bz2",
|
|
"libXfont": LIB + "libXfont-1.4.2.tar.bz2",
|
|
"libXfixes": LIB + "libXfixes-4.0.5.tar.bz2",
|
|
"libSM": LIB + "libSM-1.1.1.tar.bz2",
|
|
"libXi": LIB + "libXi-1.3.2.tar.bz2",
|
|
"libXmu": LIB + "libXmu-1.0.5.tar.bz2",
|
|
"libX11": LIB + "libX11-1.3.5.tar.bz2",
|
|
"libXdmcp": LIB + "libXdmcp-1.0.3.tar.bz2",
|
|
"xtrans": LIB + "xtrans-1.2.5.tar.bz2",
|
|
"libXt": LIB + "libXt-1.0.8.tar.bz2",
|
|
"libpciaccess": LIB + "libpciaccess-0.12.0.tar.bz2",
|
|
"libICE": LIB + "libICE-1.0.6.tar.bz2",
|
|
"pixman": LIB + "pixman-0.19.2.tar.bz2",
|
|
"libXdamage": LIB + "libXdamage-1.1.3.tar.bz2",
|
|
|
|
"util-macros": UTIL + "util-macros-1.10.0.tar.bz2",
|
|
"xorg-server": SERVER + "xorg-server-1.8.2.tar.bz2",
|
|
|
|
"libdrm": "http://dri.freedesktop.org/libdrm/libdrm-2.4.21.tar.bz2",
|
|
"Mesa": "ftp://ftp.freedesktop.org/pub/mesa/beta/MesaLib-7.8.3-rc1.tar.bz2",
|
|
"libpthread-stubs": "http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2",
|
|
"freetype": "http://downloads.sourceforge.net/freetype/freetype-2.4.2.tar.bz2",
|
|
}
|
|
|
|
# Python-based replacement for wget, which allows us to catch exceptions
|
|
def webget(url, file_name):
|
|
file_name = "%s/%s" % (os.getcwd(), file_name)
|
|
print "Downloading: %s" % (url)
|
|
try:
|
|
u = urllib2.urlopen(url)
|
|
except urllib2.URLError:
|
|
print sys.exc_info()[0]
|
|
sys.exit("ERROR: Unable to open URL: %s" % url)
|
|
try:
|
|
f = open(file_name, 'wb')
|
|
except IOError:
|
|
sys.exit("ERROR: Unable to save to: %s" % file_name)
|
|
else:
|
|
meta = u.info()
|
|
file_size = int(meta.getheaders("Content-Length")[0])
|
|
print " Saving as: %s Bytes: %s" % (file_name, file_size)
|
|
|
|
file_size_dl = 0
|
|
block_sz = 4096
|
|
while True:
|
|
buffer = u.read(block_sz)
|
|
if not buffer:
|
|
break
|
|
|
|
file_size_dl += len(buffer)
|
|
f.write(buffer)
|
|
status = r" Progress: %7d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
|
|
status = status + chr(8)*(len(status)+1)
|
|
print status,
|
|
|
|
f.close()
|
|
print status
|
|
|
|
|
|
def main():
|
|
dir = os.path.expanduser("~")+"/.tigervnc-xorg-7.5"
|
|
cwd = os.getcwd()
|
|
if not os.path.exists(dir):
|
|
os.mkdir(dir)
|
|
os.chdir(dir)
|
|
|
|
for pkg in packages.keys():
|
|
loc = packages[pkg]
|
|
if ".tar.bz2" in loc:
|
|
fname = pkg + ".tar.bz2"
|
|
else :
|
|
fname = pkg + ".tar.gz"
|
|
if not os.path.exists(fname):
|
|
webget(loc, fname)
|
|
|
|
os.chdir(cwd)
|
|
main()
|