From 837a6fdf8abb7782bf2f6cdae60e8e671fa35202 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 29 Jun 2013 02:54:29 -0700 Subject: [PATCH] Add support for alternative maven servers in libraries. Also download sources for public libraries, and atach them in eclipse. DOCUMENTATION!! YAYA! --- fml/eclipse-workspace-dev.zip | Bin 24297 -> 24435 bytes fml/install/eclipse/Minecraft/.classpath | 63 ++++++++++++----------- fml/install/fml.py | 23 +++++++-- fml/jsons/1.6-dev.json | 48 +++++++++++++---- 4 files changed, 90 insertions(+), 44 deletions(-) diff --git a/fml/eclipse-workspace-dev.zip b/fml/eclipse-workspace-dev.zip index 3264b8032023cf787bc10910cf28fc95b5461865..6af3ec7abd3bd2e4784e41ef768b766dd1061a05 100644 GIT binary patch delta 1681 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 CtlsGW diff --git a/fml/install/eclipse/Minecraft/.classpath b/fml/install/eclipse/Minecraft/.classpath index 0eb8509acb..23a24ca2c4 100644 --- a/fml/install/eclipse/Minecraft/.classpath +++ b/fml/install/eclipse/Minecraft/.classpath @@ -1,36 +1,37 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fml/install/fml.py b/fml/install/fml.py index aece73f2bc..4cd3a46c37 100644 --- a/fml/install/fml.py +++ b/fml/install/fml.py @@ -1169,23 +1169,40 @@ def download_libraries(mcp_dir, libraries, natives_dir): for k,v in lib['natives'].items(): file_names.append('%s-%s-%s.jar' % (root, version, v)) + if 'children' in lib.keys(): + for child in lib['children']: + file_names.append('%s-%s-%s.jar' % (root, version, child)) + for file_name in file_names: url = '%s/%s/%s' % (root_url, '/'.join(path), file_name) file_path = os.path.join(lib_dir, os.sep.join(path), file_name) headers = get_headers(url) if headers is None: - print 'Could not retreive headers for library: %s ( %s )' % (lib['name'], url) + print('Could not retreive headers for library: %s ( %s )' % (lib['name'], url)) failed = True else: + md5 = None + if 'ETag' in headers.keys(): # Amazon headers, Mojang's server + md5 = headers['ETag'] + else: # Could be a normal maven repo, check for .md5 file + try: + md5 = urllib2.urlopen(url + '.md5').read().split(' ')[0].replace('\r', '').replace('\n', '') + if not len(md5) == 32: + md5 = None + print('Could not retrieve md5 for library %s ( %s.md5 )' % (file_name, url)) + failed = True + except (HTTPError): + failed = True + pass downloads.append({ 'url' : url, 'file' : file_path, - 'md5' : headers['ETag'], + 'md5' : md5, 'size' : headers['Content-Length'], 'extract' : extract }) - return download_list(downloads, natives_dir) + return download_list(downloads, natives_dir) or failed def download_list(list, natives_dir): #Downloads a list of files and urls. Verifying md5s if avalible. diff --git a/fml/jsons/1.6-dev.json b/fml/jsons/1.6-dev.json index f2e2fdb9ee..2852eeef28 100644 --- a/fml/jsons/1.6-dev.json +++ b/fml/jsons/1.6-dev.json @@ -13,10 +13,14 @@ }, { "name": "org.ow2.asm:asm-all:4.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2", "comment" : "Important for FML, we add this" }, { - "name": "net.sf.jopt-simple:jopt-simple:4.5" + "name": "net.sf.jopt-simple:jopt-simple:4.5", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { "name": "com.paulscode:codecjorbis:20101023" @@ -34,34 +38,58 @@ "name": "com.paulscode:soundsystem:20120107" }, { - "name": "org.lwjgl.lwjgl:lwjgl:2.9.0" + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { - "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0" + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { "name": "argo:argo:2.25_fixed" }, { - "name": "org.bouncycastle:bcprov-jdk15on:1.47" + "name": "net.sourceforge.argo:argo:2.25", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2", + "comment" : "grumble grumble grumble, y u no use proper version/artifact id grumble" }, { - "name": "com.google.guava:guava:14.0" + "name": "org.bouncycastle:bcprov-jdk15on:1.47", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { - "name": "org.apache.commons:commons-lang3:3.1" + "name": "com.google.guava:guava:14.0", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { - "name": "commons-io:commons-io:2.4" + "name": "org.apache.commons:commons-lang3:3.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { - "name": "net.java.jinput:jinput:2.0.5" + "name": "commons-io:commons-io:2.4", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { - "name": "net.java.jutils:jutils:1.0.0" + "name": "net.java.jinput:jinput:2.0.5", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { - "name": "com.google.code.gson:gson:2.2.2" + "name": "net.java.jutils:jutils:1.0.0", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "com.google.code.gson:gson:2.2.2", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" }, { "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0",