❦ 29 septembre 2012 13:01 CEST, Andreas Beckmann <deb...@abeckmann.de> :
>> Thanks for the pointers! I now understand why this does not >> work. Fixing in postinst is quite difficult since I have swapped >> symlinks and, from the bug reports, successive installs make the >> situation worst (things got installed in the wrong place). >> >> Well, I need to work a bit on this. > > I think a working approach is: > > * directory to symlink > fix it up in the postinst (at postinst, the directory should have > become "empty"): > if [ -d $X ] && [ ! -L $X ]; then > rmdir $X # bombs if not empty > ln -s $target $X > fi In fact, because I have swapped symlinks in the past, the initial directory does not become empty. In a version, I have: /usr/share/roundcube/plugins -> /var/lib/roundcube/plugins /var/lib/roundcube/plugins/plugin1 And in the new version, I have: /var/lib/roundcube/plugins/plugin1 -> /usr/share/roundcube/plugins/plugin1 /var/lib/roundcube/plugins/plugin2 -> /usr/share/roundcube/plugins/plugin2 Unfortunately, when the user has upgraded from 1 to 2, he has: /usr/share/roundcube/plugins -> /var/lib/roundcube/plugins /var/lib/roundcube/plugins/plugin1 /var/lib/roundcube/plugins/plugin2 Of course, there is still a solution, but it becomes a bit complex and I may create new bugs from it... > * symlink to directory > remove symlinks in the preinst to avoid installing stuff at the wrong > place > test ! -L $X || rm $X This is too late since the culprit package is already in stable. -- /* * For moronic filesystems that do not allow holes in file. * We may have to extend the file. */ 2.4.0-test2 /usr/src/linux/fs/buffer.c
pgpMpCyY6qVpN.pgp
Description: PGP signature