Don't generate packages for etk and epsilon anymore
[maemo-efl] / trunk / scripts / gen-deb-src.sh
1 #!/bin/bash
2
3 E_BASE_REPO="http://svn.enlightenment.org/svn/e"
4 E_TRUNK_REPO="$E_BASE_REPO/trunk"
5 E_PYTHON_SUFIX="BINDINGS/python"
6 E_PYTHON_REPO="$E_TRUNK_REPO/$E_PYTHON_SUFIX"
7 E_PROTO_REPO="$E_TRUNK_REPO/PROTO"
8
9 [ -z $E_SVN_REV ] && E_SVN_REV="44144"
10
11 TMP_DIR="maemo-efl-deb-src-$E_SVN_REV"
12 VERSIONS_DIR="$TMP_DIR/versions"
13
14 # C Modules
15 ALL_MODULES=("eina"
16              "eet"
17              "evas"
18              "ecore"
19              "embryo"
20              "edje"
21              "e_dbus"
22              "emotion"
23              "epdf"
24              "ethumb"
25              "libeweather"
26              "elementary"
27              "efl-core")
28
29 # Python Bindings
30 ALL_MODULES+=("python-evas"
31               "python-ecore"
32               "python-edje"
33               "python-e_dbus"
34               "python-ethumb"
35               "python-efl_utils"
36               "python-elementary"
37               "python-efl-core")
38
39 MAEMO_REV="maemo1"
40 MAEMO_REPO="extras-devel"
41
42 MAEMO_EFL_BASE_REPO="https://garage.maemo.org/svn/maemo-efl/trunk/"
43
44 exit_error(){
45     echo " ERROR" && exit 1
46 }
47
48 init(){
49     if [ -d $TMP_DIR ]; then
50                 echo -n "Cleaning up ..."
51                 rm -rf $TMP_DIR || exit_error
52         echo " OK"
53     fi
54
55         echo -n "Creating build dir ..."
56     mkdir -p $TMP_DIR || exit_error
57     echo " OK"
58 }
59
60 checkout_repositories(){
61     echo "Checking out repositories ..."
62     for module in ${ALL_MODULES[@]};do
63         echo -n "       $module"
64
65         case $module in
66             elementary)
67                 REPO="$E_BASE_REPO/TMP/st"
68                 ;;
69             epdf|libeweather)
70                 REPO="$E_PROTO_REPO"
71                 ;;
72             *efl-core)
73                 cp -r $module $TMP_DIR > /dev/null 2>&1 && echo " ... OK" || exit_error
74                 continue
75                 ;;
76             python-*)
77                 REPO="$E_PYTHON_REPO"
78                 ;;
79             *)
80                 REPO=$E_BASE_REPO
81                 ;;
82         esac
83
84                 REV="-r$E_SVN_REV "
85
86         echo -n " ."
87         svn co $REV $REPO/$module $TMP_DIR/$module > /dev/null 2>&1 || exit_error
88         echo -n "."
89         rm -rf $TMP_DIR/$module/debian
90         echo -n "."
91         cp -r $module/debian $TMP_DIR/$module/debian > /dev/null 2>&1 || exit_error
92         echo " OK"
93     done
94
95         echo -n "Cleaning up repositories ..."
96         rm -rf `find $TMP_DIR -name .svn -type d`
97         rm -rf `find $TMP_DIR -name .git -type d`
98     echo " OK"
99 }
100
101 update_changelogs(){
102         echo "Updating changelogs ..."
103     for module in ${ALL_MODULES[@]};do
104         echo -n "       $module .."
105
106         case $module in
107             *efl-core)
108                 VERSION=`grep AC_INIT $TMP_DIR/evas/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
109                 ;;
110             python-*)
111                 VERSION=`grep version $TMP_DIR/$module/setup.py | cut -d\' -f2 || exit_error`
112                 ;;
113             *)
114                 VERSION=`grep AC_INIT $TMP_DIR/$module/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
115                 ;;
116         esac
117
118         echo -n "."
119         dch --force-distribution -b -c $TMP_DIR/$module/debian/changelog -v $VERSION+svn$E_SVN_REV-$MAEMO_REV -D $MAEMO_REPO "SVN snapshot release $E_SVN_REV" > /dev/null 2>&1 || exit_error
120         echo " `head -n1 $TMP_DIR/$module/debian/changelog`"
121     done
122 }
123
124 gen_versions(){
125     if [ ! -d $VERSIONS_DIR ]; then
126         echo -n "Creating versions dir $VERSIONS_DIR ..."
127         mkdir -p $VERSIONS_DIR || exit_error
128         echo " OK"
129     fi
130
131     echo "Generating version files ..."
132     for module in ${ALL_MODULES[@]};do
133         VERSION=`dpkg-parsechangelog -l$TMP_DIR/$module/debian/changelog | grep Version: | cut -d" " -f2 || exit_error`
134         echo "  $module ... $VERSION"
135         echo "$VERSION" > $VERSIONS_DIR/"$module"_version
136     done
137 }
138
139 gen_control(){
140     echo "Generating control files ..."
141     for module in ${ALL_MODULES[@]}; do
142         echo -n "       $module ..."
143         if [ -e $TMP_DIR/$module/debian/control.in ]; then
144             TO_REPLACE=`grep -o -E '@([A-Z]|[0-9])+((-|_)*([A-Z]|[0-9]))*_VERSION@' $TMP_DIR/$module/debian/control.in | cut -d @ -f 2 | sort -u`
145             cp $TMP_DIR/$module/debian/control.in $TMP_DIR/$module/debian/control.temp
146
147             for replacement in $TO_REPLACE; do
148                 replacement_lowercase=`echo $replacement | tr "[:upper:]" "[:lower:]"`
149                 version_file=$VERSIONS_DIR/$replacement_lowercase
150                 if [ ! -e $version_file ]; then
151                     echo -n " Could not find a replacement for $replacement" && exit_error
152                 fi
153                 version_number=`cat $version_file`
154                 echo -n " $replacement: $version_number"
155                 sed -i s/@$replacement@/$version_number/g $TMP_DIR/$module/debian/control.temp
156             done
157
158             mv $TMP_DIR/$module/debian/control.temp $TMP_DIR/$module/debian/control
159         fi
160
161         echo " OK"
162     done
163 }
164
165 gen_src_packages(){
166     echo "Generating source packages ..."
167     for module in ${ALL_MODULES[@]}; do
168         echo -n "       $module ."
169         cd $TMP_DIR/$module || exit_error
170         echo -n "."
171         dpkg-buildpackage -rfakeroot -us -uc -sa -d -S -I.git -I.gitignore -I.svn -I.svnignore -ICVS -I.cvsignore > /dev/null 2>&1|| exit_error
172         echo -n "."
173         cd - > /dev/null 2>&1 || exit_error
174         echo " OK"
175     done
176 }
177
178 init
179 checkout_repositories
180 update_changelogs
181 gen_versions
182 gen_control
183 gen_src_packages
184 echo "All done. Packages in $TMP_DIR"
185 exit 0