]>
Commit | Line | Data |
---|---|---|
fa196e82 | 1 | #!/bin/sh |
22605b2f AM |
2 | |
3 | if [ "$1" = "-k" ]; then | |
4 | cache=yes | |
5 | shift | |
6 | else | |
7 | cache=no | |
8 | fi | |
9 | ||
9af080da ER |
10 | # product name |
11 | product=chrome | |
12 | # name | |
13 | name=google-$product | |
14 | # this package | |
15 | specfile=$name.spec | |
e2c2e846 | 16 | # arch to check package. irrelevant for actual arch |
22df2dd7 | 17 | arch=x86_64 |
e2c2e846 | 18 | # branch: stable, beta, unstable. default: stable |
c8c83709 | 19 | branch=${1:-stable} |
81efd66c AM |
20 | |
21 | case "${branch}" in | |
22 | stable|beta|unstable) | |
23 | ;; | |
24 | *) | |
25 | echo "$0: Unknown branch: $branch. Supported branches: stable, beta, unstable." >&2 | |
26 | exit 1 | |
27 | ;; | |
28 | esac | |
29 | ||
9af080da | 30 | sourceurl=http://dl.google.com/linux/$product/rpm/stable/$arch |
48f5d819 | 31 | |
fa196e82 ER |
32 | set -e |
33 | ||
34 | echo -n "Fetching latest version... " | |
35 | t=$(mktemp) | |
eb239aaf | 36 | |
b419095f ER |
37 | # poldek is buggy, see https://bugs.launchpad.net/poldek/+bug/1026762 |
38 | #poldek -q --st=metadata --source "$sourceurl/" --update | |
39 | #poldek -q --skip-installed --st=metadata --source "$sourceurl/" --cmd "ls google-chrome-$branch" > $t | |
40 | ||
fa227df9 | 41 | repodata=primary-$branch-$(date +%Y%m%d).xml |
22605b2f | 42 | [ "$cache" = "yes" ] || rm -f "$repodata" |
fa227df9 | 43 | test -e $repodata || { |
440012b5 | 44 | wget $sourceurl/repodata/primary.xml.gz -O $repodata.gz |
a551b7c2 | 45 | gzip -dc $repodata.gz > $repodata || test -s $repodata |
fa227df9 ER |
46 | } |
47 | perl -ne 'm{<name>google-'$product-$branch'</name>} and m{<version epoch="0" ver="([\d.]+)" rel="(\d+)"/>} and print "$1 $2"' > $t < $repodata | |
eb239aaf ER |
48 | |
49 | set -- $(sed -re "s,^.+-([^-]+)-([^-]+).$arch$,\1 \2," $t) | |
50 | ||
eb239aaf | 51 | ver=$1 |
b6c0552a | 52 | rel=$2 |
eb239aaf | 53 | |
3e9019a0 AM |
54 | if [ -z "$ver" -o -z "$rel" ]; then |
55 | echo "Error: xml file is missing data for ${branch} type" | |
56 | exit 1 | |
57 | fi | |
58 | ||
2ae4947c | 59 | # check google-chrome ver only |
2ae4947c | 60 | oldver=$(awk '/^Version:[ \t]+/{print $NF; exit}' $specfile) |
b6c0552a ER |
61 | oldrel=$(awk '/^Release:[ \t]+/{print $NF; exit}' $specfile) |
62 | if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" ]; then | |
63 | echo "Already up to date (google-chrome/$ver-$rel)" | |
2ae4947c AM |
64 | exit 0 |
65 | fi | |
66 | ||
9af080da | 67 | # extract flash version |
b6c0552a | 68 | rpm=$name-$branch-$ver-$rel.$arch.rpm |
fa227df9 ER |
69 | manifest=manifest-$ver.json |
70 | test -e $rpm || wget -c $sourceurl/$rpm | |
71 | test -e $manifest || { | |
185635d4 | 72 | echo ./opt/google/chrome*/PepperFlash/manifest.json > $t |
fa227df9 | 73 | rpm2cpio $rpm | cpio -i -E $t --to-stdout > manifest-$ver.json |
185635d4 AM |
74 | if [ ! -s manifest-$ver.json ]; then |
75 | echo "Failed to extract flash version." | |
76 | exit 1 | |
77 | fi | |
fa227df9 ER |
78 | } |
79 | flashv=$(awk -F'"' '/version/{print $4}' manifest-$ver.json) | |
9af080da | 80 | |
94030718 | 81 | rm -f "$t" "$manifest" |
fa196e82 | 82 | |
2ae4947c | 83 | # check google-chrome and flash ver |
9af080da | 84 | oldflash=$(awk '/^%define[ ]+flashv[ ]+/{print $NF}' $specfile) |
b6c0552a ER |
85 | if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" -a "$oldflash" = "$flashv" ]; then |
86 | echo "Already up to date (google-chrome/$ver-$rel flash/$flashv)" | |
57c5ccb3 | 87 | exit 0 |
fa196e82 | 88 | fi |
57c5ccb3 | 89 | |
b6c0552a | 90 | echo "Updating $specfile for google-chrome/$oldver-$oldrel -> $ver-$rel, flash/$oldflash -> $flashv" |
57c5ccb3 | 91 | sed -i -e " |
57c5ccb3 ER |
92 | s/^\(%define[ \t]\+state[ \t]\+\)[a-z]\+\$/\1$branch/ |
93 | s/^\(%define[ \t]\+flashv[ \t]\+\)[0-9.]\+\$/\1$flashv/ | |
94 | s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$ver/ | |
b6c0552a | 95 | s/^\(Release:[ \t]\+\)[.0-9]\+\$/\1$rel/ |
57c5ccb3 | 96 | " $specfile |
90f743de | 97 | ../builder -ncs -nd -n5 -g $specfile || : |
86c9cd57 | 98 | ../builder -ncs -nd -5 $specfile |