On Sun, Jan 27, 2019 at 08:15:24PM +0200, Otto Kekäläinen wrote: > Hello Olaf! > > Can you reproduce this issue? What are the steps to reproduce? > I cannot find any file *p.ci* from the sources and I have no clue > where it is picking it up. It should pick up the version string from > the maintainer scripts (e.g. mariadb-server-10.3.preinstall) but in > this case it sees some other string and I have not figured out what it > is.
Hi Otto, I had the same on upgrading. I believe the issue is the following: the preinst script assumes that the preinst script is called as /var/lib/dpkg/mariadb-server-10.3.preinst, and mangles the script name to capture certain characters from it. However, at the time the preinst is run, dpkg has only unpacked the preinst control script (and possibly other control scripts) into a temporary location, and probably given it some sort of default name. The package has not even been unpacked at this point. So you cannot in any way rely on the name of the script in the preinst. A solution to this problem is to have a preinst.in in the debian/ build directory, with the correct version number filled in during the build to produce a correct preinst with: VERSION=10.3 or whatever. Best wishes, Julian