Updaded dependency info for maemo-cflags-cdbs-rules to >= 0.0.4
[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 && cp -r $module $TMP_DIR && echo " ... OK" && continue
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         cp -r $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         rm -rf `find $TMP_DIR -name .git -type d`
55     echo " OK"
56 }
57
58 update_changelogs(){
59         echo "Updating changelogs ..."
60     for module in $ALL_MODULES;do
61         echo -n "       $module "
62
63         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`
64         echo -n "."
65         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`
66         echo -n "."
67         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`
68
69         echo -n "."
70         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
71         echo " `head -n1 $TMP_DIR/$module/debian/changelog`"
72     done
73 }
74
75 gen_versions(){
76     if [ ! -d $VERSIONS_DIR ]; then
77         echo -n "Creating versions dir $VERSIONS_DIR ..."
78         mkdir -p $VERSIONS_DIR || exit_error
79         echo " OK"
80     fi
81
82     echo "Generating version files ..."
83     for module in $ALL_MODULES;do
84         VERSION=`dpkg-parsechangelog -l$TMP_DIR/$module/debian/changelog | grep Version: | cut -d" " -f2 || exit_error`
85         echo "  $module ... $VERSION"
86         echo "$VERSION" > $VERSIONS_DIR/"$module"_version
87     done
88 }
89
90 gen_control(){
91     echo "Generating control files ..."
92     for module in $ALL_MODULES; do
93         echo -n "       $module ..."
94         if [ -e $TMP_DIR/$module/debian/control.in ]; then
95             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`
96             cp $TMP_DIR/$module/debian/control.in $TMP_DIR/$module/debian/control.temp
97
98             for replacement in $TO_REPLACE; do
99                 replacement_lowercase=`echo $replacement | tr "[:upper:]" "[:lower:]"`
100                 version_file=$VERSIONS_DIR/$replacement_lowercase
101                 if [ ! -e $version_file ]; then
102                     echo -n " Could not find a replacement for $replacement" && exit_error
103                 fi
104                 version_number=`cat $version_file`
105                 echo -n " $replacement: $version_number"
106                 sed -i s/@$replacement@/$version_number/g $TMP_DIR/$module/debian/control.temp
107             done
108
109             mv $TMP_DIR/$module/debian/control.temp $TMP_DIR/$module/debian/control
110         fi
111
112         echo " OK"
113     done
114 }
115
116 gen_src_packages(){
117     echo "Generating source packages ..."
118     for module in $ALL_MODULES; do
119         echo -n "       $module ."
120         cd $TMP_DIR/$module || exit_error
121         echo -n "."
122         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
123         echo -n "."
124         cd - > /dev/null 2>&1 || exit_error
125         echo " OK"
126     done
127 }
128
129 init
130 checkout_repositories
131 update_changelogs
132 gen_versions
133 gen_control
134 gen_src_packages
135 echo "All done. Packages in $TMP_DIR"
136 exit 0