Package: release.debian.org
Severity: normal
Tags: bookworm
X-Debbugs-Cc: prometheus-node-exporter-collect...@packages.debian.org, Debian 
Go Packaging Team <team+pkg...@tracker.debian.org>, Daniel Swarbrick 
<dswarbr...@debian.org>, Martina Ferrari <t...@debian.org>
Control: affects -1 + src:prometheus-node-exporter-collectors
User: release.debian....@packages.debian.org
Usertags: pu

[ Reason ]
The version in Debian stable suffers from:
https://github.com/prometheus-community/node-exporter-textfile-collector-scripts/issues/193
which causes upgrades no to appear in apt_upgrades_pending but only in
apt_upgrades_held. This is tracked in debian as #1077694

This was fixed with upstream PR:
https://github.com/prometheus-community/node-exporter-textfile-collector-scripts/pull/207

[ Impact ]
This bug leads to the collector not reporting on pending package upgrades and
can lead to system administrators miss to install critical software updates

[ Tests ]
This change was installed on my (siretart's) homelab cluster and confirmed to 
work there.

[ Risks ]
low. The code change is easy to review and understand.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

diff --git a/debian/changelog b/debian/changelog
index 3233700..b514460 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+prometheus-node-exporter-collectors (0.0~git20230203.6f710f8-1+deb12u3) 
bookworm; urgency=medium
+
+  * Team upload
+  * apt_info.py: fix apt_upgrades_pending and apt_upgrades_held, Closes: 
#1077694
+
+ -- Reinhard Tartler <siret...@tauware.de>  Wed, 06 Nov 2024 20:15:44 -0500
+
 prometheus-node-exporter-collectors (0.0~git20230203.6f710f8-1+deb12u2) 
bookworm; urgency=medium
 
   * Team upload
diff --git 
a/debian/patches/0001-apt_info.py-fix-apt_upgrades_pending-and-apt_upgrade.patch
 
b/debian/patches/0001-apt_info.py-fix-apt_upgrades_pending-and-apt_upgrade.patch
new file mode 100644
index 0000000..6af357f
--- /dev/null
+++ 
b/debian/patches/0001-apt_info.py-fix-apt_upgrades_pending-and-apt_upgrade.patch
@@ -0,0 +1,35 @@
+From: Reinhard Tartler <siret...@tauware.de>
+Date: Sat, 2 Nov 2024 08:20:41 -0400
+Subject: apt_info.py: fix apt_upgrades_pending and apt_upgrades_held
+
+Backported from
+https://github.com/prometheus-community/node-exporter-textfile-collector-scripts/pull/207
+---
+ apt_info.py | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/apt_info.py b/apt_info.py
+index 82ea4e5..804f89c 100755
+--- a/apt_info.py
++++ b/apt_info.py
+@@ -57,7 +57,7 @@ def _write_pending_upgrades(cache):
+     # only one upgrade, not two). See the following issue for more details:
+     # 
https://github.com/prometheus-community/node-exporter-textfile-collector-scripts/issues/85
+     candidates = {
+-        p.candidate for p in cache.get_changes() if p.is_installed and 
p.marked_upgrade
++        p.candidate for p in cache if p.is_upgradable
+     }
+     _write_upgrade_info("apt_upgrades_pending", candidates)
+ 
+@@ -66,7 +66,10 @@ def _write_held_upgrades(cache):
+     print("# HELP apt_upgrades_held Apt packages pending updates but held 
back.")
+     print("# TYPE apt_upgrades_held gauge")
+ 
+-    held_candidates = {p.candidate for p in cache if p.is_upgradable and 
p.marked_keep}
++    held_candidates = {
++        p.candidate for p in cache
++        if p.is_upgradable and p._pkg.selected_state == apt_pkg.SELSTATE_HOLD
++    }
+     _write_upgrade_info("apt_upgrades_held", held_candidates)
+ 
+ 
diff --git a/debian/patches/series b/debian/patches/series
index f5329fc..8ee1d54 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 0001-do-not-run-apt-update-or-simulate-apt-dist-upgrade.patch
 0001-report-the-apt-cache-timestamp.patch
 0001-use-a-better-heuristic-for-the-apt-update-last-run-t.patch
+0001-apt_info.py-fix-apt_upgrades_pending-and-apt_upgrade.patch

Reply via email to