<div dir="ltr"><div>Package: piuparts</div><div>Version: 0.45</div><div><br></div>piuparts does:<div><br></div><div>dpkg -i $package</div><div><br></div><div>If that fails, it then does:</div><div><br></div><div>apt-get -yf install</div>
<div><br></div><div>If that works, it assumes that $package is installed.</div><div><br></div><div>Bad assumption. There are two reasons why $package may not be installed. (1) it was never unpacked in the first place, or (2) it was unpacked, then an error occurred. The "apt-get -f install" decided the best (only?) way to fix the problem is by removing the package.</div>
<div><br></div><div><br></div><div>I have a full log (attached) that reports both these issues. Based on django-filters, which I am about to upload to incoming.</div><div><br></div><div>It tries to install python-django-filters_0.6-2_all.deb, but the unpack fails:</div>
<div><div><br></div><div>8m1.3s DEBUG: Starting command: ['chroot', '/tmp/tmpTNTx4a', 'eatmydata', 'dpkg', '-i', 'tmp/python-django-filters_0.6-2_all.deb', 'tmp/</div><div>
python-django-filters-doc_0.6-2_all.deb', 'tmp/django-filter_0.6-2_all.deb', 'tmp/python-django-filter_0.6-2_all.deb']</div><div>8m1.4s DUMP: </div><div> Selecting previously unselected package python-django-filters.</div>
<div> dpkg: regarding .../python-django-filters_0.6-2_all.deb containing python-django-filters:</div><div> python-django-filters breaks python-django-filter (<< 0.6-2)</div><div> python-django-filter (version 0.6-1) is present and installed.</div>
<div> </div><div> dpkg: error processing tmp/python-django-filters_0.6-2_all.deb (--install):</div><div> installing python-django-filters would break python-django-filter, and</div><div> deconfiguration is not permitted (--auto-deconfigure might help)</div>
</div><div><br></div><div>It tries to install django-filter, unpack works, but the install fails (due to above dependency failing):</div><div><div><br></div><div> dpkg: dependency problems prevent configuration of python-django-filters-doc:</div>
<div> python-django-filters-doc depends on libjs-sphinxdoc (>= 1.0); however:</div><div> Package libjs-sphinxdoc is not installed.</div><div> </div><div> dpkg: error processing python-django-filters-doc (--install):</div>
<div> dependency problems - leaving unconfigured</div><div> dpkg: dependency problems prevent configuration of django-filter:</div><div> django-filter depends on python-django-filters; however:</div><div> Package python-django-filters is not installed.</div>
<div> </div><div> dpkg: error processing django-filter (--install):</div><div> dependency problems - leaving unconfigured</div><div><br></div></div><div>The same thing happens for python-django-filter.</div><div><br></div>
<div>Then the "apt-get -f install" removes these unpacked packages:</div><div><br></div><div><div>8m1.4s DEBUG: Starting command: ['chroot', '/tmp/tmpTNTx4a', 'eatmydata', 'apt-get', '-yf', 'install']</div>
<div>8m3.4s DUMP: </div><div> Reading package lists...</div><div> Building dependency tree...</div><div> Reading state information...</div><div> Correcting dependencies... Done</div><div> The following packages were automatically installed and are no longer required:</div>
<div> libexpat1 libffi6 libncursesw5 libpython-stdlib libpython2.7-minimal</div><div> libpython2.7-stdlib libsqlite3-0 libssl1.0.0 mime-support python</div><div> python-django python-minimal python-support python2.7 python2.7-minimal</div>
<div> Use 'apt-get autoremove' to remove them.</div><div> The following extra packages will be installed:</div><div> libjs-jquery libjs-sphinxdoc libjs-underscore</div><div> Recommended packages:</div><div> javascript-common</div>
<div> The following packages will be REMOVED:</div><div> django-filter python-django-filter</div><div> The following NEW packages will be installed:</div><div> libjs-jquery libjs-sphinxdoc libjs-underscore</div><div>
0 upgraded, 3 newly installed, 2 to remove and 0 not upgraded.</div><div> 3 not fully installed or removed.</div><div> Need to get 174 kB of archives.</div><div> After this operation, 532 kB of additional disk space will be used.</div>
<div> Get:1 <a href="http://http.debian.net/debian/">http://http.debian.net/debian/</a> unstable/main libjs-jquery all 1.7.2+dfsg-2 [80.2 kB]</div><div> Get:2 <a href="http://http.debian.net/debian/">http://http.debian.net/debian/</a> unstable/main libjs-underscore all 1.4.4-2 [49.1 kB]</div>
<div> Get:3 <a href="http://http.debian.net/debian/">http://http.debian.net/debian/</a> unstable/main libjs-sphinxdoc all 1.1.3+dfsg-8 [44.5 kB]</div><div> debconf: delaying package configuration, since apt-utils is not installed</div>
</div><div><div> Fetched 174 kB in 1s (126 kB/s)</div><div> (Reading database ... 25702 files and directories currently installed.)</div><div> Removing django-filter ...</div><div> Removing python-django-filter ...</div>
<div> Selecting previously unselected package libjs-jquery.</div><div> (Reading database ... 25696 files and directories currently installed.)</div><div> Unpacking libjs-jquery (from .../libjs-jquery_1.7.2+dfsg-2_all.deb) ...</div>
<div> Selecting previously unselected package libjs-underscore.</div><div> Unpacking libjs-underscore (from .../libjs-underscore_1.4.4-2_all.deb) ...</div><div> Selecting previously unselected package libjs-sphinxdoc.</div>
<div> Unpacking libjs-sphinxdoc (from .../libjs-sphinxdoc_1.1.3+dfsg-8_all.deb) ...</div><div> Setting up libjs-jquery (1.7.2+dfsg-2) ...</div><div> Setting up libjs-underscore (1.4.4-2) ...</div><div> Setting up libjs-sphinxdoc (1.1.3+dfsg-8) ...</div>
<div> Setting up python-django-filters-doc (0.6-2) ...</div><div>8m3.4s DEBUG: Command ok: ['chroot', '/tmp/tmpTNTx4a', 'eatmydata', 'apt-get', '-yf', 'install']</div></div>
<div><br></div><div><br></div><div>However piuparts concludes that everything was installed:</div><div><br></div><div><div>8m3.4s INFO: Installation of ['tmp/python-django-filters_0.6-2_all.deb', 'tmp/python-django-filters-doc_0.6-2_all.deb', 'tmp/django-filter_0.6-2_all.deb', 'tmp/python-django-filter_0.6-2_all.deb'] ok</div>
</div><div><br></div><div>Which is wrong, only python-django-filters-doc was installed.</div><div><br></div><div><br></div><div>piuparts furthermore concludes all tests passed:</div><div><br></div><div><div>8m10.9s INFO: PASS: Upgrading between Debian distributions.</div>
<div>8m10.9s INFO: PASS: All tests.</div><div>8m10.9s INFO: piuparts run ends.</div></div><div><br></div><div>However, the tests didn't really test anything as far as I can see, because the packages failed to install.</div>
<div><br></div><div>The reason the packages didn't install appears to be because it didn't install them in the correct order.</div><div><br></div><div>As far as I can tell, I am suppose to have both Replace: and Breaks: for when files get moved between packages. <a href="http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces</a></div>
<div>-- <br>Brian May <<a href="mailto:brian@microcomaustralia.com.au" target="_blank">brian@microcomaustralia.com.au</a>>
</div></div>