diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 7fff98a7..cad61cea 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -299,13 +299,39 @@ fetch_svn() { fetch_jar() { local package_name="$1" local package_url="$2" + local mirror_url + local checksum - echo "Downloading ${package_url}..." >&2 - { fetch_url "$package_url" > "${package_name}.jar" - $JAVA -jar ${package_name}.jar -s -d ${package_name} + if [ "$package_url" != "${package_url/\#}" ]; then + checksum="${package_url#*#}" + package_url="${package_url%%#*}" + + if [ -n "$PYTHON_BUILD_MIRROR_URL" ]; then + mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum" + fi + fi + + local package_filename="${package_name}.jar" + symlink_jar_from_cache "$package_filename" "checksum" || { + echo "Downloading ${package_filename}..." >&2 + { http head "$mirror_url" && + download_jar "$mirror_url" "$package_filename" "$checksum" + } || + download_jar "$package_url" "$package_filename" "$checksum" + } + { $JAVA -jar ${package_name}.jar -s -d ${package_name} + rm -f "$package_filename" } >&4 2>&1 } +symlink_jar_from_cache() { + symlink_tarball_from_cache "$@" +} + +download_jar() { + download_tarball "$@" +} + build_package() { local package_name="$1" shift diff --git a/plugins/python-build/share/python-build/2.6.6 b/plugins/python-build/share/python-build/2.6.6 index 20ecf971..d0012e5d 100644 --- a/plugins/python-build/share/python-build/2.6.6 +++ b/plugins/python-build/share/python-build/2.6.6 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac diff --git a/plugins/python-build/share/python-build/2.6.7 b/plugins/python-build/share/python-build/2.6.7 index 271d9d08..76ed458c 100644 --- a/plugins/python-build/share/python-build/2.6.7 +++ b/plugins/python-build/share/python-build/2.6.7 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac diff --git a/plugins/python-build/share/python-build/2.6.8 b/plugins/python-build/share/python-build/2.6.8 index d811f1bb..45df6035 100644 --- a/plugins/python-build/share/python-build/2.6.8 +++ b/plugins/python-build/share/python-build/2.6.8 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac diff --git a/plugins/python-build/share/python-build/2.7 b/plugins/python-build/share/python-build/2.7 index 391aaa64..80fa2c63 100644 --- a/plugins/python-build/share/python-build/2.7 +++ b/plugins/python-build/share/python-build/2.7 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac diff --git a/plugins/python-build/share/python-build/2.7.1 b/plugins/python-build/share/python-build/2.7.1 index ad0a21e0..f50615f7 100644 --- a/plugins/python-build/share/python-build/2.7.1 +++ b/plugins/python-build/share/python-build/2.7.1 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac diff --git a/plugins/python-build/share/python-build/3.0.1 b/plugins/python-build/share/python-build/3.0.1 index c93b6794..4402bc2a 100644 --- a/plugins/python-build/share/python-build/3.0.1 +++ b/plugins/python-build/share/python-build/3.0.1 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python30/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python30/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac diff --git a/plugins/python-build/share/python-build/3.1.3 b/plugins/python-build/share/python-build/3.1.3 index a4030771..4e330482 100644 --- a/plugins/python-build/share/python-build/3.1.3 +++ b/plugins/python-build/share/python-build/3.1.3 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac diff --git a/plugins/python-build/share/python-build/3.2 b/plugins/python-build/share/python-build/3.2 index fe579f43..b3ef4f51 100644 --- a/plugins/python-build/share/python-build/3.2 +++ b/plugins/python-build/share/python-build/3.2 @@ -2,7 +2,7 @@ before_install_package() { local package_name="$1" case "$package_name" in Python*) - fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python32/patch-setup.py.diff" > setup.patch + http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python32/patch-setup.py.diff" > setup.patch patch -p0 < setup.patch ;; esac