* small tweaks
[modest] / scripts / build-packages
1 #!/bin/sh
2 #Time-stamp: <2007-05-04 08:07:31 (djcb)>
3
4 # Copyright (c) 2007, Nokia Corporation
5 # All rights reserved.
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions are
9 # met:
10 #
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.
19 #
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.
31 #
32
33 #
34 # hackish script to build tinymail/modest packages
35 # run *outside* scratchbox; you need to make sure that
36 # the paths below are valid both inside/outside scratchbox;
37 # you can use symlinks to do so
38 #
39
40 #
41 # config
42 #
43
44 # change these to the actual paths to these packages
45 TINYMAIL_PATH="$HOME/src/tinymail"
46 MODEST_PATH="$HOME/src/modest-email/modest/trunk"
47 MODEST_PROVIDERS_DATA_PATH="$HOME/src/modest-email/modest-providers-data/"
48
49 # the packager
50 PACKAGER="Dirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>"
51
52 # path to the scratchbox executable
53 SCRATCHBOX="/chroot/usr/bin/scratchbox"
54
55 # path where the package files end up
56 PACKAGE_PATH="$HOME/src/packages"
57 ###################################################
58
59 NOW=`date -R`
60
61 echo "*** Building Tinymail/Modest packages"
62 echo "*** Packager: $PACKAGER"
63 echo "*** Time    : ${NOW}"
64 echo
65
66 # where is scratchbox
67 if test -x $SCRATCHBOX; then
68     echo "+ found scratchbox ($SCRATCHBOX)"
69 else
70     echo "- cannot find find scratchbox"
71     exit 1
72 fi
73
74 # checking paths
75 echo 
76 echo "*** checking paths"
77 for p in "$TINYMAIL_PATH" "$MODEST_PATH" "$MODEST_PROVIDERS_DATA_PATH" "$PACKAGE_PATH"; do
78     if test -d $p; then
79         echo "+ found '$p'"
80     else
81         echo "- cannot find '$p'"
82         exit 1
83     fi
84     
85     if $SCRATCHBOX "test -d $p"; then
86         echo "+ found $p inside scratchbox environment"
87     else
88         echo "- cannot find $p inside scratchbox"
89         exit 1
90     fi
91 done
92 echo
93
94 # check svn version; this needs to happen outside scratchbox, because
95 # the scratcbox svn is too old
96 cd $TINYMAIL_PATH
97 TINYMAIL_REVISION="`svn info | grep '^Revision:' | sed 's/Revision: //'`"
98 echo "* tinymail revision: $TINYMAIL_REVISION"
99
100 cd $MODEST_PROVIDERS_DATA_PATH
101 MODEST_PROVIDERS_DATA_REVISION="`svn info | grep '^Revision:' | sed 's/Revision: //'`"
102 echo "* modest-providers-data revision: $MODEST_PROVIDERS_DATA_REVISION"
103
104 cd $MODEST_PATH
105 MODEST_REVISION="`svn info | grep '^Revision:' | sed 's/Revision: //'`"
106 echo "* modest revision: $MODEST_REVISION"
107
108 echo 
109
110 # build tinymail
111 if test -n "`ls $PACKAGE_PATH/*tinymail*${TINYMAIL_REVISION}*.deb`"; then
112     echo "* tinymail seems already built, skipping (but still installing pkgs)"
113     $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${TINYMAIL_REVISION}*.deb"
114 else
115     cd $TINYMAIL_PATH
116     test -e debian/rules   || ln -s debian/rules.maemo debian/rules
117     test -e debian/control || ln -s debian/control.maemo debian/control
118     mv -f debian/changelog debian/changelog.bak
119     cat > debian/changelog <<EOF
120 tinymail (1.0-svn${TINYMAIL_REVISION}) unstable; urgency=low
121
122   * Package subversion revision svn${TINYMAIL_REVISION}
123
124  -- ${PACKAGER}  ${NOW}
125 EOF
126     echo "*** building tinymail"
127     $SCRATCHBOX -d "$TINYMAIL_PATH" "dpkg-buildpackage -rfakeroot -uc -us -sa -D" || {
128         echo "error building tinymail"
129         exit 1
130     }
131     mv -f debian/changelog.bak debian/changelog
132     cd ..
133     $SCRATCHBOX "mv ${TINYMAIL_PATH}/../*${TINYMAIL_REVISION}* $PACKAGE_PATH"
134     $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${TINYMAIL_REVISION}*.deb"
135 fi
136
137
138
139
140 # build modest-providers-data
141 if test -n "`ls $PACKAGE_PATH/*providers*${MODEST_PROVIDERS_DATA_REVISION}*.deb`"; then
142     echo "* modest-providers-data seems already built, skipping (but still installing pkgs)"
143     $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MODEST_PROVIDERS_DATA_REVISION}*.deb"
144 else
145     cd $MODEST_PROVIDERS_DATA_PATH
146     mv -f debian/changelog debian/changelog.bak
147     cat > debian/changelog <<EOF
148 modest-providers-data (1.0-svn${MODEST_PROVIDERS_DATA_REVISION}) unstable; urgency=low
149
150   * Package subversion revision svn${MODEST_PROVIDERS_DATA_REVISION}
151
152  -- ${PACKAGER}  ${NOW}
153 EOF
154     echo "*** building modest-providers-data"
155     $SCRATCHBOX -d "$MODEST_PROVIDERS_DATA_PATH" "dpkg-buildpackage -rfakeroot -uc -us -sa -D" || {
156         echo "failed to build modest-providers-data"
157         exit 1
158     }
159     mv -f debian/changelog.bak debian/changelog
160     $SCRATCHBOX "mv ${MODEST_PROVIDERS_DATA_PATH}/../*${MODEST_PROVIDERS_DATA_REVISION}* $PACKAGE_PATH"
161     $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MODEST_PROVIDERS_DATA_REVISION}*.deb"
162 fi
163  
164
165
166    
167 # build modest
168 if test -n "`ls $PACKAGE_PATH/*modest_*${MODEST_REVISION}*.deb`"; then
169     echo "* modest seems already built, skipping (but still installing pkgs)"
170     $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MODEST_REVISION}*.deb"
171 else
172     cd $MODEST_PATH
173     test -e debian/control || ln -s debian/control.maemo0 debian/control
174     mv -f debian/changelog debian/changelog.bak
175     cat > debian/changelog <<EOF
176 modest (1.0-svn${MODEST_REVISION}) unstable; urgency=low
177
178   * Package subversion revision svn${MODEST_REVISION}
179
180  -- ${PACKAGER}  ${NOW}
181 EOF
182     echo "*** building modest"
183     $SCRATCHBOX -d "$MODEST_PATH" "dpkg-buildpackage -rfakeroot -uc -us -sa -D" || {
184         echo "failed to build modest"
185         exit 1
186     }
187     mv -f debian/changelog.bak debian/changelog
188     cd ..
189     $SCRATCHBOX "mv ${MODEST_PATH}/../*${MODEST_REVISION}* $PACKAGE_PATH"
190     $SCRATCHBOX "fakeroot dpkg -i ${PACKAGE_PATH}/*${MODEST_REVISION}*.deb"
191 fi    
192
193 echo "*** built packages, now building Packages.gz"
194 $SCRATCHBOX -d "${PACKAGE_PATH}" "dpkg-scanpackages . /dev/null | gzip -9c > ${PACKAGE_PATH}/Packages.gz"
195
196
197 #
198 # echo... and ftp them...
199 #
200
201 echo "*** done! now, check $PACKAGE_PATH to find your packages"
202 cd $PACKAGE_PATH