Bug#696075: lcl-utils: directory vs. symlink mess after squeeze = wheezy upgrade: /etc/lazarus
On Mon, 2012-12-31 at 18:40 +0100, gregor herrmann wrote: On Sun, 16 Dec 2012 15:35:37 +0100, Andreas Beckmann wrote: during an upgrade test with piuparts I noticed your package installs files over an existing symlink, overwriting files from another package in a way that is not detected by dpkg: 0m44.0s INFO: dirname part contains a symlink: /etc/lazarus/environmentoptions.xml != /etc/lazarus-0.9.30.4/environmentoptions.xml (lcl-utils) /etc/lazarus/helpoptions.xml != /etc/lazarus-0.9.30.4/helpoptions.xml (lcl-utils) Looks like /etc/lazarus was a symlink in squeeze and is a directory in wheezy. Note that dpkg intentionally does not replace directories with symlinks and vice versa. I don't think it was a symlink in squezze after comparing the packages; my suspect at the moment is update-alternatives in debian/lcl-utils.postinst.in. /etc/lazarus is a now an alternative of /etc/lazarus-${version}. The user is asked to confirm whether post installation script should do the migration or not. However, this choice is ignored somehow after. I've prepared a patch for this. This creates a serious mess with the conffiles in /etc ... There are also some obsolete conffiles (could be false positives due to this symlinkmess), look at dpkg-maintscript-helper for easy cleanup: OBSOLETE CONFFILE /etc/lazarus/helpoptions.xml REGISTERED BY lcl-utils (MODIFIED) OBSOLETE CONFFILE /etc/lazarus/environmentoptions.xml REGISTERED BY lcl-utils (MODIFIED) They're modified in debian/rules (fpcsubst ...) in etc/lazarus-0.9.30.4. So i guess the obsolete part comes from the symlink problem, but the modification might remain in any case. When the user choose to not migrate, he should handle his conf files manually. The script, with my new patch, will no more touch them. Of course user can always diff with /etc/lazarus-${version} to update his configuration. But he should really now what he is doing as the conf files changed radically and the xml is not easy to handle by mans and there are files left on the system after purge: 0m46.6s INFO: Warning: Package purging left files on system: /etc/lazarus.bak/ not owned /etc/lazarus.bak/environmentoptions.xmlnot owned /etc/lazarus.bak/helpoptions.xml not owned Yup, debian/lcl-utils.postinst.in + debian/lcl-utils.templates.in. These will be removed upon purge (patch already applied to fpc, but not to Lazarus) I didn't look at the maintainer scripts or the package to analyze what's going on (or what was intended to happen). I only came up with these rough ideas. Thanks for your analysis, (Building the package is Not Really Funny™.) :) Cheers, signature.asc Description: This is a digitally signed message part
Bug#696075: lcl-utils: directory vs. symlink mess after squeeze = wheezy upgrade: /etc/lazarus
On 2013-01-03 14:00, Abou Al Montacir wrote: On Mon, 2012-12-31 at 18:40 +0100, gregor herrmann wrote: I don't think it was a symlink in squezze after comparing the packages; my suspect at the moment is update-alternatives in debian/lcl-utils.postinst.in. /etc/lazarus is a now an alternative of /etc/lazarus-${version}. The user is asked to confirm whether post installation script should do the migration or not. What is the default? (I.e. what happens with DEBIAN_FRONTEND=noninteractive?) However, this choice is ignored somehow after. I've prepared a patch for this. OK, I'll wait for a fixed package before doing further tests ... Why can't you use dpkg-maintscript-helper to rename the conffiles without even asking the user (at least as long as the conffiles are unmodified)? Andreas -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#696075: lcl-utils: directory vs. symlink mess after squeeze = wheezy upgrade: /etc/lazarus
On Sun, 16 Dec 2012 15:35:37 +0100, Andreas Beckmann wrote: during an upgrade test with piuparts I noticed your package installs files over an existing symlink, overwriting files from another package in a way that is not detected by dpkg: 0m44.0s INFO: dirname part contains a symlink: /etc/lazarus/environmentoptions.xml != /etc/lazarus-0.9.30.4/environmentoptions.xml (lcl-utils) /etc/lazarus/helpoptions.xml != /etc/lazarus-0.9.30.4/helpoptions.xml (lcl-utils) Looks like /etc/lazarus was a symlink in squeeze and is a directory in wheezy. Note that dpkg intentionally does not replace directories with symlinks and vice versa. I don't think it was a symlink in squezze after comparing the packages; my suspect at the moment is update-alternatives in debian/lcl-utils.postinst.in. This creates a serious mess with the conffiles in /etc ... There are also some obsolete conffiles (could be false positives due to this symlinkmess), look at dpkg-maintscript-helper for easy cleanup: OBSOLETE CONFFILE /etc/lazarus/helpoptions.xml REGISTERED BY lcl-utils (MODIFIED) OBSOLETE CONFFILE /etc/lazarus/environmentoptions.xml REGISTERED BY lcl-utils (MODIFIED) They're modified in debian/rules (fpcsubst ...) in etc/lazarus-0.9.30.4. So i guess the obsolete part comes from the symlink problem, but the modification might remain in any case. and there are files left on the system after purge: 0m46.6s INFO: Warning: Package purging left files on system: /etc/lazarus.bak/not owned /etc/lazarus.bak/environmentoptions.xml not owned /etc/lazarus.bak/helpoptions.xml not owned Yup, debian/lcl-utils.postinst.in + debian/lcl-utils.templates.in. I didn't look at the maintainer scripts or the package to analyze what's going on (or what was intended to happen). I only came up with these rough ideas. (Building the package is Not Really Funny™.) Cheers, gregor -- .''`. Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06 : :' : Debian GNU/Linux user, admin, and developer - http://www.debian.org/ `. `' Member of VIBE!AT SPI, fellow of the Free Software Foundation Europe `- NP: Peter Ratzenbeck: Avalon signature.asc Description: Digital signature
Bug#696075: lcl-utils: directory vs. symlink mess after squeeze = wheezy upgrade: /etc/lazarus
Package: lcl-utils Version: 0.9.30.4-1.1 Severity: serious User: debian...@lists.debian.org Usertags: piuparts Hi, during an upgrade test with piuparts I noticed your package installs files over an existing symlink, overwriting files from another package in a way that is not detected by dpkg: 0m44.0s INFO: dirname part contains a symlink: /etc/lazarus/environmentoptions.xml != /etc/lazarus-0.9.30.4/environmentoptions.xml (lcl-utils) /etc/lazarus/helpoptions.xml != /etc/lazarus-0.9.30.4/helpoptions.xml (lcl-utils) Looks like /etc/lazarus was a symlink in squeeze and is a directory in wheezy. Note that dpkg intentionally does not replace directories with symlinks and vice versa. This creates a serious mess with the conffiles in /etc ... There are also some obsolete conffiles (could be false positives due to this symlinkmess), look at dpkg-maintscript-helper for easy cleanup: OBSOLETE CONFFILE /etc/lazarus/helpoptions.xml REGISTERED BY lcl-utils (MODIFIED) OBSOLETE CONFFILE /etc/lazarus/environmentoptions.xml REGISTERED BY lcl-utils (MODIFIED) and there are files left on the system after purge: 0m46.6s INFO: Warning: Package purging left files on system: /etc/lazarus.bak/ not owned /etc/lazarus.bak/environmentoptions.xmlnot owned /etc/lazarus.bak/helpoptions.xml not owned I didn't look at the maintainer scripts or the package to analyze what's going on (or what was intended to happen). Cheers, Andreas lcl-utils_0.9.30.4-1.1.log.gz Description: GNU Zip compressed data