2 #Time-stamp: <2007-05-19 20:12:52 (djcb)>
4 # Copyright (c) 2007, Nokia Corporation
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions are
11 # * Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # * Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in the
15 # documentation and/or other materials provided with the distribution.
16 # * Neither the name of the Nokia Corporation nor the names of its
17 # contributors may be used to endorse or promote products derived from
18 # this software without specific prior written permission.
20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21 # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23 # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
24 # OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 # This is a hackish script to build tinymail/modest packages.
36 # It must be run *outside* scratchbox. You need to make sure that
37 # the paths below are valid both inside and outside scratchbox.
38 # You can use symlinks to do so.
39 # You must also create the packages/ directory inside the src/ directory.
40 # You will probably also need to correct the SCRATCHBOX variable.
47 # Change these to the actual paths to source code of these packages,
49 # Use a symlink to create the same path outside of scratchbox. For instance:
50 # ln -s /scratchbox/users/murrayc/home/murrayc/src /home/murrayc/src
52 # You probably don't have your modest and tinymail packages at the same level,
53 # as required by this script, so you may want to create some symlinks inside
55 # ln -s /scratchbox/users/murrayc/home/murrayc/svn/modest-private/modest-email /home/murrayc/src/modest-email
56 # ln -s /scratchbox/users/murrayc/home/murrayc/svn/ /home/murrayc/src/tinymail
58 # On Maemo, you will also need to make some changes to tinymail's debian files:
61 # cp control.maemo control
62 # cp rules.maemo rules
63 # (I think the script should instead just do this on every run. murrayc)
65 TINYMAIL_PATH="$HOME/src/tinymail"
66 MODEST_PATH="$HOME/src/modest-email/modest/trunk"
67 MAEMO_PROVIDERS_DATA_PATH="$HOME/src/modest-email/maemo-providers-data/"
70 PACKAGER="Dirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>"
72 # path to the scratchbox executable
73 # On most systems this will actually be
74 # SCRATCHBOX="/usr/bin/scratchbox"
75 SCRATCHBOX="/chroot/usr/bin/scratchbox"
77 # path where the package files end up
78 PACKAGE_PATH="$HOME/src/packages"
79 ###################################################
83 echo "*** Building Tinymail/Modest packages"
84 echo "*** Packager: $PACKAGER"
85 echo "*** Time : ${NOW}"
89 if test -x $SCRATCHBOX; then
90 echo "+ found scratchbox ($SCRATCHBOX)"
92 echo "- cannot find find scratchbox"
98 echo "*** checking paths"
99 for p in "$TINYMAIL_PATH" "$MODEST_PATH" "$MAEMO_PROVIDERS_DATA_PATH" "$PACKAGE_PATH"; do
103 echo "- cannot find '$p'"
107 if $SCRATCHBOX "test -d $p"; then
108 echo "+ found $p inside scratchbox environment"
110 echo "- cannot find $p inside scratchbox"
116 # check svn version; this needs to happen outside scratchbox, because
117 # the scratcbox svn is too old
119 TINYMAIL_REVISION="`svn info | grep '^Revision:' | sed 's/Revision: //'`"
120 echo "* tinymail revision: $TINYMAIL_REVISION"
122 cd $MAEMO_PROVIDERS_DATA_PATH
123 MAEMO_PROVIDERS_DATA_REVISION="`svn info | grep '^Revision:' | sed 's/Revision: //'`"
124 echo "* maemo-providers-data revision: $MAEMO_PROVIDERS_DATA_REVISION"
127 MODEST_REVISION="`svn info | grep '^Revision:' | sed 's/Revision: //'`"
128 echo "* modest revision: $MODEST_REVISION"
133 if test -n "`ls $PACKAGE_PATH/*tinymail*${TINYMAIL_REVISION}*.deb`"; then
134 echo "* tinymail seems already built, skipping (but still installing pkgs)"
135 $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${TINYMAIL_REVISION}*.deb"
138 test -e debian/rules || cp debian/rules.maemo debian/rules
139 test -e debian/control || cp debian/control.maemo debian/control
140 mv -f debian/changelog debian/changelog.bak
141 cat > debian/changelog <<EOF
142 tinymail (1.0-svn${TINYMAIL_REVISION}) unstable; urgency=low
144 * Package subversion revision svn${TINYMAIL_REVISION}
146 -- ${PACKAGER} ${NOW}
148 echo "*** building tinymail"
149 $SCRATCHBOX -d "$TINYMAIL_PATH" "dpkg-buildpackage -rfakeroot -uc -us -sa -D" || {
150 echo "error building tinymail"
153 mv -f debian/changelog.bak debian/changelog
155 $SCRATCHBOX "mv ${TINYMAIL_PATH}/../*${TINYMAIL_REVISION}* $PACKAGE_PATH"
156 $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${TINYMAIL_REVISION}*.deb"
162 # build maemo-providers-data
163 if test -n "`ls $PACKAGE_PATH/*providers*${MAEMO_PROVIDERS_DATA_REVISION}*.deb`"; then
164 echo "* maemo-providers-data seems already built, skipping (but still installing pkgs)"
165 $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MAEMO_PROVIDERS_DATA_REVISION}*.deb"
167 cd $MAEMO_PROVIDERS_DATA_PATH
168 mv -f debian/changelog debian/changelog.bak
169 cat > debian/changelog <<EOF
170 maemo-providers-data (1.0-svn${MAEMO_PROVIDERS_DATA_REVISION}) unstable; urgency=low
172 * Package subversion revision svn${MAEMO_PROVIDERS_DATA_REVISION}
174 -- ${PACKAGER} ${NOW}
176 echo "*** building maemo-providers-data"
177 $SCRATCHBOX -d "$MAEMO_PROVIDERS_DATA_PATH" "dpkg-buildpackage -rfakeroot -uc -us -sa -D" || {
178 echo "failed to build maemo-providers-data"
181 mv -f debian/changelog.bak debian/changelog
182 $SCRATCHBOX "mv ${MAEMO_PROVIDERS_DATA_PATH}/../*${MAEMO_PROVIDERS_DATA_REVISION}* $PACKAGE_PATH"
183 $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MAEMO_PROVIDERS_DATA_REVISION}*.deb"
190 if test -n "`ls $PACKAGE_PATH/*modest_*${MODEST_REVISION}*.deb`"; then
191 echo "* modest seems already built, skipping (but still installing pkgs)"
192 $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MODEST_REVISION}*.deb"
195 test -e debian/control || ( cd debian; cp control-maemo0 control; cd .. )
196 mv -f debian/changelog debian/changelog.bak
197 cat > debian/changelog <<EOF
198 modest (1.0-svn${MODEST_REVISION}) unstable; urgency=low
200 * Package subversion revision svn${MODEST_REVISION}
202 -- ${PACKAGER} ${NOW}
204 echo "*** building modest"
205 $SCRATCHBOX -d "$MODEST_PATH" "dpkg-buildpackage -rfakeroot -uc -us -sa -D" || {
206 echo "failed to build modest"
209 mv -f debian/changelog.bak debian/changelog
211 $SCRATCHBOX "mv ${MODEST_PATH}/../*${MODEST_REVISION}* $PACKAGE_PATH"
212 $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MODEST_REVISION}*.deb"
215 echo "*** built packages, now building Packages.gz"
216 $SCRATCHBOX -d "${PACKAGE_PATH}" "dpkg-scanpackages . /dev/null | gzip -9c > ${PACKAGE_PATH}/Packages.gz"
220 # echo... and ftp them...
223 echo "*** done! now, check $PACKAGE_PATH to find your packages"