Commit 28557f94 authored by David Kalnischkies's avatar David Kalnischkies

disable explicit configuration of all packages at the end

With b4450f1d we dropped what we
calculated here later on and now that we don't need it in the meantime
either we can just skip the busy work by default and expect dpkg to do
the right thing dropping also our little "last explicit configures"
removal trick introduced in b4450f1d.

This enables the last of a bunch of previously experimental options,
some of them existing still, but are very special and hence not really
worth documenting anymore (especially as it would need to be rewritten
now entirely) which is why the documentation is nearly completely
dropped.

The order of configuration stanzas in the simulation code changes
slightly as it isn't concerning itself with finding the 'right' order,
but any order is valid anyhow as long as the entire set happens in the
same call.
parent 4326680d
......@@ -1337,16 +1337,10 @@ bool pkgDPkgPM::ExpandPendingCalls(std::vector<Item> &List, pkgDepCache &Cache)
}
bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
{
// we remove the last configures (and after that removes) from the list here
// as they will be covered by the pending calls, so explicit calls are busy work
decltype(List)::const_iterator::difference_type explicitIdx =
std::distance(List.cbegin(),
_config->FindB("Dpkg::ExplicitLastConfigure", false) ? List.cend() :
std::find_if_not(
std::find_if_not(List.crbegin(), List.crend(), [](Item const &i) { return i.Op == Item::Configure; }),
List.crend(), [](Item const &i) { return i.Op == Item::Remove || i.Op == Item::Purge; }).base());
// explicitely remove&configure everything for hookscripts and progress building
// we need them only temporarily through, so keep the length and erase afterwards
decltype(List)::const_iterator::difference_type explicitIdx =
std::distance(List.cbegin(), List.cend());
ExpandPendingCalls(List, Cache);
auto const StripAlreadyDoneFromPending = [&](APT::VersionVector & Pending) {
......
......@@ -315,8 +315,8 @@ bool pkgPackageManager::ConfigureAll()
if (OList.OrderConfigure() == false)
return false;
std::string const conf = _config->Find("PackageManager::Configure","all");
bool const ConfigurePkgs = (conf == "all");
std::string const conf = _config->Find("PackageManager::Configure", "smart");
bool const ConfigurePkgs = (ImmConfigureAll || conf == "all");
// Perform the configuring
for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); ++I)
......@@ -600,7 +600,7 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
if (PkgLoop) return true;
static std::string const conf = _config->Find("PackageManager::Configure","all");
static std::string const conf = _config->Find("PackageManager::Configure", "smart");
static bool const ConfigurePkgs = (conf == "all" || conf == "smart");
if (List->IsFlag(Pkg,pkgOrderList::Configured))
......
......@@ -904,84 +904,14 @@ APT::Compressor::rev {
<listitem><para>These options are passed to &dpkg-buildpackage; when compiling packages;
the default is to disable signing and produce all binaries.</para></listitem>
</varlistentry>
</variablelist>
<refsect2><title>dpkg trigger usage (and related options)</title>
<para>APT can call &dpkg; in such a way as to let it make aggressive use of triggers over
multiple calls of &dpkg;. Without further options &dpkg; will use triggers once each time it runs.
Activating these options can therefore decrease the time needed to perform the
install or upgrade. Note that it is intended to activate these options per default in the
future, but as it drastically changes the way APT calls &dpkg; it needs a lot more testing.
<emphasis>These options are therefore currently experimental and should not be used in
production environments.</emphasis> It also breaks progress reporting such that all front-ends will
currently stay around half (or more) of the time in the 100% state while it actually configures
all packages.</para>
<para>Note that it is not guaranteed that APT will support these options or that these options will
not cause (big) trouble in the future. If you have understand the current risks and problems with
these options, but are brave enough to help testing them, create a new configuration file and test a
combination of options. Please report any bugs, problems and improvements you encounter and make sure
to note which options you have used in your reports. Asking &dpkg; for help could also be useful for
debugging proposes, see e.g. <command>dpkg --audit</command>. A defensive option combination would be
<literallayout>DPkg::NoTriggers "true";
PackageManager::Configure "smart";
DPkg::ConfigurePending "true";
DPkg::TriggersPending "true";</literallayout></para>
<variablelist>
<varlistentry><term><option>DPkg::NoTriggers</option></term>
<listitem><para>Add the no triggers flag to all &dpkg; calls (except the ConfigurePending call).
See &dpkg; if you are interested in what this actually means. In short: &dpkg; will not run the
triggers when this flag is present unless it is explicitly called to do so in an extra call.
Note that this option exists (undocumented) also in older APT versions with a slightly different
meaning: Previously these option only append --no-triggers to the configure calls to &dpkg; -
now APT will also add this flag to the unpack and remove calls.</para></listitem>
</varlistentry>
<varlistentry><term><option>PackageManager::Configure</option></term>
<listitem><para>Valid values are "<literal>all</literal>",
"<literal>smart</literal>" and "<literal>no</literal>".
The default value is "<literal>all</literal>", which causes APT to
configure all packages. The "<literal>smart</literal>" way is to
configure only packages which need to be configured before another
package can be unpacked (Pre-Depends), and let the rest be configured
by &dpkg; with a call generated by the ConfigurePending option (see
below). On the other hand, "<literal>no</literal>" will not configure
anything, and totally relies on &dpkg; for configuration (which at the
moment will fail if a Pre-Depends is encountered). Setting this option
to any value other than <literal>all</literal> will implicitly also
activate the next option by default, as otherwise the system could end
in an unconfigured and potentially unbootable state.</para></listitem>
</varlistentry>
<varlistentry><term><option>DPkg::ConfigurePending</option></term>
<listitem><para>If this option is set APT will call <command>dpkg --configure --pending</command>
to let &dpkg; handle all required configurations and triggers. This option is activated automatically
per default if the previous option is not set to <literal>all</literal>, but deactivating it could be useful
if you want to run APT multiple times in a row - e.g. in an installer. In these sceneries you could
deactivate this option in all but the last run.</para></listitem>
</varlistentry>
<varlistentry><term><option>DPkg::TriggersPending</option></term>
<listitem><para>Useful for the <literal>smart</literal> configuration as a package which has pending
triggers is not considered as <literal>installed</literal>, and &dpkg; treats them as <literal>unpacked</literal>
currently which is a showstopper for Pre-Dependencies (see debbugs #526774). Note that this will
process all triggers, not only the triggers needed to configure this package.</para></listitem>
</varlistentry>
<varlistentry><term><option>OrderList::Score::Immediate</option></term>
<listitem><para>Essential packages (and their dependencies) should be configured immediately
after unpacking. It is a good idea to do this quite early in the upgrade process as these
configure calls also currently require <literal>DPkg::TriggersPending</literal> which
will run quite a few triggers (which may not be needed). Essentials get per default a high score
but the immediate flag is relatively low (a package which has a Pre-Depends is rated higher).
These option and the others in the same group can be used to change the scoring. The following
example shows the settings with their default values.
<literallayout>OrderList::Score {
Delete 500;
Essential 200;
Immediate 10;
PreDepends 50;
};</literallayout>
</para></listitem>
</varlistentry>
</variablelist>
</refsect2>
<varlistentry><term><option>DPkg::ConfigurePending</option></term>
<listitem><para>If this option is set APT will call <command>dpkg --configure --pending</command>
to let &dpkg; handle all required configurations and triggers. This option is activated by default,
but deactivating it could be useful if you want to run APT multiple times in a row - e.g. in an installer.
In this scenario you could deactivate this option in all but the last run.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
......
......@@ -55,8 +55,8 @@ The following packages will be upgraded:
Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ]
Inst libdb-dev [5.1.7] (5.3.0 unversioned [amd64]) []
Inst libdb5.3-dev (5.3.28-3 unversioned [amd64])
Conf libdb5.3-dev (5.3.28-3 unversioned [amd64])
Conf libdb-dev (5.3.0 unversioned [amd64])' aptget dist-upgrade -st unversioned
Conf libdb-dev (5.3.0 unversioned [amd64])
Conf libdb5.3-dev (5.3.28-3 unversioned [amd64])' aptget dist-upgrade -st unversioned
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
......@@ -70,8 +70,8 @@ The following packages will be upgraded:
Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ]
Inst libdb-dev [5.1.7] (5.3.0 versioned [amd64]) []
Inst libdb5.3-dev (5.3.28-3 versioned [amd64])
Conf libdb5.3-dev (5.3.28-3 versioned [amd64])
Conf libdb-dev (5.3.0 versioned [amd64])' aptget dist-upgrade -st versioned
Conf libdb-dev (5.3.0 versioned [amd64])
Conf libdb5.3-dev (5.3.28-3 versioned [amd64])' aptget dist-upgrade -st versioned
cp -f rootdir/var/lib/dpkg/status-backup rootdir/var/lib/dpkg/status
insertinstalledpackage 'foo' 'amd64' '1'
......
......@@ -48,33 +48,42 @@ DPkg::Tools::options::\"./${hook}-v${1}.sh\"::Version \"$1\";" > rootdir/etc/apt
observehook() {
rm -f ${hook}-v2.list ${hook}-v3.list
msgtest 'Observe hooks while' "$*"
testsuccess --nomsg aptget "$@" -y --allow-downgrades
testsuccess --nomsg aptget "$@" -y --allow-downgrades --planner $planner
# different planners have different orders – we don't care in this test here
if [ -e ${hook}-v2.list ]; then
sort < ${hook}-v2.list > ${hook}-v2.list.new
mv ${hook}-v2.list.new ${hook}-v2.list
fi
if [ -e ${hook}-v3.list ]; then
sort < ${hook}-v3.list > ${hook}-v3.list.new
mv ${hook}-v3.list.new ${hook}-v3.list
fi
}
testrun() {
observehook install stuff -t stable
testfileequal "${hook}-v2.list" 'libsame - < 1 **CONFIGURE**
toolkit - < 1 **CONFIGURE**
stuff - < 1 **CONFIGURE**'
stuff - < 1 **CONFIGURE**
toolkit - < 1 **CONFIGURE**'
testfileequal "${hook}-v3.list" 'libsame - - none < 1 amd64 same **CONFIGURE**
toolkit - - none < 1 all foreign **CONFIGURE**
stuff - - none < 1 amd64 none **CONFIGURE**'
stuff - - none < 1 amd64 none **CONFIGURE**
toolkit - - none < 1 all foreign **CONFIGURE**'
observehook install stuff -t unstable
testfileequal "${hook}-v2.list" 'libsame 1 < 2 **CONFIGURE**
toolkit 1 < 2 **CONFIGURE**
stuff 1 < 2 **CONFIGURE**'
stuff 1 < 2 **CONFIGURE**
toolkit 1 < 2 **CONFIGURE**'
testfileequal "${hook}-v3.list" 'libsame 1 amd64 same < 2 amd64 same **CONFIGURE**
toolkit 1 all foreign < 2 amd64 foreign **CONFIGURE**
stuff 1 amd64 none < 2 amd64 none **CONFIGURE**'
stuff 1 amd64 none < 2 amd64 none **CONFIGURE**
toolkit 1 all foreign < 2 amd64 foreign **CONFIGURE**'
observehook install stuff:i386 -t unstable
testfileequal "${hook}-v2.list" 'stuff 2 > - **REMOVE**
libsame - < 2 **CONFIGURE**
stuff - < 2 **CONFIGURE**'
testfileequal "${hook}-v3.list" 'stuff 2 amd64 none > - - none **REMOVE**
libsame - - none < 2 i386 same **CONFIGURE**
stuff - - none < 2 i386 none **CONFIGURE**'
testfileequal "${hook}-v2.list" 'libsame - < 2 **CONFIGURE**
stuff - < 2 **CONFIGURE**
stuff 2 > - **REMOVE**'
testfileequal "${hook}-v3.list" 'libsame - - none < 2 i386 same **CONFIGURE**
stuff - - none < 2 i386 none **CONFIGURE**
stuff 2 amd64 none > - - none **REMOVE**'
observehook remove libsame
testfileequal "${hook}-v2.list" 'libsame 2 > - **REMOVE**'
......@@ -82,30 +91,30 @@ stuff - - none < 2 i386 none **CONFIGURE**'
observehook install stuff:i386/stable libsame:i386/stable toolkit/stable
testfileequal "${hook}-v2.list" 'libsame 2 > 1 **CONFIGURE**
toolkit 2 > 1 **CONFIGURE**
stuff 2 > 1 **CONFIGURE**'
stuff 2 > 1 **CONFIGURE**
toolkit 2 > 1 **CONFIGURE**'
testfileequal "${hook}-v3.list" 'libsame 2 i386 same > 1 i386 same **CONFIGURE**
toolkit 2 amd64 foreign > 1 all foreign **CONFIGURE**
stuff 2 i386 none > 1 i386 none **CONFIGURE**'
stuff 2 i386 none > 1 i386 none **CONFIGURE**
toolkit 2 amd64 foreign > 1 all foreign **CONFIGURE**'
observehook install 'libsame:*'
testfileequal "${hook}-v2.list" 'libsame 1 < 2 **CONFIGURE**
libsame - < 2 **CONFIGURE**
toolkit 1 < 2 **CONFIGURE**
stuff 1 < 2 **CONFIGURE**'
testfileequal "${hook}-v3.list" 'libsame 1 i386 same < 2 i386 same **CONFIGURE**
libsame - - none < 2 amd64 same **CONFIGURE**
toolkit 1 all foreign < 2 amd64 foreign **CONFIGURE**
stuff 1 i386 none < 2 i386 none **CONFIGURE**'
testfileequal "${hook}-v2.list" 'libsame - < 2 **CONFIGURE**
libsame 1 < 2 **CONFIGURE**
stuff 1 < 2 **CONFIGURE**
toolkit 1 < 2 **CONFIGURE**'
testfileequal "${hook}-v3.list" 'libsame - - none < 2 amd64 same **CONFIGURE**
libsame 1 i386 same < 2 i386 same **CONFIGURE**
stuff 1 i386 none < 2 i386 none **CONFIGURE**
toolkit 1 all foreign < 2 amd64 foreign **CONFIGURE**'
observehook purge stuff:i386 'libsame:*' toolkit
testfileequal "${hook}-v2.list" 'libsame 2 > - **REMOVE**
stuff 2 > - **REMOVE**
libsame 2 > - **REMOVE**
stuff 2 > - **REMOVE**
toolkit 2 > - **REMOVE**'
testfileequal "${hook}-v3.list" 'libsame 2 amd64 same > - - none **REMOVE**
stuff 2 i386 none > - - none **REMOVE**
libsame 2 i386 same > - - none **REMOVE**
stuff 2 i386 none > - - none **REMOVE**
toolkit 2 amd64 foreign > - - none **REMOVE**'
observehook install confpkg
......@@ -127,10 +136,17 @@ toolkit 2 amd64 foreign > - - none **REMOVE**'
dpkg -l confpkg 2>/dev/null | grep -q '^rc' && msgfail || msgpass
}
enablehookversion 2
enablehookversion 3
testrun
runwithplanner()
{
msgmsg 'Running with planner' "$1"
planner="$1"
enablehookversion 2
enablehookversion 3
testrun
enablehookversion 2 13
enablehookversion 3 13
testrun
}
enablehookversion 2 13
enablehookversion 3 13
testrun
runwithplanner 'apt'
......@@ -71,10 +71,10 @@ Inst lib32nss-mdns [0.9-1] (0.10-6 unstable [amd64]) []
Inst libnss-mdns [0.9-1] (0.10-6 unstable [amd64]) []
Inst libnss-mdns:i386 (0.10-6 unstable [i386]) []
Inst libnss-mdns-i386:i386 (0.10-6 unstable [i386])
Conf libnss-mdns:i386 (0.10-6 unstable [i386])
Conf lib32nss-mdns (0.10-6 unstable [amd64])
Conf libnss-mdns (0.10-6 unstable [amd64])
Conf libnss-mdns-i386:i386 (0.10-6 unstable [i386])
Conf lib32nss-mdns (0.10-6 unstable [amd64])' aptget dist-upgrade -s
Conf libnss-mdns:i386 (0.10-6 unstable [i386])
Conf libnss-mdns-i386:i386 (0.10-6 unstable [i386])' aptget dist-upgrade -s
testsuccessequal 'Reading package lists...
Building dependency tree...
......
......@@ -33,11 +33,11 @@ Inst libgl1-foo-glx:i386 [1] (2 stable [i386]) [foo-driver:amd64 on libgl1-foo-g
Inst foo-driver [1] (2 stable [amd64]) []
Inst libfoo:i386 [1] (2 stable [i386]) [libfoo:amd64 on libfoo:i386] [libfoo:i386 on libfoo:amd64] [libfoo:amd64 ]
Inst libfoo [1] (2 stable [amd64])
Conf libfoo:i386 (2 stable [i386])
Conf libfoo (2 stable [amd64])
Conf libgl1-foo-glx:i386 (2 stable [i386])
Conf libgl1-foo-glx (2 stable [amd64])
Conf foo-driver (2 stable [amd64])' 'Reading package lists...
Conf libgl1-foo-glx:i386 (2 stable [i386])
Conf foo-driver (2 stable [amd64])
Conf libfoo:i386 (2 stable [i386])
Conf libfoo (2 stable [amd64])' 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be upgraded:
......@@ -48,10 +48,10 @@ Inst libgl1-foo-glx:i386 [1] (2 stable [i386]) [foo-driver:amd64 on libgl1-foo-g
Inst foo-driver [1] (2 stable [amd64]) []
Inst libfoo:i386 [1] (2 stable [i386]) [libfoo:amd64 on libfoo:i386] [libfoo:i386 on libfoo:amd64] [libfoo:amd64 ]
Inst libfoo [1] (2 stable [amd64])
Conf libfoo:i386 (2 stable [i386])
Conf libfoo (2 stable [amd64])
Conf libgl1-foo-glx:i386 (2 stable [i386])
Conf libgl1-foo-glx (2 stable [amd64])
Conf foo-driver (2 stable [amd64])' aptget dist-upgrade -s
Conf libgl1-foo-glx:i386 (2 stable [i386])
Conf foo-driver (2 stable [amd64])
Conf libfoo:i386 (2 stable [i386])
Conf libfoo (2 stable [amd64])' aptget dist-upgrade -s
testsuccess aptget dist-upgrade -y -o Debug::pkgPackageManager=1 -o Debug::pkgOrderList=1
......@@ -33,7 +33,7 @@ Inst maas-region-controller [2.0.0~alpha3+bzr4810-0ubuntu1] (2.0.0~alpha4+bzr484
Remv maas-region-controller-min [2.0.0~alpha3+bzr4810-0ubuntu1] []
Inst maas-common [2.0.0~alpha3+bzr4810-0ubuntu1] (2.0.0~alpha4+bzr4843-0ubuntu1~xenial2 unstable [all]) []
Inst maas-region-api (2.0.0~alpha4+bzr4843-0ubuntu1~xenial2 unstable [amd64])
Conf maas-region-controller (2.0.0~alpha4+bzr4843-0ubuntu1~xenial2 unstable [all])
Conf maas-common (2.0.0~alpha4+bzr4843-0ubuntu1~xenial2 unstable [all])
Conf maas-region-api (2.0.0~alpha4+bzr4843-0ubuntu1~xenial2 unstable [amd64])
Conf maas-region-controller (2.0.0~alpha4+bzr4843-0ubuntu1~xenial2 unstable [all])' \
Conf maas-region-api (2.0.0~alpha4+bzr4843-0ubuntu1~xenial2 unstable [amd64])' \
aptget dist-upgrade -s
......@@ -25,5 +25,5 @@ The following packages will be upgraded:
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst libcups2 [1] (2 unstable [amd64]) [libcups2:amd64 on libcups2:i386] [libcups2:i386 on libcups2:amd64] [libcups2:i386 ]
Inst libcups2:i386 [1] (2 unstable [i386])
Conf libcups2:i386 (2 unstable [i386])
Conf libcups2 (2 unstable [amd64])' aptget install -s libcups2:i386
Conf libcups2 (2 unstable [amd64])
Conf libcups2:i386 (2 unstable [i386])' aptget install -s libcups2:i386
......@@ -17,7 +17,7 @@ setupaptarchive
testqualifier() {
msgtest 'Test with' $1 'for correct qualifier mode' $2
#aptget install $1 -qq -o Debug::pkgDPkgPM=1 || true
aptget install $1 -qq -o Debug::pkgDPkgPM=1 -o Dpkg::ExplicitLastConfigure=1 > testqualifier.output 2>&1 || true
aptget install $1 -qq -o Debug::pkgDPkgPM=1 -o Dpkg::ExplicitLastConfigure=1 -o PackageManager::Configure=all > testqualifier.output 2>&1 || true
GIVEN="$(grep -v -- '--unpack' testqualifier.output | sed -ne 's/^.*--[rpc][^ ]* \([^ ]*\).*$/\1/p')"
if [ "$GIVEN" = "$2" ]; then
msgpass
......
......@@ -45,9 +45,7 @@ Planner: internal' head -n 6 "$EIPPLOG"
aptinternalplanner < "$EIPPLOG" > planner.log || true
testsuccessequal 'Remove: 6
Unpack: 2
Unpack: 4
Configure: 2
Configure: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log
Unpack: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log
rm -f "$EIPPLOG"
testsuccess aptget install foo -s --reinstall
......@@ -59,8 +57,7 @@ Architectures: amd64
ReInstall: foo:amd64
Planner: internal' head -n 5 "$EIPPLOG"
aptinternalplanner < "$EIPPLOG" > planner.log || true
testsuccessequal 'Unpack: 4
Configure: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log
testsuccessequal 'Unpack: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log
rm -f "$EIPPLOG"
testsuccess aptget purge foo -s
......
......@@ -144,7 +144,7 @@ Inst foo-same [2.0] (4.0 unstable [i386]) [foo-same:i386 on foo-same:amd64] [foo
Inst foo-same:amd64 [2.0] (4.0 unstable [amd64])
Inst foo-same-breaker-3 (1.0 unstable [i386])
Inst foo-same-provider (1.0 unstable [i386])
Conf foo-same:amd64 (4.0 unstable [amd64])
Conf foo-same (4.0 unstable [i386])
Conf foo-same:amd64 (4.0 unstable [amd64])
Conf foo-same-breaker-3 (1.0 unstable [i386])
Conf foo-same-provider (1.0 unstable [i386])' aptget install foo-same-provider foo-same-breaker-3 -s
......@@ -144,7 +144,7 @@ Inst foo-same [2.0] (4.0 unstable [i386]) [foo-same:i386 on foo-same:amd64] [foo
Inst foo-same:amd64 [2.0] (4.0 unstable [amd64])
Inst foo-same-breaker-3 (1.0 unstable [i386])
Inst foo-same-provider (1.0 unstable [i386])
Conf foo-same:amd64 (4.0 unstable [amd64])
Conf foo-same (4.0 unstable [i386])
Conf foo-same:amd64 (4.0 unstable [amd64])
Conf foo-same-breaker-3 (1.0 unstable [i386])
Conf foo-same-provider (1.0 unstable [i386])' aptget install foo-same-provider foo-same-breaker-3 -s
......@@ -72,11 +72,15 @@ checkpurge() {
tail -n +3 rootdir/var/log/apt/term.log | head -n -1 > terminal.log
testfileequal 'terminal.log' "$(cat terminal.output)"
testequal "startup packages purge
testequal "startup packages remove
status installed $PKGNAME 1.0
remove $PKGNAME 1.0 <none>
status half-configured $PKGNAME 1.0
status half-installed $PKGNAME 1.0
status config-files $PKGNAME 1.0
status config-files $PKGNAME 1.0
startup packages purge
remove $PKGNAME 1.0 <none>
purge $PKGNAME 1.0 <none>
status config-files $PKGNAME 1.0
status config-files $PKGNAME 1.0
......
......@@ -59,10 +59,10 @@ Inst fine-installed [1] (2 unstable [amd64]) [fine-installed:amd64 on fine-insta
Inst fine-installed:i386 [1] (2 unstable [i386])
Inst out-of-sync-gone-foreign [1] (2 unstable [amd64])
Inst out-of-sync-gone-native:i386 [1] (2 unstable [i386])
Conf fine:i386 (2 unstable [i386])
Conf fine (2 unstable [amd64])
Conf fine-installed:i386 (2 unstable [i386])
Conf fine:i386 (2 unstable [i386])
Conf fine-installed (2 unstable [amd64])
Conf fine-installed:i386 (2 unstable [i386])
Conf out-of-sync-gone-foreign (2 unstable [amd64])
Conf out-of-sync-gone-native:i386 (2 unstable [i386])' aptget dist-upgrade -s #-o Debug::pkgDepCache::Marker=1
......@@ -89,10 +89,10 @@ Inst fine-installed [1] (3 experimental [amd64]) [fine-installed:amd64 on fine-i
Inst fine-installed:i386 [1] (3 experimental [i386])
Inst out-of-sync-gone-foreign [1] (2 unstable [amd64])
Inst out-of-sync-gone-native:i386 [1] (2 unstable [i386])
Conf fine:i386 (3 experimental [i386])
Conf fine (3 experimental [amd64])
Conf fine-installed:i386 (3 experimental [i386])
Conf fine:i386 (3 experimental [i386])
Conf fine-installed (3 experimental [amd64])
Conf fine-installed:i386 (3 experimental [i386])
Conf out-of-sync-gone-foreign (2 unstable [amd64])
Conf out-of-sync-gone-native:i386 (2 unstable [i386])' aptget dist-upgrade -s #-o Debug::pkgDepCache::Marker=1
......
......@@ -39,11 +39,11 @@ Inst libreoffice-style-galaxy [3] (4 sid [amd64]) [libreoffice-common:amd64 on l
Inst libreoffice-core [3] (4 sid [amd64]) [libreoffice-core:amd64 on libreoffice-common:amd64] [libreoffice-common:amd64 on libreoffice-core:amd64] [libreoffice-common:amd64 on libreoffice-style-galaxy:amd64] [libreoffice-common:amd64 ]
Inst libreoffice-common [3] (4 sid [all]) []
Inst ure (4 sid [amd64])
Conf ure (4 sid [amd64])
Conf libreoffice-common (4 sid [all])
Conf libreoffice-core (4 sid [amd64])
Conf libreoffice (4 sid [amd64])
Conf libreoffice-style-galaxy (4 sid [amd64])
Conf libreoffice (4 sid [amd64])' 'Reading package lists...
Conf libreoffice-core (4 sid [amd64])
Conf libreoffice-common (4 sid [all])
Conf ure (4 sid [amd64])' 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following NEW packages will be installed:
......@@ -56,8 +56,8 @@ Inst libreoffice-style-galaxy [3] (4 sid [amd64]) [libreoffice-common:amd64 on l
Inst libreoffice-core [3] (4 sid [amd64]) [libreoffice-common:amd64 on libreoffice-core:amd64] [libreoffice-common:amd64 on libreoffice-style-galaxy:amd64] [libreoffice-core:amd64 on libreoffice-common:amd64] [libreoffice-common:amd64 ]
Inst libreoffice-common [3] (4 sid [all]) []
Inst ure (4 sid [amd64])
Conf ure (4 sid [amd64])
Conf libreoffice-common (4 sid [all])
Conf libreoffice-core (4 sid [amd64])
Conf libreoffice (4 sid [amd64])
Conf libreoffice-style-galaxy (4 sid [amd64])
Conf libreoffice (4 sid [amd64])' aptget dist-upgrade -s
Conf libreoffice-core (4 sid [amd64])
Conf libreoffice-common (4 sid [all])
Conf ure (4 sid [amd64])' aptget dist-upgrade -s
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment