]> git.pld-linux.org Git - packages/chromium-browser.git/blame - update-source.sh
- up to 15.0.874.92
[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
ER
26# take baseurl from .spec Source0
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..."
37 url=$(lynx -dump $baseurl/ | awk '/orig\.tar\.gz/{tarball=$NF} END{print tarball}')
0cad051b
ER
38 # unescape "~" encoded by lighttpd
39 url=$(echo "$url" | sed -e 's,%7e,~,gi')
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}_}
82 version=${part%~*} part=${part#*${version}~}
83 if [ "$part" != "${part%%svn*}" ]; then
84 svndate=${part#svn*} svndate=${svndate%%r*}
85 part=${part#svn${svndate}}
86 else
87 svndate='%{nil}'
88 fi
89 svnver=${part#r} svnver=${svnver%%.*}
213129c3
ER
90
91 sed -i -e "
92 s/^\(%define[ \t]\+svnver[ \t]\+\)[0-9]\+\$/\1$svnver/
93 s/^\(%define[ \t]\+svndate[ \t]\+\)[0-9]\+\$/\1$svndate/
94 s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$version/
95 " $specfile
96
97 ../builder -ncs -5 $specfile
98fi
78ba8619 99
213129c3 100# if we don't build. we're done
3cdc039f
ER
101if [ "$build_package" = 0 ]; then
102 exit 0
103fi
104
105dist=$(rpm -E %{pld_release})
106arch=$(rpm -E %{_host_cpu})
107outdir=$(readlink -f $dir)/build-$dist-$arch
108logfile=$outdir/$pkg.log
109rpmdir=$outdir/RPMS
213129c3 110rpmdest=~/public_html/chromium-browser/$dist/$arch
3cdc039f
ER
111install -d $rpmdir
112
213129c3
ER
113# if already published?
114if [ "$publish_packages" = 1 ]; then
115 pkg=$rpmdest/$pkg-$version-0.$svnver.$rel.$arch.rpm
116 if [ -f "$pkg" ]; then
117 exit 0
118 fi
119fi
120
3cdc039f
ER
121# setup custom logfile via $HOME_ETC hack
122# TODO: just add --logfile support for builder
123cat > $outdir/.builderrc <<-EOF
124 if [ -n "$HOME_ETC" ]; then
125 . "$HOME_ETC/.builderrc"
126 elif [ -r ~/.builderrc ]; then
127 . ~/.builderrc
128 fi
129 LOGFILE='$logfile'
130EOF
131
132> $logfile
133HOME_ETC=$outdir \
134 ../builder -bb --clean \
135 --define "_unpackaged_files_terminate_build 1" \
136 --define '_enable_debug_packages 0' \
137 --define "_builddir $outdir" \
138 --define "_rpmdir $rpmdir" \
139 $specfile || {
15670155 140 echo >&2 "Package build failed"
3cdc039f
ER
141 tail -n 1000 $logfile >&2
142 exit 1
143}
144
3cdc039f
ER
145if [ "$publish_packages" ] && [ "$(ls $rpmdir/*.rpm 2>/dev/null)" ]; then
146 install -d $rpmdest
147 umask 022
148 chmod 644 $rpmdir/*.rpm
149 mv -v $rpmdir/*.rpm $rpmdest/
150 poldek --cachedir=$HOME/tmp --mkidx -s $rpmdest/ --mt=pndir
151
152 if [ -x /usr/bin/createrepo ]; then
153 install -d $rpmdest/repodata/cache
154 createrepo -q -c $rpmdest/repodata/cache $rpmdest
68aa31d5 155 fi
4bc08302 156fi
This page took 0.077146 seconds and 4 git commands to generate.