Package: aptitude Version: 0.8.3-1 Severity: wishlist Tags: patch Dear Maintainer,
When upgrading packages, aptitude users might like to know whether each upgrade represents a newer upstream version of the package, or is merely a Debian-specific change. This can be determined by comparing the current and candidate versions in the rightmost two columns of the package listing, but I thought it might be easier to see at a glance if these two kinds of upgrades were colored differently in the UI. The attached patch (directly importable into git) makes upgrades that represent a newer upstream version appear in bold, while upgrades that represent a Debian revision bump appear as before. Thanks, Keshav
>From a75130149a4e838d090d5af3158868d24b0b2c7d Mon Sep 17 00:00:00 2001 From: Keshav Kini <keshav.k...@gmail.com> Date: Thu, 15 Sep 2016 20:34:35 -0700 Subject: [PATCH] Distinguish Debian-specific and upstream upgrades When upgrading packages, aptitude users might like to know whether each upgrade represents a newer upstream version of the package, or is merely a Debian-specific change. This can be determined by comparing the current and candidate versions in the rightmost two columns of the package listing, but I thought it might be easier to see at a glance if these two kinds of upgrades were colored differently in the UI. This commit makes upgrades that represent a newer upstream version appear in bold, while upgrades that represent a Debian revision bump appear as before. --- src/defaults.cc | 36 +++++++++++++++++++----------------- src/pkg_item.cc | 11 +++++++++-- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/defaults.cc b/src/defaults.cc index 1747f90..f0ad047 100644 --- a/src/defaults.cc +++ b/src/defaults.cc @@ -107,23 +107,25 @@ static void init_keybindings() static void init_styles() { - cw::set_style("PkgNotInstalled", cw::style()); - cw::set_style("PkgIsInstalled", cw::style_attrs_on(A_BOLD)); - cw::set_style("PkgToHold", cw::style_fg(COLOR_WHITE) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToRemove", cw::style_fg(COLOR_MAGENTA) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgBroken", cw::style_fg(COLOR_RED) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToInstall", cw::style_fg(COLOR_GREEN) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToUpgrade", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToDowngrade", cw::style_fg(COLOR_YELLOW) + cw::style_attrs_on(A_REVERSE)); - - cw::set_style("PkgNotInstalledHighlighted", cw::style_attrs_flip(A_REVERSE)); - cw::set_style("PkgIsInstalledHighlighted", cw::style_attrs_on(A_BOLD) + cw::style_attrs_flip(A_REVERSE)); - cw::set_style("PkgToHoldHighlighted", cw::style_fg(COLOR_WHITE)); - cw::set_style("PkgToRemoveHighlighted", cw::style_fg(COLOR_MAGENTA)); - cw::set_style("PkgBrokenHighlighted", cw::style_fg(COLOR_RED)); - cw::set_style("PkgToInstallHighlighted", cw::style_fg(COLOR_GREEN)); - cw::set_style("PkgToUpgradeHighlighted", cw::style_fg(COLOR_CYAN)); - cw::set_style("PkgToDowngradeHighlighted", cw::style_fg(COLOR_YELLOW)); + cw::set_style("PkgNotInstalled", cw::style()); + cw::set_style("PkgIsInstalled", cw::style_attrs_on(A_BOLD)); + cw::set_style("PkgToHold", cw::style_fg(COLOR_WHITE) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToRemove", cw::style_fg(COLOR_MAGENTA) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgBroken", cw::style_fg(COLOR_RED) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToInstall", cw::style_fg(COLOR_GREEN) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToUpgradeUpstream", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_REVERSE | A_BOLD)); + cw::set_style("PkgToUpgradeDebian", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToDowngrade", cw::style_fg(COLOR_YELLOW) + cw::style_attrs_on(A_REVERSE)); + + cw::set_style("PkgNotInstalledHighlighted", cw::style_attrs_flip(A_REVERSE)); + cw::set_style("PkgIsInstalledHighlighted", cw::style_attrs_on(A_BOLD) + cw::style_attrs_flip(A_REVERSE)); + cw::set_style("PkgToHoldHighlighted", cw::style_fg(COLOR_WHITE)); + cw::set_style("PkgToRemoveHighlighted", cw::style_fg(COLOR_MAGENTA)); + cw::set_style("PkgBrokenHighlighted", cw::style_fg(COLOR_RED)); + cw::set_style("PkgToInstallHighlighted", cw::style_fg(COLOR_GREEN)); + cw::set_style("PkgToUpgradeUpstreamHighlighted", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_BOLD)); + cw::set_style("PkgToUpgradeDebianHighlighted", cw::style_fg(COLOR_CYAN)); + cw::set_style("PkgToDowngradeHighlighted", cw::style_fg(COLOR_YELLOW)); cw::set_style("DepBroken", cw::style_fg(COLOR_BLACK)+cw::style_bg(COLOR_RED)); diff --git a/src/pkg_item.cc b/src/pkg_item.cc index 459191e..cbefa60 100644 --- a/src/pkg_item.cc +++ b/src/pkg_item.cc @@ -44,6 +44,8 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/error.h> +#include <apt-pkg/version.h> +#include <apt-pkg/pkgsystem.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> @@ -330,8 +332,13 @@ cw::style pkg_item::pkg_style(pkgCache::PkgIterator package, bool highlighted) return cw::get_style(MAYBE_HIGHLIGHTED("PkgToRemove")); else if(state.InstBroken()) return cw::get_style(MAYBE_HIGHLIGHTED("PkgBroken")); - else if(state.Upgrade()) - return cw::get_style(MAYBE_HIGHLIGHTED("PkgToUpgrade")); + else if(state.Upgrade()) { + if (_system->VS->UpstreamVersion(state.CurVersion) == + _system->VS->UpstreamVersion(state.CandVersion)) + return cw::get_style(MAYBE_HIGHLIGHTED("PkgToUpgradeDebian")); + else + return cw::get_style(MAYBE_HIGHLIGHTED("PkgToUpgradeUpstream")); + } else if(state.Downgrade()) return cw::get_style(MAYBE_HIGHLIGHTED("PkgToDowngrade")); else if(package.CurrentVer().end()) -- 2.9.3
-- Package-specific info: Terminal: rxvt-unicode-256color $DISPLAY is set. which aptitude: /usr/bin/aptitude aptitude version information: aptitude 0.8.3 Compiler: g++ 6.1.1 20160802 Compiled against: apt version 5.0.0 NCurses version 6.0 libsigc++ version: 2.8.0 Gtk+ support disabled. Qt support disabled. Current library versions: NCurses version: ncurses 6.0.20160625 cwidget version: 0.5.17 Apt version: 5.0.0 aptitude linkage: linux-vdso.so.1 (0x00007fffacf1e000) libapt-pkg.so.5.0 => /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0 (0x00007f8b4cf74000) libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007f8b4cd44000) libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f8b4cb1a000) libsigc-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0 (0x00007f8b4c913000) libcwidget.so.3 => /usr/lib/x86_64-linux-gnu/libcwidget.so.3 (0x00007f8b4c616000) libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f8b4c311000) libboost_iostreams.so.1.61.0 => /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.61.0 (0x00007f8b4c0f9000) libboost_filesystem.so.1.61.0 => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.61.0 (0x00007f8b4bee0000) libboost_system.so.1.61.0 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.61.0 (0x00007f8b4bcdc000) libxapian.so.22 => /usr/lib/x86_64-linux-gnu/libxapian.so.22 (0x00007f8b4b8d8000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8b4b6bb000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8b4b338000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8b4b034000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8b4ae1d000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8b4aa7e000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8b4a87a000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f8b4a663000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8b4a446000) libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f8b4a236000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f8b4a013000) liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f8b49e01000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8b49bf9000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f8b499f2000) /lib64/ld-linux-x86-64.so.2 (0x000055a82d444000) -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (990, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Init: systemd (via /run/systemd/system) Versions of packages aptitude depends on: ii aptitude-common 0.8.3-1 ii libapt-pkg5.0 1.3~rc4 ii libboost-filesystem1.61.0 1.61.0+dfsg-2.1 ii libboost-iostreams1.61.0 1.61.0+dfsg-2.1 ii libboost-system1.61.0 1.61.0+dfsg-2.1 ii libc6 2.24-1 ii libcwidget3v5 0.5.17-4+b1 ii libgcc1 1:6.2.0-2 ii libncursesw5 6.0+20160625-1 ii libsigc++-2.0-0v5 2.8.0-2 ii libsqlite3-0 3.14.1-1 ii libstdc++6 6.2.0-2 ii libtinfo5 6.0+20160625-1 ii libxapian22v5 1.2.23-1 Versions of packages aptitude recommends: ii libparse-debianchangelog-perl 1.2.0-10 ii sensible-utils 0.0.9 Versions of packages aptitude suggests: ii apt-xapian-index 0.48 pn aptitude-doc-en | aptitude-doc <none> pn debtags <none> ii tasksel 3.35 -- no debconf information ===File /home/fs/src/aptitude/0001-Distinguish-Debian-specific-and-upstream-upgrades.patch=== >From a75130149a4e838d090d5af3158868d24b0b2c7d Mon Sep 17 00:00:00 2001 From: Keshav Kini <keshav.k...@gmail.com> Date: Thu, 15 Sep 2016 20:34:35 -0700 Subject: [PATCH] Distinguish Debian-specific and upstream upgrades When upgrading packages, aptitude users might like to know whether each upgrade represents a newer upstream version of the package, or is merely a Debian-specific change. This can be determined by comparing the current and candidate versions in the rightmost two columns of the package listing, but I thought it might be easier to see at a glance if these two kinds of upgrades were colored differently in the UI. This commit makes upgrades that represent a newer upstream version appear in bold, while upgrades that represent a Debian revision bump appear as before. --- src/defaults.cc | 36 +++++++++++++++++++----------------- src/pkg_item.cc | 11 +++++++++-- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/defaults.cc b/src/defaults.cc index 1747f90..f0ad047 100644 --- a/src/defaults.cc +++ b/src/defaults.cc @@ -107,23 +107,25 @@ static void init_keybindings() static void init_styles() { - cw::set_style("PkgNotInstalled", cw::style()); - cw::set_style("PkgIsInstalled", cw::style_attrs_on(A_BOLD)); - cw::set_style("PkgToHold", cw::style_fg(COLOR_WHITE) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToRemove", cw::style_fg(COLOR_MAGENTA) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgBroken", cw::style_fg(COLOR_RED) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToInstall", cw::style_fg(COLOR_GREEN) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToUpgrade", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_REVERSE)); - cw::set_style("PkgToDowngrade", cw::style_fg(COLOR_YELLOW) + cw::style_attrs_on(A_REVERSE)); - - cw::set_style("PkgNotInstalledHighlighted", cw::style_attrs_flip(A_REVERSE)); - cw::set_style("PkgIsInstalledHighlighted", cw::style_attrs_on(A_BOLD) + cw::style_attrs_flip(A_REVERSE)); - cw::set_style("PkgToHoldHighlighted", cw::style_fg(COLOR_WHITE)); - cw::set_style("PkgToRemoveHighlighted", cw::style_fg(COLOR_MAGENTA)); - cw::set_style("PkgBrokenHighlighted", cw::style_fg(COLOR_RED)); - cw::set_style("PkgToInstallHighlighted", cw::style_fg(COLOR_GREEN)); - cw::set_style("PkgToUpgradeHighlighted", cw::style_fg(COLOR_CYAN)); - cw::set_style("PkgToDowngradeHighlighted", cw::style_fg(COLOR_YELLOW)); + cw::set_style("PkgNotInstalled", cw::style()); + cw::set_style("PkgIsInstalled", cw::style_attrs_on(A_BOLD)); + cw::set_style("PkgToHold", cw::style_fg(COLOR_WHITE) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToRemove", cw::style_fg(COLOR_MAGENTA) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgBroken", cw::style_fg(COLOR_RED) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToInstall", cw::style_fg(COLOR_GREEN) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToUpgradeUpstream", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_REVERSE | A_BOLD)); + cw::set_style("PkgToUpgradeDebian", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_REVERSE)); + cw::set_style("PkgToDowngrade", cw::style_fg(COLOR_YELLOW) + cw::style_attrs_on(A_REVERSE)); + + cw::set_style("PkgNotInstalledHighlighted", cw::style_attrs_flip(A_REVERSE)); + cw::set_style("PkgIsInstalledHighlighted", cw::style_attrs_on(A_BOLD) + cw::style_attrs_flip(A_REVERSE)); + cw::set_style("PkgToHoldHighlighted", cw::style_fg(COLOR_WHITE)); + cw::set_style("PkgToRemoveHighlighted", cw::style_fg(COLOR_MAGENTA)); + cw::set_style("PkgBrokenHighlighted", cw::style_fg(COLOR_RED)); + cw::set_style("PkgToInstallHighlighted", cw::style_fg(COLOR_GREEN)); + cw::set_style("PkgToUpgradeUpstreamHighlighted", cw::style_fg(COLOR_CYAN) + cw::style_attrs_on(A_BOLD)); + cw::set_style("PkgToUpgradeDebianHighlighted", cw::style_fg(COLOR_CYAN)); + cw::set_style("PkgToDowngradeHighlighted", cw::style_fg(COLOR_YELLOW)); cw::set_style("DepBroken", cw::style_fg(COLOR_BLACK)+cw::style_bg(COLOR_RED)); diff --git a/src/pkg_item.cc b/src/pkg_item.cc index 459191e..cbefa60 100644 --- a/src/pkg_item.cc +++ b/src/pkg_item.cc @@ -44,6 +44,8 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/error.h> +#include <apt-pkg/version.h> +#include <apt-pkg/pkgsystem.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> @@ -330,8 +332,13 @@ cw::style pkg_item::pkg_style(pkgCache::PkgIterator package, bool highlighted) return cw::get_style(MAYBE_HIGHLIGHTED("PkgToRemove")); else if(state.InstBroken()) return cw::get_style(MAYBE_HIGHLIGHTED("PkgBroken")); - else if(state.Upgrade()) - return cw::get_style(MAYBE_HIGHLIGHTED("PkgToUpgrade")); + else if(state.Upgrade()) { + if (_system->VS->UpstreamVersion(state.CurVersion) == + _system->VS->UpstreamVersion(state.CandVersion)) + return cw::get_style(MAYBE_HIGHLIGHTED("PkgToUpgradeDebian")); + else + return cw::get_style(MAYBE_HIGHLIGHTED("PkgToUpgradeUpstream")); + } else if(state.Downgrade()) return cw::get_style(MAYBE_HIGHLIGHTED("PkgToDowngrade")); else if(package.CurrentVer().end()) -- 2.9.3 ============================================================