[pkg-mt-om-devel] Bug#700063: movabletype-opensource: installs files over existing /usr/share/movabletype/static/jquery symlink, overwriting files owned by libjs-jquery

Andreas Beckmann anbe at debian.org
Fri Feb 8 00:46:13 UTC 2013


Package: movabletype-opensource
Version: 5.1.4+dfsg-2
Severity: serious
User: debian-qa at lists.debian.org
Usertags: piuparts

Hi,

during a test with piuparts I noticed that movabletype-opensource
installs files over an existing symlink
  /usr/share/movabletype/static/jquery -> /usr/share/javascript/jquery
and overwrites files owned by libjs-jquery.

This was observed during an upgrade from squeeze to wheezy.

>From the attached log (scroll to the bottom...):

1m31.0s INFO: dirname part contains a symlink:
  /usr/share/movabletype/static/jquery/jquery.bgiframe.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.bgiframe.js ()
  /usr/share/movabletype/static/jquery/jquery.bgiframe.min.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.bgiframe.min.js ()
  /usr/share/movabletype/static/jquery/jquery.dump.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.dump.js ()
  /usr/share/movabletype/static/jquery/jquery.exfixed.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.exfixed.js ()
  /usr/share/movabletype/static/jquery/jquery.form.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.form.js ()
  /usr/share/movabletype/static/jquery/jquery.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.js (libjs-jquery)
  /usr/share/movabletype/static/jquery/jquery.json.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.json.js ()
  /usr/share/movabletype/static/jquery/jquery.json.min.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.json.min.js ()
  /usr/share/movabletype/static/jquery/jquery.min.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.min.js (libjs-jquery)
  /usr/share/movabletype/static/jquery/jquery.mt.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.mt.js ()
  /usr/share/movabletype/static/jquery/jquery.mt.min.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.mt.min.js ()
  /usr/share/movabletype/static/jquery/jquery.phpdate.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.phpdate.js ()
  /usr/share/movabletype/static/jquery/jquery.pngfix.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.pngfix.js ()
  /usr/share/movabletype/static/jquery/jquery.timeout.interval.idle.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.timeout.interval.idle.js ()
  /usr/share/movabletype/static/jquery/jquery.validate.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.validate.js ()
  /usr/share/movabletype/static/jquery/jquery.validate.min.js (movabletype-opensource) != /usr/share/javascript/jquery/jquery.validate.min.js ()
  /usr/share/movabletype/static/jquery/themes (movabletype-opensource) != /usr/share/javascript/jquery/themes ()
  /usr/share/movabletype/static/jquery/themes/macFFBgHack.png (movabletype-opensource) != /usr/share/javascript/jquery/themes/macFFBgHack.png ()
  /usr/share/movabletype/static/jquery/themes/thickbox.css (movabletype-opensource) != /usr/share/javascript/jquery/themes/thickbox.css ()
  /usr/share/movabletype/static/jquery/themes/ui.datepicker.css (movabletype-opensource) != /usr/share/javascript/jquery/themes/ui.datepicker.css ()
  /usr/share/movabletype/static/jquery/thickbox.js (movabletype-opensource) != /usr/share/javascript/jquery/thickbox.js ()

Looks like the package in squeeze was shipping that symlink, but it was
later turned into a directory and movabletype is now shipping its own
copy of jquery.

Note that dpkg intentionally does not replace directories with symlinks
and vice versa - this needs manual maintainer script management.

For switching from a link to a directory, the *preinst* script should
do something like this:

        OLDLINK=/path/to/sym/link

	if [ -L $OLDLINK ]; then
		rm $OLDLINK
	fi

But I have no suggestions how to properly clean up already messed up
installations (i.e. those that already upgraded from squeeze to wheezy
with package movabletype-opensource installed).

After fixing this you should probably clone this bug and reassign to
libjs-jquery to have it add a
  Breaks: movabletype-opensource (<< FIXEDVERSION~)
But maybe even a versioned Conflicts is required to ensure the fixed
movabletype-opensource gets unpacked (and its preinst is run) *before*
libjs-jquery is unpacked s.t. jquery will replace any corrupted files
it owns without risking to get corrupted by m-o later on.


Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: movabletype-opensource_5.1.4+dfsg-2.log.gz
Type: application/x-gzip
Size: 45460 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-mt-om-devel/attachments/20130208/bbed4822/attachment-0001.bin>


More information about the pkg-mt-om-devel mailing list