#!/bin/sh
+set -e
+
+die() {
+ echo >&2 "$0: $*"
+ exit 1
+}
+
if [ "$1" = "-k" ]; then
cache=yes
shift
stable|beta|unstable)
;;
*)
- echo "$0: Unknown branch: $branch. Supported branches: stable, beta, unstable." >&2
- exit 1
+ die "Unknown branch: $branch. Supported branches: stable, beta, unstable."
;;
esac
-sourceurl=http://dl.google.com/linux/$product/rpm/stable/$arch
+sourceurl=https://dl.google.com/linux/$product/rpm/stable/$arch
-set -e
+fetch_version() {
+ echo -n "Fetching latest version for $branch... "
-echo -n "Fetching latest version... "
-t=$(mktemp)
+ # poldek is buggy, see https://bugs.launchpad.net/poldek/+bug/1026762
+ #poldek -q --st=metadata --source "$sourceurl/" --update
+ #poldek -q --skip-installed --st=metadata --source "$sourceurl/" --cmd "ls google-chrome-$branch" > $t
-# poldek is buggy, see https://bugs.launchpad.net/poldek/+bug/1026762
-#poldek -q --st=metadata --source "$sourceurl/" --update
-#poldek -q --skip-installed --st=metadata --source "$sourceurl/" --cmd "ls google-chrome-$branch" > $t
+ set -- $(
+ python3 <<-EOF
+ import repomd
+ repo = repomd.load('$sourceurl')
+ package = repo.find('google-$product-$branch')
+ print("{0} {1}".format(package.version, package.release))
+ EOF
+ )
-repodata=primary-$branch-$(date +%Y%m%d).xml
-[ "$cache" = "yes" ] || rm -f "$repodata"
-test -e $repodata || {
- wget -c $sourceurl/repodata/primary.xml.gz -O $repodata.gz
- gzip -dc $repodata.gz > $repodata || test -s $repodata
+ ver=$1
+ rel=$2
}
-perl -ne 'm{<name>google-'$product-$branch'</name>} and m{<version epoch="0" ver="([\d.]+)" rel="(\d+)"/>} and print "$1 $2"' > $t < $repodata
-
-set -- $(sed -re "s,^.+-([^-]+)-([^-]+).$arch$,\1 \2," $t)
-
-ver=$1
-rev=$2
-# extract flash version
-rpm=$name-$branch-$ver-$rev.$arch.rpm
-manifest=manifest-$ver.json
-test -e $rpm || wget -c $sourceurl/$rpm
-test -e $manifest || {
- echo ./opt/google/chrome/PepperFlash/manifest.json > $t
- rpm2cpio $rpm | cpio -i -E $t --to-stdout > manifest-$ver.json
-}
-flashv=$(awk -F'"' '/version/{print $4}' manifest-$ver.json)
+if [ -n "$2" ]; then
+ ver=$2
+ rel=1
+else
+ fetch_version
+fi
-rm -f $t
-echo "$ver-$rev"
+if [ -z "$ver" -o -z "$rel" ]; then
+ die "Error: xml file is missing data for ${branch} type"
+fi
-oldrev=$(awk '/^%define[ ]+svnrev[ ]+/{print $NF}' $specfile)
+# check google-chrome ver only
oldver=$(awk '/^Version:[ \t]+/{print $NF; exit}' $specfile)
-oldflash=$(awk '/^%define[ ]+flashv[ ]+/{print $NF}' $specfile)
-if [ "$oldrev" = "$rev" -a "$oldver" = "$ver" -a "$oldflash" = "$flashv" ]; then
- echo "Already up to date"
+oldrel=$(awk '/^Release:[ \t]+/{print $NF; exit}' $specfile)
+if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" ]; then
+ echo "Already up to date (google-chrome/$ver-$rel)"
+ exit 0
+fi
+
+# check google-chrome
+if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" ]; then
+ echo "Already up to date (google-chrome/$ver-$rel)"
exit 0
fi
-echo "Updating $specfile for $ver r$rev"
+echo "Updating $specfile for google-chrome/$oldver-$oldrel -> $ver-$rel"
sed -i -e "
- s/^\(%define[ \t]\+svnrev[ \t]\+\)[0-9]\+\$/\1$rev/
s/^\(%define[ \t]\+state[ \t]\+\)[a-z]\+\$/\1$branch/
- s/^\(%define[ \t]\+flashv[ \t]\+\)[0-9.]\+\$/\1$flashv/
s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$ver/
+ s/^\(Release:[ \t]\+\)[.0-9]\+\$/\1$rel/
" $specfile
-../builder -ncs -nd -g $specfile || :
+../builder -ncs -nd -n5 -g $specfile || :
../builder -ncs -nd -5 $specfile