]> git.pld-linux.org Git - packages/chromium-browser.git/blame - update-source.sh
- initial update to 16.0.912.21~r108057
[packages/chromium-browser.git] / update-source.sh
CommitLineData
4bc08302 1#!/bin/sh
04217bf5
ER
2# Usage:
3# ./update-source.sh
4# env variables controlling behaviour
04217bf5
ER
5# build_package=[0|1] - build package when new version is fetched
6# publish_packages=[0|1] - publish built packages in ~/public_html/$dist/$arch
7# quiet=[0|1] - discard stdout of process
8
0cad051b
ER
9pkg=chromium-browser
10specfile=$pkg.spec
11
68aa31d5
ER
12# work in package dir
13dir=$(dirname "$0")
14cd "$dir"
15
16# abort on errors
17set -e
18
04217bf5
ER
19# setup $quiet, you may override with env it
20quiet=${quiet:-$(tty -s && echo 0 || echo 1)}
21if [ "$quiet" = "1" ]; then
22 # we do not want output when running on cron
23 exec 1>/dev/null
24fi
25
0cad051b 26# take baseurl from .spec Source0
d954b7a8 27baseurl=$(awk '/^Source0:/{print $2}' $specfile | xargs dirname)
4bc08302
ER
28
29if [ "$1" ]; then
30 url=$1
31else
32 if [ ! -x /usr/bin/lynx ]; then
33 echo >&2 "${1##*/}: need lynx to parse sources"
34 exit 1
35 fi
36 echo "Fetching latest tarball name..."
53bd333c 37 urls=$(lynx -dump $baseurl/ | awk '/[0-9]+\. .*orig\.tar\.gz/{print $NF}')
0cad051b 38 # unescape "~" encoded by lighttpd
53bd333c 39 url=$(echo "$urls" | sed -e 's,%7e,~,gi' | sort -Vr | head -n1)
0cad051b
ER
40fi
41
42if [ -z "$url" ]; then
43 echo >&2 "URL empty..."
44 exit 1
4bc08302
ER
45fi
46
47tarball=${url##*/}
48echo "tarball: $tarball..."
49
50if [ ! -f $tarball ]; then
51 if [ ! -x /usr/bin/wget ]; then
52 echo >&2 "${1##*/}: need wget to fetch tarball"
53 exit 1
54 fi
e2d00dcd 55 wget $(test "$quiet" = "1" && echo -q) -c $url
4bc08302
ER
56 upload=$tarball
57fi
58
4bc08302 59
a69d2383
ER
60# cvs up specfile, rename in case of conflicts
61cvs up $specfile || { set -x; mv -b $specfile $specfile.old && cvs up $specfile; }
62
4bc08302
ER
63svndate=$(awk '/^%define[ ]+svndate[ ]+/{print $NF}' $specfile)
64svnver=$(awk '/^%define[ ]+svnver[ ]+/{print $NF}' $specfile)
65version=$(awk '/^Version:[ ]+/{print $NF}' $specfile)
65b68643 66rel=$(awk '/^%define[ ]+rel[ ]+/{print $NF}' $specfile)
0cad051b
ER
67if [ "$svndate" = "%{nil}" ]; then
68 svndate=
69fi
4bc08302 70
0cad051b 71newtar=${pkg}_${version}~${svndate:+svn${svndate}}r${svnver}.orig.tar.gz
78ba8619
ER
72if [ "$newtar" = "$tarball" ]; then
73 echo "$specfile already up to $newtar"
78ba8619 74
213129c3
ER
75 # if we don't publish result, there's nothing more to do
76 if [ "$publish_packages" != 1 ]; then
77 exit 0
78 fi
79else
0cad051b
ER
80 echo "Updating $specfile to $tarball"
81 part=${tarball#${pkg}_}
d954b7a8
ER
82 version=${part%~*} part=${part#*${version}~}
83 release=1
84 if [ "$part" != "${part%%svn*}" ]; then
0cad051b
ER
85 svndate=${part#svn*} svndate=${svndate%%r*}
86 part=${part#svn${svndate}}
87 else
88 svndate='%{nil}'
89 fi
90 svnver=${part#r} svnver=${svnver%%.*}
213129c3
ER
91
92 sed -i -e "
93 s/^\(%define[ \t]\+svnver[ \t]\+\)[0-9]\+\$/\1$svnver/
94 s/^\(%define[ \t]\+svndate[ \t]\+\)[0-9]\+\$/\1$svndate/
d954b7a8 95 s/^\(%define[ \t]\+rel[ \t]\+\)[0-9]\+\$/\1$release/
213129c3
ER
96 s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$version/
97 " $specfile
98
99 ../builder -ncs -5 $specfile
100fi
78ba8619 101
213129c3 102# if we don't build. we're done
3cdc039f
ER
103if [ "$build_package" = 0 ]; then
104 exit 0
105fi
106
107dist=$(rpm -E %{pld_release})
108arch=$(rpm -E %{_host_cpu})
109outdir=$(readlink -f $dir)/build-$dist-$arch
110logfile=$outdir/$pkg.log
111rpmdir=$outdir/RPMS
213129c3 112rpmdest=~/public_html/chromium-browser/$dist/$arch
3cdc039f
ER
113install -d $rpmdir
114
213129c3
ER
115# if already published?
116if [ "$publish_packages" = 1 ]; then
117 pkg=$rpmdest/$pkg-$version-0.$svnver.$rel.$arch.rpm
118 if [ -f "$pkg" ]; then
119 exit 0
120 fi
121fi
122
3cdc039f
ER
123# setup custom logfile via $HOME_ETC hack
124# TODO: just add --logfile support for builder
125cat > $outdir/.builderrc <<-EOF
126 if [ -n "$HOME_ETC" ]; then
127 . "$HOME_ETC/.builderrc"
128 elif [ -r ~/.builderrc ]; then
129 . ~/.builderrc
130 fi
131 LOGFILE='$logfile'
132EOF
133
134> $logfile
135HOME_ETC=$outdir \
136 ../builder -bb --clean \
137 --define "_unpackaged_files_terminate_build 1" \
138 --define '_enable_debug_packages 0' \
139 --define "_builddir $outdir" \
140 --define "_rpmdir $rpmdir" \
141 $specfile || {
15670155 142 echo >&2 "Package build failed"
3cdc039f
ER
143 tail -n 1000 $logfile >&2
144 exit 1
145}
146
3cdc039f
ER
147if [ "$publish_packages" ] && [ "$(ls $rpmdir/*.rpm 2>/dev/null)" ]; then
148 install -d $rpmdest
149 umask 022
150 chmod 644 $rpmdir/*.rpm
151 mv -v $rpmdir/*.rpm $rpmdest/
152 poldek --cachedir=$HOME/tmp --mkidx -s $rpmdest/ --mt=pndir
153
154 if [ -x /usr/bin/createrepo ]; then
155 install -d $rpmdest/repodata/cache
156 createrepo -q -c $rpmdest/repodata/cache $rpmdest
68aa31d5 157 fi
4bc08302 158fi
This page took 0.056266 seconds and 4 git commands to generate.