diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2012-07-04 23:54:48 +0200 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2012-07-04 23:54:48 +0200 |
commit | b855a40058f99a0f10184c410b3bbf3c2ee4ae83 (patch) | |
tree | 20e069af2d3a7fbc013a925dc126db41fe59ef18 /cmdline/apt-mark.cc | |
parent | 8e5d47a3a4e735835498574a58e0a33de04a0377 (diff) |
* 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)
Diffstat (limited to 'cmdline/apt-mark.cc')
-rw-r--r-- | cmdline/apt-mark.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/cmdline/apt-mark.cc b/cmdline/apt-mark.cc index 2a093c55a..c5b7ca496 100644 --- a/cmdline/apt-mark.cc +++ b/cmdline/apt-mark.cc @@ -291,14 +291,26 @@ bool DoHold(CommandLine &CmdL) 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()); } } |