about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2013-06-14 14:41:16 +0200
committeraszlig <aszlig@redmoonstudios.org>2013-06-14 17:50:36 +0200
commit777351bce483dbe76694e2d570ac8995e8770ed9 (patch)
treeda2654f71d6ce8613c7c5f3a24b28ad42ba6084a /pkgs
parent872fb3e2ff081f5947f41efa24acf67e5372c5a7 (diff)
downloadnixlib-777351bce483dbe76694e2d570ac8995e8770ed9.tar
nixlib-777351bce483dbe76694e2d570ac8995e8770ed9.tar.gz
nixlib-777351bce483dbe76694e2d570ac8995e8770ed9.tar.bz2
nixlib-777351bce483dbe76694e2d570ac8995e8770ed9.tar.lz
nixlib-777351bce483dbe76694e2d570ac8995e8770ed9.tar.xz
nixlib-777351bce483dbe76694e2d570ac8995e8770ed9.tar.zst
nixlib-777351bce483dbe76694e2d570ac8995e8770ed9.zip
chromium/updater: Avoid downgrading versions.
Previously we have just checked for equality. When going back in history, that
way if the history is somewhat out-of-sync, we could end up "updating" to an
older version, which we definitely don't want.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs')
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.sh13
1 files changed, 12 insertions, 1 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh
index 5c89c8e492ac..0c4881bb3962 100755
--- a/pkgs/applications/networking/browsers/chromium/update.sh
+++ b/pkgs/applications/networking/browsers/chromium/update.sh
@@ -42,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()
@@ -54,7 +65,7 @@ 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")" || return 1;