Added maemo-cflags-cdbs-rules as dependency
[maemo-efl] / trunk / scripts / gen-deb-src.sh
1 #!/bin/bash
2
3 E_BASE_REPO="http://svn.enlightenment.org/svn/e/trunk"
4 E_PYTHON_REPO="$E_BASE_REPO/BINDINGS/python"
5 E_SVN_REV="40978"
6
7 TMP_DIR="maemo-efl-deb-src-$E_SVN_REV"
8 VERSIONS_DIR="$TMP_DIR/versions"
9
10 ALL_MODULES="eina eet evas ecore embryo edje epsilon etk e_dbus efl-core python-evas python-ecore python-edje python-epsilon python-etk python-e_dbus python-efl_utils python-efl-core"
11
12 MAEMO_REV="maemo1"
13 MAEMO_REPO="extras-devel"
14
15 MAEMO_EFL_BASE_REPO="https://garage.maemo.org/svn/maemo-efl/trunk/"
16
17 exit_error(){
18     echo " ERROR" && exit 1
19 }
20
21 init(){
22     if [ -d $TMP_DIR ]; then
23                 echo -n "Cleaning up ..."
24                 rm -rf $TMP_DIR || exit_error
25         echo " OK"
26     fi
27
28         echo -n "Creating build dir ..."
29     mkdir -p $TMP_DIR || exit_error
30     echo " OK"
31 }
32
33 checkout_repositories(){
34     echo "Checking out repositories ..."
35     for module in $ALL_MODULES;do
36         echo -n "       $module"
37
38                 REPO=$E_BASE_REPO
39                 REV="-r$E_SVN_REV "
40                 echo -n $module | grep python > /dev/null 2>&1 && REPO=$E_PYTHON_REPO
41                 echo -n $module | grep efl-core > /dev/null 2>&1 && REPO=$MAEMO_EFL_BASE_REPO && REV=""
42
43         echo -n " ."
44         svn co $REV $REPO/$module $TMP_DIR/$module > /dev/null 2>&1 || exit_error
45         echo -n "."
46         rm -rf $TMP_DIR/$module/debian
47         echo -n "."
48         svn co $MAEMO_EFL_BASE_REPO/$module/debian $TMP_DIR/$module/debian > /dev/null 2>&1 || exit_error
49         echo " OK"
50     done
51
52         echo -n "Cleaning up repositories ..."
53         rm -rf `find $TMP_DIR -name .svn -type d`
54     echo " OK"
55 }
56
57 update_changelogs(){
58         echo "Updating changelogs ..."
59     for module in $ALL_MODULES;do
60         echo -n "       $module "
61
62         echo -n $module | grep -v python | grep -v efl-core > /dev/null 2>&1 && VERSION=`grep AC_INIT $TMP_DIR/$module/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
63         echo -n "."
64         echo -n $module | grep python | grep -v efl-core > /dev/null 2>&1 && VERSION=`grep version $TMP_DIR/$module/setup.py | cut -d\' -f2 || exit_error`
65         echo -n "."
66         echo -n $module | grep efl-core > /dev/null 2>&1 && VERSION=`grep AC_INIT $TMP_DIR/evas/configure.ac | cut -d[ -f3 | cut -d] -f1 || exit_error`
67
68         echo -n "."
69         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
70         echo " `head -n1 $TMP_DIR/$module/debian/changelog`"
71     done
72 }
73
74 gen_versions(){
75     if [ ! -d $VERSIONS_DIR ]; then
76         echo -n "Creating versions dir $VERSIONS_DIR ..."
77         mkdir -p $VERSIONS_DIR || exit_error
78         echo " OK"
79     fi
80
81     echo "Generating version files ..."
82     for module in $ALL_MODULES;do
83         VERSION=`dpkg-parsechangelog -l$TMP_DIR/$module/debian/changelog | grep Version: | cut -d" " -f2 || exit_error`
84         echo "  $module ... $VERSION"
85         echo "$VERSION" > $VERSIONS_DIR/"$module"_version
86     done
87 }
88
89 gen_control(){
90     echo "Generating control files ..."
91     for module in $ALL_MODULES; do
92         echo -n "       $module ..."
93         if [ -e $TMP_DIR/$module/debian/control.in ]; then
94             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`
95             cp $TMP_DIR/$module/debian/control.in $TMP_DIR/$module/debian/control.temp
96
97             for replacement in $TO_REPLACE; do
98                 replacement_lowercase=`echo $replacement | tr "[:upper:]" "[:lower:]"`
99                 version_file=$VERSIONS_DIR/$replacement_lowercase
100                 if [ ! -e $version_file ]; then
101                     echo -n " Could not find a replacement for $replacement" && exit_error
102                 fi
103                 version_number=`cat $version_file`
104                 echo -n " $replacement: $version_number"
105                 sed -i s/@$replacement@/$version_number/g $TMP_DIR/$module/debian/control.temp
106             done
107
108             mv $TMP_DIR/$module/debian/control.temp $TMP_DIR/$module/debian/control
109         fi
110
111         echo " OK"
112     done
113 }
114
115 gen_src_packages(){
116     echo "Generating source packages ..."
117     for module in $ALL_MODULES; do
118         echo -n "       $module ."
119         cd $TMP_DIR/$module || exit_error
120         echo -n "."
121         dpkg-buildpackage -rfakeroot -us -uc -D -sa -S -I.git -I.gitignore -I.svn -I.svnignore -ICVS -I.cvsignore > /dev/null 2>&1|| exit_error
122         echo -n "."
123         cd - > /dev/null 2>&1 || exit_error
124         echo " OK"
125     done
126 }
127
128 init
129 checkout_repositories
130 update_changelogs
131 gen_versions
132 gen_control
133 gen_src_packages
134 echo "All done. Packages in $TMP_DIR"
135 exit 0