[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Broken package and update (Was: How to properly move a file from a .deb to another one ?)



Goswin von Brederlow wrote:
Darn, this is a vicious packaging bug.. playing with the <new-preinst upgrade old-version> might be the solution to kick the simlink ?
Be carefull and check with policy and packaging manual on this.
Changing between link and dir is a complicated thing to do.

Darn, I just uploaded the httrack-doc_3.40.4-4/webhttrack_3.40.4-4 packages which were supposed to fix the issue of webhttrack_3.40.4-1/httrack-doc_3.40.4-1, and things seems to work, BUT actually things go not so well depending on the install order (the packages are installed together)

This one is okay, despite a warning:

# dpkg -i webhttrack_3.40.4-4_i386.deb httrack-doc_3.40.4-4_all.deb
dpkg: considering removing httrack-doc in favour of webhttrack ...
dpkg: yes, will remove httrack-doc in favour of webhttrack.
(Reading database ... 96916 files and directories currently installed.)
Preparing to replace webhttrack 3.40.4-1 (using webhttrack_3.40.4-4_i386.deb) ...
Unpacking replacement webhttrack ...
dpkg: warning - unable to delete old file `/usr/share/doc/httrack/html/server/sfx': Directory not empty dpkg: warning - unable to delete old file `/usr/share/doc/httrack/html/server/images': Directory not empty dpkg: warning - unable to delete old file `/usr/share/doc/httrack/html/server': Directory not empty
Selecting previously deselected package httrack-doc.
Unpacking httrack-doc (from httrack-doc_3.40.4-4_all.deb) ...
Setting up webhttrack (3.40.4-4) ...

This one is not okay at all:

# dpkg -i httrack-doc_3.40.4-4_all.deb  webhttrack_3.40.4-4_i386.deb
dpkg: considering removing webhttrack in favour of httrack-doc ...
dpkg: yes, will remove webhttrack in favour of httrack-doc.
(Reading database ... 96916 files and directories currently installed.)
Preparing to replace httrack-doc 3.40.4-1 (using httrack-doc_3.40.4-4_all.deb) ...
Unpacking replacement httrack-doc ...
Unpacking webhttrack (from webhttrack_3.40.4-4_i386.deb) ...
dpkg: warning - unable to delete old file `/usr/share/doc/httrack/html/server/sfx': Directory not empty dpkg: warning - unable to delete old file `/usr/share/doc/httrack/html/server': Directory not empty
Setting up httrack-doc (3.40.4-4) ...

dpkg: error processing webhttrack (--install):
 package webhttrack is not ready for configuration
 cannot configure (current status `config-files')
Errors were encountered while processing:
 webhttrack

If you try again, the package is installing properly.

I tracked the "directory not empty" problem during the last few hours,and couldn't find a solution (by playing with /bin/bash called inside the preinst script, and trying to figure out where dpkg scews).

The main problem is that httrack-doc embeds a symlink from /usr/share/doc/httrack/html to /usr/share/httrack/html, AND the webhttrack package embeds files in both /usr/share/doc/httrack/html (the directory symlinked by httrack-doc) and /usr/share/httrack/html

This situation was created because of a bad wildcard in the generated webhttrack.files (/usr/share/doc/httrack/html/*) ; causing helper scripts to reference some files in the symlinked directory rather than the real one. (And to simplify this mess, the symlink was copied in the httrack-doc package, and files copied in httrack-doc)

To solve this mess, I added two "Conflicts:" and "Replaces:" lines in the two respective control entries, to force dpkg to remove the old bogus packages first, according to common usage. It almost works.

This warning is the last remaining problem which occurs when installing the new version.

Any idea to cleanly solve the problem ?



Reply to: