FILE* dpkg = fdopen(external[1], "w");
for (APT::PackageList::iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
{
+ if (dpkgMultiArch == false)
+ fprintf(dpkg, "%s", Pkg.FullName(true).c_str());
+ else
+ {
+ if (Pkg->CurrentVer != 0)
+ fprintf(dpkg, "%s:%s", Pkg.Name(), Pkg.CurrentVer().Arch());
+ else if (Pkg.VersionList().end() == false)
+ fprintf(dpkg, "%s:%s", Pkg.Name(), Pkg.VersionList().Arch());
+ else
+ fprintf(dpkg, "%s", Pkg.FullName(false).c_str());
+ }
+
if (MarkHold == true)
{
- fprintf(dpkg, "%s hold\n", Pkg.FullName(!dpkgMultiArch).c_str());
+ fprintf(dpkg, " hold\n");
ioprintf(c1out,_("%s set on hold.\n"), Pkg.FullName(true).c_str());
}
else
{
- fprintf(dpkg, "%s install\n", Pkg.FullName(!dpkgMultiArch).c_str());
+ fprintf(dpkg, " install\n");
ioprintf(c1out,_("Canceled hold on %s.\n"), Pkg.FullName(true).c_str());
}
}
* ftparchive/writer.cc:
- handle the APT::FTPArchive::Packages::SHA512 option correctly instead
of overriding SHA256, thanks Christian Marillat! (Closes: #680252)
+ * cmdline/apt-mark.cc:
+ - arch:all packages are treated as arch:native packages, but dpkg
+ expects pkg:all for selections, so use the arch of the installed
+ version instead of the package structure if possible.
+ Thanks to Stepan Golosunov for the report! (Closes: #680041)
-- David Kalnischkies <kalnischkies@gmail.com> Sun, 01 Jul 2012 08:20:57 +0200
--- /dev/null
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64'
+
+insertinstalledpackage 'pkgarch' 'amd64' '1'
+insertinstalledpackage 'pkgall' 'all' '1'
+
+insertpackage 'unstable' 'pkgarch' 'amd64' '2'
+insertpackage 'unstable' 'pkgall' 'all' '2'
+
+setupaptarchive
+
+runtests() {
+ testempty aptmark showhold
+
+ testequal 'Reading package lists...
+Building dependency tree...
+The following packages will be upgraded:
+ pkgall pkgarch
+2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+After this operation, 0 B of additional disk space will be used.
+E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only
+
+ testequal 'pkgarch set on hold.' aptmark hold pkgarch
+ testequal 'pkgarch' aptmark showhold
+
+ testequal 'Reading package lists...
+Building dependency tree...
+The following packages have been kept back:
+ pkgarch
+The following packages will be upgraded:
+ pkgall
+1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
+After this operation, 0 B of additional disk space will be used.
+E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only
+
+ testequal 'Canceled hold on pkgarch.' aptmark unhold pkgarch
+ testempty aptmark showhold
+
+ testequal 'Reading package lists...
+Building dependency tree...
+The following packages will be upgraded:
+ pkgall pkgarch
+2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+After this operation, 0 B of additional disk space will be used.
+E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only
+
+ testequal 'pkgall set on hold.' aptmark hold pkgall
+ testequal 'pkgall' aptmark showhold
+
+ testequal 'Reading package lists...
+Building dependency tree...
+The following packages have been kept back:
+ pkgall
+The following packages will be upgraded:
+ pkgarch
+1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
+After this operation, 0 B of additional disk space will be used.
+E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only
+
+ testequal 'Canceled hold on pkgall.' aptmark unhold pkgall
+ testempty aptmark showhold
+}
+# single-arch
+runtests
+# multi-arch
+configarchitecture 'amd64' 'i386'
+runtests