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

pkgsel: please clarify intention of "|| aptfailed"



Hello d-i team

[alt. subject: system state after successful run of pkgsel is indeterminate]

Within pkgsel postinst there are a couple uses of aptitude, and one of
tasksel.  The invocations are:

1. apply security updates

 in-target sh -c "debconf-apt-progress --from 50 --to 100 --logstderr
-- aptitude -q --without-recommends -y -o
DPkg::options=--force-confnew '$upgrade_type'" || aptfailed

2. select and install tasks

 in-target sh -c "tasksel --new-install --debconf-apt-progress='--from
$tasksel_start --to $tasksel_end --logstderr'" || aptfailed

3. install packages requested in pkgsel/include

 in-target sh -c "debconf-apt-progress --from 900 --to 950 --logstderr
-- aptitude -q -y install -- $RET" || aptfailed

Note that all three include "|| aptfailed".

With tasksel recently switching to apt-get, call 2 will exit with
non-zero status if there are download or (maybe?) installation errors.
 (Unless APT::Get::Fix-Missing is being configured somewhere I haven't
noticed.)

Aptitude 0.6.8 (in testing) does not behave like that.  In the event
of those errors it will proceed like apt-get --fix-missing and never
exit with non-zero status.  This makes calls 1 and 3 have different
semantics to call 2: they will succeed despite failure to apply
security updates and/or packages requested to be installed.

Please clarify whether the use of "|| aptfailed" after each call is
intended for catching package download/installation errors (in
addition to other errors, of course).  This would mean that a
successful run of pkgsel *should* assert that updates have been
applied, selected tasks installed, and packages in pkgsel/include
installed.  At the moment, the state of the system after pkgsel is
indeterminate.

These semantics could be enforced by replacing use of aptitude with
equivalent calls to apt-get, or updating aptitude to 0.6.9 series (in
experimental) which can report the errors similar to apt-get.  IMO
apt-get is preferable because it is simpler and would ensure the most
consistency possible within pkgsel.  However, there may be users who
rely on the current implicit support of aptitude-only search patterns
in pkgsel/include.

Ok, there is the current release process to be considered.  Can the
intentions of pkgsel can be stated/determined independently, with the
implications of release process considered later?

Regards


Reply to: