Package: dbconfig-common
Version: 1.8.38ubuntu1
Severity: major
When I upgrade my package version from 1.5.5 --> 1.12, with mysql's script
for upgrade named : 1.6, 1.7, 1.7.1, 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.8,
1.9, 1.10,
1.10.1, 1.10.2, 1.10.3, 1.10.4 1.11 and 1.12
To have a transcript, you can use the /usr/share/doc/dbconfig-
common/examples/db-test-mysql-2.1
1. Rename the package:
/usr/share/doc/dbconfig-common/examples/db-test-mysql-2.1 to
/usr/share/doc/dbconfig-common/examples/db-test-mysql-1.5.5
don't forget to update your changelog
2. install the first package (dpkg -i your_package_name_1.5.5_all.deb).
3. Create a new package db-test-mysql-1.12 with mysql upgrade's files from:
mysql-upgrade_1.6, mysql-upgrade_1.7, mysql-upgrade_1.7.1,
mysql-upgrade_1.7.2,
mysql-upgrade_1.7.3, ... mysql-upgrade_1.10.1, mysql-upgrade_1.10.2,
mysql-upgrade_1.10.3, mysql-upgrade_1.11, mysql-upgrade_1.12 with a script
to upgrade the version
of the database: update mytable set version='1.10.1' for example for
mysql-upgrade_1.10.1;
4. Generate your package
5. Upgrade your package (dpkg -i your_package_name_1.12_all.deb)
The result is:
applying upgrade sql for 1.5.5 -> 1.6.
applying upgrade sql for 1.5.5 -> 1.7.
applying upgrade sql for 1.5.5 -> 1.7.1.
applying upgrade sql for 1.5.5 -> 1.7.2.
applying upgrade sql for 1.5.5 -> 1.7.3.
applying upgrade sql for 1.5.5 -> 1.7.4.
applying upgrade sql for 1.5.5 -> 1.7.5.
applying upgrade sql for 1.5.5 -> 1.7.6.
applying upgrade sql for 1.5.5 -> 1.8.
applying upgrade sql for 1.5.5 -> 1.9.
applying upgrade sql for 1.5.5 -> 1.10.
Some scripts (1.10.1, 1.10.2, 1.10.3, 1.10.4 1.11 and 1.12) are not applied.
I suggest that the function dbc_find_upgrades() that sort files and return
the list of the files sorted, in /usr/share/dbconfig-common/dpkg/postinst,
be corrected.
Specially replace this script:
from line 248 to 258:
# if we haven't already placed it
if [ ! "$placed" ]; then
# if the this version is less than the next sorted one
if dpkg --compare-versions $f lt $s; then
# insert it here
tlist="$tlist $f $s"
placed="yes"
else
# it's not less, so append the sorted one and continue
tlist="$tlist $s"
fi
fi
with:
# if we haven't already placed it
if [ ! "$placed" ]; then
# if the this version is less than the next sorted one
if dpkg --compare-versions $f lt $s; then
# insert it here
tlist="$tlist $f"
placed="yes"
fi
fi
tlist="$tlist $s"
I am using Ubuntu GNU/Linux 8.04 LTS, kernel 2.6.24-23-server and libc6
Version: 2.7-10ubuntu5
--
*Ghislain Mokolomboka*
*Dvidea
Paris Innovation Massena - Hall B - 7ème étage
15, rue Jean-Baptiste Berlier
75013 Paris
www.dvidea.com
Tel: +33 1 55 43 79 04
Fax: +33 1 55 43 75 01*