diff options
author | Russell O'Connor <roconnor@theorem.ca> | 2013-06-14 12:18:27 -0400 |
---|---|---|
committer | Russell O'Connor <roconnor@theorem.ca> | 2013-06-14 12:18:27 -0400 |
commit | 74d7c12e3a55a4b87b8840ac44303933007f9aee (patch) | |
tree | fa0388a45d55ab90505ffa2c95146f91b8dac48b /pkgs/applications | |
parent | c9f59592851036eef99ac2ed2096aa46935531ec (diff) | |
parent | cfb697b01372dc9c9d5405005f0e893067ab3c67 (diff) | |
download | nixlib-74d7c12e3a55a4b87b8840ac44303933007f9aee.tar nixlib-74d7c12e3a55a4b87b8840ac44303933007f9aee.tar.gz nixlib-74d7c12e3a55a4b87b8840ac44303933007f9aee.tar.bz2 nixlib-74d7c12e3a55a4b87b8840ac44303933007f9aee.tar.lz nixlib-74d7c12e3a55a4b87b8840ac44303933007f9aee.tar.xz nixlib-74d7c12e3a55a4b87b8840ac44303933007f9aee.tar.zst nixlib-74d7c12e3a55a4b87b8840ac44303933007f9aee.zip |
Merge branch 'master' of github.com:NixOS/nixpkgs
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/networking/browsers/chromium/sources.nix | 12 | ||||
-rwxr-xr-x | pkgs/applications/networking/browsers/chromium/update.sh | 64 |
2 files changed, 58 insertions, 18 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix index 54d9f44f7fba..780c3b62a30d 100644 --- a/pkgs/applications/networking/browsers/chromium/sources.nix +++ b/pkgs/applications/networking/browsers/chromium/sources.nix @@ -1,14 +1,14 @@ # This file is autogenerated from update.sh in the same directory. { dev = { - version = "29.0.1516.3"; - url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1516.3.tar.xz"; - sha256 = "0pdn9c6v0v55d7g4amivxrv132bpj9sfqywk5b8l6kqfjq28mw5k"; + version = "29.0.1521.3"; + url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1521.3.tar.xz"; + sha256 = "0szc3g24jlhcp8cgijdv0q9rfn3mhp2kjyc85ml4snskkpasfrv3"; }; beta = { - version = "28.0.1500.36"; - url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.36.tar.xz"; - sha256 = "1bz9w46ps8gj056hfwbcj4myyxyr7y759nagz9idraia8116m3pp"; + version = "28.0.1500.45"; + url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.45.tar.xz"; + sha256 = "01sxqv6i7m5h0jsypg801w2ivbrir37wdi4ijd5yvprkyzbd90zi"; }; stable = { version = "27.0.1453.110"; diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh index 0c21213a751c..0c4881bb3962 100755 --- a/pkgs/applications/networking/browsers/chromium/update.sh +++ b/pkgs/applications/networking/browsers/chromium/update.sh @@ -1,6 +1,7 @@ #!/bin/sh channels_url="http://omahaproxy.appspot.com/all?csv=1"; +history_url="http://omahaproxy.appspot.com/history"; bucket_url="http://commondatastorage.googleapis.com/chromium-browser-official/"; output_file="$(cd "$(dirname "$0")" && pwd)/sources.nix"; @@ -41,6 +42,17 @@ sha_insert() ver_sha_table="$ver_sha_table $version:$sha256"; } +get_newest_ver() +{ + versions="$(for v in $@; do echo "$v"; done)"; + if oldest="$(echo "$versions" | sort -V 2> /dev/null | tail -n1)"; + then + echo "$oldest"; + else + echo "$versions" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -n1; + fi; +} + if [ -e "$output_file" ]; then get_sha256() @@ -53,38 +65,55 @@ then echo -n "Checking if $oldver ($channel) is up to date..." >&2; - if [ "x$version" != "x$oldver" ]; + if [ "x$(get_newest_ver "$version" "$oldver")" != "x$oldver" ]; then echo " no, getting sha256 for new version $version:" >&2; - sha256="$(nix-prefetch-url "$url")"; + sha256="$(nix-prefetch-url "$url")" || return 1; else echo " yes, keeping old sha256." >&2; - sha256="$(nix_getattr "$output_file" "$channel.sha256")"; + sha256="$(nix_getattr "$output_file" "$channel.sha256")" \ + || return 1; fi; sha_insert "$version" "$sha256"; echo "$sha256"; + return 0; } else get_sha256() { - nix-prefetch-url "$url"; + nix-prefetch-url "$3"; } fi; +fetch_filtered_history() +{ + curl -s "$history_url" | sed -nr 's/^'"linux,$1"',([^,]+).*$/\1/p'; +} + +get_prev_sha256() +{ + channel="$1"; + current_version="$2"; + + for version in $(fetch_filtered_history "$channel"); + do + [ "x$version" = "x$current_version" ] && continue; + url="${bucket_url%/}/chromium-$version.tar.xz"; + sha256="$(get_sha256 "$channel" "$version" "$url")" || continue; + echo "$sha256:$version:$url"; + return 0; + done; +} + get_channel_exprs() { - for chline in $(echo "$1" | cut -d, -f-2); + for chline in $1; do channel="${chline%%,*}"; version="${chline##*,}"; - # XXX: Remove case after version 26 is stable: - if [ "${version%%.*}" -ge 26 ]; then - url="${bucket_url%/}/chromium-$version.tar.xz"; - else - url="${bucket_url%/}/chromium-$version.tar.bz2"; - fi; + url="${bucket_url%/}/chromium-$version.tar.xz"; echo -n "Checking if sha256 of version $version is cached..." >&2; if sha256="$(sha_lookup "$version")"; @@ -93,6 +122,17 @@ get_channel_exprs() else echo " no." >&2; sha256="$(get_sha256 "$channel" "$version" "$url")"; + if [ $? -ne 0 ]; + then + echo "Whoops, failed to fetch $version, trying previous" \ + "versions:" >&2; + + sha_ver_url="$(get_prev_sha256 "$channel" "$version")"; + sha256="${sha_ver_url%%:*}"; + ver_url="${sha_ver_url#*:}"; + version="${ver_url%%:*}"; + url="${ver_url#*:}"; + fi; fi; sha_insert "$version" "$sha256"; @@ -108,7 +148,7 @@ get_channel_exprs() cd "$(dirname "$0")"; omaha="$(curl -s "$channels_url")"; -versions="$(echo "$omaha" | sed -n -e 's/^linux,\(\([^,]\+,\)\{2\}\).*$/\1/p')"; +versions="$(echo "$omaha" | sed -nr -e 's/^linux,([^,]+,[^,]+).*$/\1/p')"; channel_exprs="$(get_channel_exprs "$versions")"; cat > "$output_file" <<-EOF |