3 ###########################################################
4 # Maemo-efl building script
5 # Package functions definitions
7 # Note: var-definitions.sh needed.
8 ###########################################################
14 cd $dir/`basename $dir`
16 if [ -x ./autogen.sh ]; then
17 NOCONFIGURE=1 ./autogen.sh >> $dir/sbox_build_pkgs.log 2>&1 || return 1
31 if [ x$rev == xHEAD ]; then
32 msg_begin "Getting latest repository revision number"
37 rev_tmp=`echo $rev | $__sed -nr 's/^([0-9]+)$/\1/p'`
38 if [ -z "$rev_tmp" ]; then
39 error "Invalid revision number '$rev'"
42 msg_begin "Updating changelog files to svn$rev"
43 for module in `echo $__all_modules|$__sed -e 's/:/ /g'`; do
44 if [ -e $module/debian/changelog ]; then
45 fst=`$__head -1 $module/debian/changelog | grep svn`
46 if [ -n "$fst" ]; then
47 cp -f $module/debian/changelog $module/debian/changelog.orig
48 fst=`echo $fst | $__sed -nr "s/(.*)svn([0-9]+)(.*)/\1svn$rev\3/p"`
49 echo "$fst" > $module/debian/changelog
50 $__tail -n +2 $module/debian/changelog.orig >> $module/debian/changelog
61 local replacement_lowercase
67 if [ -d ./$module/$module/debian ]; then
68 msg_begin " Removing existing debian directory"
69 rm -rf ./$module/$module/debian
73 mkdir -p $module/$module/debian
75 msg_begin " Copying specific debian directory"
76 if [ -d ./$module/debian ]; then
77 $__tar c --exclude=.svn --exclude=.git --exclude=changelog.orig $module/debian | $__tar x --directory $module/
78 if [ -d ./$module/debian_$__distro ]; then
79 cp -r ./$module/debian_$__distro/* ./$module/$module/debian/
82 if [ -d ./$module/debian_$__distro ]; then
83 $__tar c --exclude=.svn --exclude=.git --exclude=changelog.orig $module/debian_$__distro | $__tar x --directory $module/
86 warn "Missing debian directory for $module. Ignoring"
92 if [ -e ./$module/$module/debian/control.in ]; then
93 msg_begin " Replacing versions in control file"
94 #TO_REPLACE=`grep -o -E '@([A-Z]|[0-9])+(-|_)*([A-Z]|[0-9])+_VERSION@' ./$module/$module/debian/control.in | cut -d @ -f 2 | sort -u`
95 TO_REPLACE=`grep -o -E '@([A-Z]|[0-9])+((-|_)*([A-Z]|[0-9]))*_VERSION@' ./$module/$module/debian/control.in | cut -d @ -f 2 | sort -u`
96 cp ./$module/$module/debian/control.in ./$module/$module/debian/control.temp
98 for replacement in $TO_REPLACE
100 replacement_lowercase=`echo $replacement | tr "[:upper:]" "[:lower:]"`
101 version_file=$__versions_dir/$replacement_lowercase
102 if [ ! -e $version_file ]; then
104 warn "Could not find a replacement for $replacement"
107 version_number=`cat $version_file`
108 sed -i s/@$replacement@/$version_number/g ./$module/$module/debian/control.temp
111 mv ./$module/$module/debian/control.temp ./$module/$module/debian/control
116 generate_versions() {
117 if [ ! -d $__versions_dir ]; then
118 msg_begin "Creating versions dir $__versions_dir"
119 $__mkdir -p $__versions_dir
123 msg_begin "Generating version files"
124 for module in `echo $__all_modules |$__sed -e 's/:/ /g'`; do
125 if [ -e $module/debian/changelog ]; then
126 VERSION=`$__dpkg_parsechangelog -l$module/debian/changelog | grep Version: | cut -d" " -f2 | cut -d- -f1`
127 REVISION=`$__dpkg_parsechangelog -l$module/debian/changelog | grep Version: | cut -d- -f2`
128 if [ -z \$REVISION ]; then
129 echo "$VERSION" > $__versions_dir/"$module"_version
131 echo "$VERSION-$REVISION" > $__versions_dir/"$module"_version
142 configure_pkg $dir || return 1
144 local DEB_BUILD_OPTIONS=n8x0
145 if [ "x$__distro" = "xgregale" ]; then
146 DEB_BUILD_OPTIONS=n770
149 cat << EOF > $dir/sbox_build_pkgs
152 export DEBFULLNAME="$DEBFULLNAME"
153 export DEBEMAIL="$DEBEMAIL"
154 export DEB_BUILD_OPTIONS="$DEB_BUILD_OPTIONS"
156 cd $dir/`basename $dir`
158 #VERSION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d" " -f2 | cut -d- -f1 >> $dir/sbox_build_pkgs.log 2>&1 || exit 1\`
159 #REVISION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d- -f2 >> $dir/sbox_build_pkgs.log 2>&1 || exit 1\`
161 VERSION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d" " -f2 | cut -d- -f1\`
162 REVISION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d- -f2\`
165 builddeps=\`$__sbox_dpkg_checkbuilddeps ./debian/control 2>&1 | grep Unmet | cut -d: -f3\`
166 target_lowercase=\`echo $target | cut -d_ -f1 | tr "[:upper:]" "[:lower:]"\`
168 if [ -z $__pkgslist_updated ];then
170 has_extras_rep=\`grep 'deb http://repository.maemo.org/extras' $__srclist_file\`
171 if [ -z "\$has_extras_rep" ];then
172 echo "deb http://repository.maemo.org/extras \$target_lowercase free non-free" >> $__srclist_file
175 has_extras_rep=\`grep 'deb-src http://repository.maemo.org/extras' $__srclist_file\`
176 if [ -z "\$has_extras_rep" ];then
177 echo "deb-src http://repository.maemo.org/extras \$target_lowercase free non-free" >> $__srclist_file
180 apt-get update >> $dir/sbox_apt_update.log 2>&1
184 if [ -n "\$builddeps" ];then
185 echo \$builddeps | while read line
187 pkg_name=\`echo \$line | cut -d'(' -f1 | tr -d "[:blank:]"\`
188 pkg_version=\`echo \$line | cut -d= -f2 | cut -d')' -f1 | tr -d "[:blank:]"\`
189 apt-get -y install \$pkg_name=\$pkg_version >> $dir/sbox_builddeps.log 2>&1
193 # $__sbox_dch -v \$VERSION+cvs$__today-\$REVISION -D $__distro "Snapshot CVS release of $__today" >> $dir/sbox_build_pkgs.log 2>&1 || exit 1
194 $__sbox_dpkg_buildpackage $__build_pkg_options >> $dir/sbox_build_pkgs.log 2>&1
199 $__chmod 755 $dir/sbox_build_pkgs
200 $__sbox $dir/sbox_build_pkgs
208 cat << EOF > $dir/sbox_install_pkgs
212 $__sbox_dpkg --install *.deb >> $dir/sbox_install_pkgs.log 2>&1
216 $__chmod 755 $dir/sbox_install_pkgs
217 $__sbox $dir/sbox_install_pkgs || return 1
219 for package in $dir/*.deb; do
220 pkg=`basename $package | cut -d_ -f1`
221 echo $__installed_packages | tr " " "\n" | sort -u | $__egrep "\^$pkg\$" > /dev/null 2>&1
223 if [ ! $? -eq 0 ]; then
224 __installed_packages="$__installed_packages $pkg"
233 cat << EOF > $__tmp_dir/sbox_uninstall_pkgs
237 $__sbox_dpkg --purge $__installed_packages >> $__tmp_dir/sbox_uninstall_pkgs.log 2>&1
241 __installed_packages=""
242 $__chmod 755 $__tmp_dir/sbox_uninstall_pkgs
243 #$__sbox $__tmp_dir/sbox_uninstall_pkgs
253 $__debsign *.changes >> $dir/sign_pkgs.log 2>&1 || return 1
255 cd - > /dev/null 2>&1