]> git.pld-linux.org Git - packages/chromium-browser.git/blobdiff - update-source.sh
up to 36.0.1985.143
[packages/chromium-browser.git] / update-source.sh
old mode 100644 (file)
new mode 100755 (executable)
index 060884e..2924824
@@ -15,6 +15,63 @@ specfile=$pkg.spec
 # work in package dir
 dir=$(dirname "$0")
 cd "$dir"
+dir=$(pwd)
+
+# extract version components from url
+# exports: $version; $release; $svndate; $svnver; $branch; $basever
+extract_version() {
+       local url=$1 part
+
+       part=${url#${pkg}[_-]}
+       if [[ $version = *~* ]]; then
+               # ubuntu urls
+               version=${part%~*}; part=${part#*${version}~}
+       else
+               version=${part%.tar.*}; part=${part#*${version}}
+               part=${part#.tar.xz}
+               part=${part#.tar.gz}
+       fi
+
+       # release always 1 :)
+       release=1
+       if [ "$part" != "${part%%svn*}" ]; then
+               svndate=${part#svn*}; svndate=${svndate%%r*}
+               part=${part#svn${svndate}}
+       else
+               svndate='%{nil}'
+       fi
+       svnver=${part#r}; svnver=${svnver%%.*}
+
+       branch=${version%.*}
+       basever=${version#${branch}.}
+
+       : EXTRACTED: version=$version release=$release svnver=$svnver branch=$branch basever=$basever
+}
+
+url2version() {
+       local url=$1
+
+       echo "${url}" | sed -e "
+               s,$version,%{version},g
+               s,$release,%{release},g
+               s,$svndate,%{svndate},g
+               s,$svnver,%{svnver},g
+       "
+}
+
+# setup url from template
+version2url() {
+       local url=$1
+
+       echo "${url}" | sed -e "
+               s,%{version},$version,g
+               s,%{release},$release,g
+               s,%{basever},$basever,g
+               s,%{branch},$branch,g
+               s,%{svndate},$svndate,g
+               s,%{svnver},$svnver,g
+       "
+}
 
 # abort on errors
 set -e
@@ -26,7 +83,6 @@ if [ "$quiet" = "1" ]; then
        exec 1>/dev/null
 fi
 
-test -e $specfile || cvs up $specfile
 # take baseurl from .spec Source0
 baseurl=$(awk '/^Source0:/{print $2}' $specfile | xargs dirname)
 
@@ -38,7 +94,7 @@ else
                exit 1
        fi
        echo "Fetching latest tarball name..."
-       urls=$(lynx -dump $baseurl/ | awk '/[0-9]+\. .*orig\.tar\.gz/{print $NF}')
+       urls=$(lynx -width 200 -dump $baseurl/ | awk '/[0-9]+\. .*\.tar/{print $NF}')
        # unescape "~" encoded by lighttpd
        url=$(echo "$urls" | sed -e 's,%7e,~,gi' | sort -Vr | head -n1)
 fi
@@ -51,28 +107,30 @@ fi
 tarball=${url##*/}
 echo "tarball: $tarball..."
 
+
 if [ ! -f $tarball ]; then
        if [ ! -x /usr/bin/wget ]; then
                echo >&2 "${1##*/}: need wget to fetch tarball"
                exit 1
        fi
        wget $(test "$quiet" = "1" && echo -q) -c $url
-       upload=$tarball
 fi
 
-
-# cvs up specfile, rename in case of conflicts
-cvs up $specfile || { set -x; mv -b $specfile $specfile.old && cvs up $specfile; }
+extract_version $tarball
+url_tpl=$(url2version $tarball)
 
 svndate=$(awk '/^%define[      ]+svndate[      ]+/{print $NF}' $specfile)
 svnver=$(awk '/^%define[       ]+svnver[       ]+/{print $NF}' $specfile)
-version=$(awk '/^Version:[     ]+/{print $NF}' $specfile)
+branch=$(awk '/^%define[       ]+branch[       ]+/{print $NF}' $specfile)
+basever=$(awk '/^%define[      ]+basever[      ]+/{print $NF}' $specfile)
+version=$(awk '/^Version:[     ]+/{print $NF}' $specfile | tail -n1)
 rel=$(awk '/^%define[  ]+rel[  ]+/{print $NF}' $specfile)
 if [ "$svndate" = "%{nil}" ]; then
        svndate=
 fi
 
-newtar=${pkg}_${version}~${svndate:+svn${svndate}}r${svnver}.orig.tar.gz
+newtar=$(version2url $url_tpl)
+
 if [ "$newtar" = "$tarball" ]; then
        echo "$specfile already up to $newtar"
 
@@ -82,25 +140,18 @@ if [ "$newtar" = "$tarball" ]; then
        fi
 else
        echo "Updating $specfile to $tarball"
-       part=${tarball#${pkg}_}
-       version=${part%~*}; part=${part#*${version}~}
-       release=1
-       if [ "$part" != "${part%%svn*}" ]; then
-               svndate=${part#svn*}; svndate=${svndate%%r*}
-               part=${part#svn${svndate}}
-       else
-               svndate='%{nil}'
-       fi
-       svnver=${part#r}; svnver=${svnver%%.*}
+       extract_version $tarball
 
        sed -i -e "
                s/^\(%define[ \t]\+svnver[ \t]\+\)[0-9]\+\$/\1$svnver/
                s/^\(%define[ \t]\+svndate[ \t]\+\).\+\$/\1$svndate/
+               s/^\(%define[ \t]\+branch[ \t]\+\).\+\$/\1$branch/
+               s/^\(%define[ \t]\+basever[ \t]\+\).\+\$/\1$basever/
                s/^\(%define[ \t]\+rel[ \t]\+\)[0-9]\+\$/\1$release/
                s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$version/
        " $specfile
 
-       ../builder -ncs -5 $specfile
+       ../builder --no-init -ncs -5 $specfile
 fi
 
 # if we don't build. we're done
@@ -110,7 +161,7 @@ fi
 
 dist=$(rpm -E %{pld_release})
 arch=$(rpm -E %{_host_cpu})
-outdir=$(readlink -f $dir)/build-$dist-$arch
+outdir=$(readlink -f $dir)/BUILD/$dist-$arch
 logfile=$outdir/$pkg.log
 rpmdir=$outdir/RPMS
 rpmdest=~/public_html/chromium-browser/$dist/$arch
@@ -118,33 +169,25 @@ install -d $rpmdir
 
 # if already published?
 if [ "$publish_packages" = 1 ]; then
-       pkg=$rpmdest/$pkg-$version-0.$svnver.$rel.$arch.rpm
+       pkg=$rpmdest/$pkg-$version-${svnver:+0.$svnver.}$release.$arch.rpm
        if [ -f "$pkg" ]; then
                exit 0
        fi
 fi
 
-# setup custom logfile via $HOME_ETC hack
-# TODO: just add --logfile support for builder
-cat > $outdir/.builderrc <<-EOF
-       if [ -n "$HOME_ETC" ]; then
-               . "$HOME_ETC/.builderrc"
-       elif [ -r ~/.builderrc ]; then
-               . ~/.builderrc
-       fi
-       LOGFILE='$logfile'
-EOF
-
 command=-bp
 test "$build_package" = 1 && command=-bb
-> $logfile
-HOME_ETC=$outdir \
-       ../builder $command --clean \
+rpmbuild $command --clean \
        --define "_unpackaged_files_terminate_build 1" \
        --define '_enable_debug_packages 0' \
+       --define "_topdir $dir" \
+       --define "_specdir $dir" \
+       --define "_sourcedir $dir" \
        --define "_builddir $outdir" \
        --define "_rpmdir $rpmdir" \
-       $specfile || {
+       --without debuginfo \
+       --with verbose \
+       $specfile > $logfile 2>&1 || {
        echo >&2 "Package build failed"
        tail -n 1000 $logfile >&2
        exit 1
This page took 0.110567 seconds and 4 git commands to generate.