[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[PATCH] lts-cve-triage: Allow to ignore unsupported packages



This avoids listing packages with limited support which clobber the output.

---
Do we want to enable this by default?

 bin/lts-cve-triage.py       |  7 ++++++-
 bin/unsupported_packages.py | 43 +++++++++++++++++++++++++++++--------------
 2 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/bin/lts-cve-triage.py b/bin/lts-cve-triage.py
index f0f09d191..1c757b510 100755
--- a/bin/lts-cve-triage.py
+++ b/bin/lts-cve-triage.py
@@ -20,7 +20,7 @@ import argparse
 import collections
 
 from tracker_data import TrackerData, RELEASES
-from unsupported_packages import UnsupportedPackages
+from unsupported_packages import UnsupportedPackages, LimitedSupportPackages
 
 def colored(x, *args, **kwargs):
     return x
@@ -65,6 +65,8 @@ parser.add_argument('--skip-dla-needed', action='store_true',
                     help='Skip packages already in dla-needed.txt')
 parser.add_argument('--skip-cache-update', action='store_true',
                     help='Skip updating the tracker data cache')
+parser.add_argument('--ignore-limited', action='store_true',
+                    help='Ignore packages with limited security support')
 parser.add_argument('--filter', nargs='+', choices=[x[0] for x in LIST_NAMES],
                     help='Only report on specified lists')
 parser.add_argument('--exclude', nargs='+', choices=[x[0] for x in LIST_NAMES],
@@ -73,6 +75,9 @@ args = parser.parse_args()
 
 tracker = TrackerData(update_cache=not args.skip_cache_update)
 unsupported = UnsupportedPackages(update_cache=not args.skip_cache_update)
+if args.ignore_limited:
+    unsupported = unsupported.union(LimitedSupportPackages(update_cache=not args.skip_cache_update))
+
 
 def add_to_list(key, pkg, issue):
     assert key in [l[0] for l in LIST_NAMES]
diff --git a/bin/unsupported_packages.py b/bin/unsupported_packages.py
index ffc062884..b6ba7cac9 100644
--- a/bin/unsupported_packages.py
+++ b/bin/unsupported_packages.py
@@ -19,28 +19,18 @@ import requests
 
 re_line = re.compile(r'(?!#)(?P<pkg>[^\s]+)')
 
-class UnsupportedPackages(set):
-    URL = "https://anonscm.debian.org/cgit/collab-maint/debian-security-support.git/plain/security-support-ended.deb{}";
-    CACHED_DATA_PATH = "~/.cache/security-support-ended.deb{}"
-
-    def __init__(self, debian_version=7, update_cache=True):
-        self.debian_version = debian_version
-
-        self.cache = os.path.expanduser(self.CACHED_DATA_PATH).format(
-            self.debian_version,
-        )
 
+class DebSecSupport(set):
+    def __init__(self, update_cache):
         if update_cache:
             self.update_cache()
 
         self.load()
 
     def update_cache(self):
-        url = self.URL.format(self.debian_version)
-
-        print("Updating {} from {} ...".format(self.cache, url))
+        print("Updating {} from {} ...".format(self.cache, self.url))
 
-        response = requests.get(url, allow_redirects=True)
+        response = requests.get(self.url, allow_redirects=True)
         response.raise_for_status()
 
         with open(self.cache, 'w') as f:
@@ -53,3 +43,28 @@ class UnsupportedPackages(set):
 
                 if m is not None:
                     self.add(m.group('pkg'))
+
+
+class UnsupportedPackages(DebSecSupport):
+    URL = "https://anonscm.debian.org/cgit/collab-maint/debian-security-support.git/plain/security-support-ended.deb{}";
+    CACHED_DATA_PATH = "~/.cache/security-support-ended.deb{}"
+
+    def __init__(self, debian_version=7, update_cache=True):
+        self.debian_version = debian_version
+        self.url = self.URL.format(self.debian_version)
+
+        self.cache = os.path.expanduser(self.CACHED_DATA_PATH).format(
+            self.debian_version,
+        )
+
+        super(UnsupportedPackages, self).__init__(update_cache=True)
+
+
+class LimitedSupportPackages(DebSecSupport):
+    URL = "https://anonscm.debian.org/cgit/collab-maint/debian-security-support.git/plain/security-support-limited";
+    CACHED_DATA_PATH = "~/.cache/security-support-limited"
+
+    def __init__(self, update_cache=True):
+        self.url = self.URL
+        self.cache = os.path.expanduser(self.CACHED_DATA_PATH)
+        super(LimitedSupportPackages, self).__init__(update_cache=True)
-- 
2.11.0


Reply to: