X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=update-source.sh;h=207124f88bacb32ad9a410e7d256942a206f0e5d;hb=de4f4afda905d61e769db6a5b92e403694eda3d6;hp=3788c0231fc52d5e21e4d247e02936dbab6b13a3;hpb=22df2dd7d6198aa230a489e81961cd35dcb25f42;p=packages%2Fgoogle-chrome.git diff --git a/update-source.sh b/update-source.sh index 3788c02..207124f 100755 --- a/update-source.sh +++ b/update-source.sh @@ -1,4 +1,19 @@ #!/bin/sh + +set -e + +die() { + echo >&2 "$0: $*" + exit 1 +} + +if [ "$1" = "-k" ]; then + cache=yes + shift +else + cache=no +fi + # product name product=chrome # name @@ -14,60 +29,62 @@ case "${branch}" in 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 -test -e $repodata || { - wget -c $sourceurl/repodata/primary.xml.gz - gzip -dc primary.xml.gz > $repodata || test -s $repodata + ver=$1 + rel=$2 } -perl -ne 'm{google-'$product-$branch'} and m{} and print "$1 $2"' > $t < $repodata - -set -- $(sed -re "s,^.+-([^-]+)-([^-]+).$arch$,\1 \2," $t) -ver=$1 -rev=$2 +if [ -n "$2" ]; then + ver=$2 + rel=1 +else + fetch_version +fi -# 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 [ -z "$ver" -o -z "$rel" ]; then + die "Error: xml file is missing data for ${branch} type" +fi -rm -f $t -echo "$ver-$rev" +# check google-chrome ver only +oldver=$(awk '/^Version:[ \t]+/{print $NF; exit}' $specfile) +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 -oldrev=$(awk '/^%define[ ]+svnrev[ ]+/{print $NF}' $specfile) -oldflash=$(awk '/^%define[ ]+flashv[ ]+/{print $NF}' $specfile) -if [ "$oldrev" = "$rev" -a "$oldflash" = "$flashv" ]; then - echo "Already up to date" +# 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 -g $specfile || : -../builder -ncs -5 $specfile +../builder -ncs -nd -n5 -g $specfile || : +../builder -ncs -nd -5 $specfile