[projects/pld-ftp-admin] Python version of the script to find packages without digest

baggins baggins at pld-linux.org
Sun Feb 15 01:43:30 CET 2026


commit 7b289729dc689df4826f079b3763a58242072cec
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Feb 15 01:42:54 2026 +0100

    Python version of the script to find packages without digest

 wwwbin/list-no-digest-packages.sh |  6 +-----
 wwwbin/no-digest-packages.py      | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 5 deletions(-)
---
diff --git a/wwwbin/list-no-digest-packages.sh b/wwwbin/list-no-digest-packages.sh
index a67c7af..72781d4 100755
--- a/wwwbin/list-no-digest-packages.sh
+++ b/wwwbin/list-no-digest-packages.sh
@@ -4,11 +4,7 @@ export LC_ALL=C
 
 date > $HOME/www/no-digest.txt.new
 
-/usr/bin/time -f '\nElapsed time: %E' -o $HOME/www/no-digest.txt.time \
-for f in $HOME/ftp/PLD/noarch/RPMS/*.rpm $HOME/ftp/PLD/x86_64/RPMS/*.rpm ; do
-	rpm -i --justdb --nodeps --test $f 2>&1
-done | awk '/does not verify: no digest/ { print $2 }' | \
-	xargs ipoldek ls -s | awk '/.src.rpm/ {print $2}' | sort -u >$HOME/www/no-digest.txt.new
+/usr/bin/time -f '\nElapsed time: %E' -o $HOME/www/no-digest.txt.time $HOME/bin/no-digest.py >> $HOME/www/no-digest.txt.new 2>/dev/null
 
 cat $HOME/www/no-digest.txt.time >>$HOME/www/no-digest.txt.new
 rm -f $HOME/www/no-digest.txt.time
diff --git a/wwwbin/no-digest-packages.py b/wwwbin/no-digest-packages.py
new file mode 100755
index 0000000..1c6d6b0
--- /dev/null
+++ b/wwwbin/no-digest-packages.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python3
+
+import os
+import subprocess
+import sys
+import time
+
+sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules')
+import config
+import ftptree
+
+pkgs = {}
+bad = []
+
+try:
+    tree = ftptree.FtpTree('PLD')
+except ftptree.SomeError as e:
+    print(e)
+    sys.exit(1)
+
+with os.scandir(config.value['ftp_dir']+'/PLD/SRPMS/.metadata') as it:
+    for entry in it:
+        if not entry.name.endswith('.src.rpm.info'):
+            continue
+        stat = entry.stat()
+        if time.time() - stat.st_mtime < 60*60*24*1800:
+            continue
+        pkgs[entry.name[:-13]] = ftptree.Pkg(entry.name[:-13], tree)
+
+for name in sorted(pkgs.keys()):
+    for rpm in pkgs[name].rpmfiles(debugfiles=False, sourcefiles=False):
+        proc = subprocess.run(['/bin/rpm', '--install', '--test', '--nodeps', '--justdb', rpm], capture_output=True, text=True)
+        if 'does not verify: no digest' in proc.stderr:
+            bad.append(name)
+            break
+
+for name in bad:
+    print(name)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/projects/pld-ftp-admin.git/commitdiff/7b289729dc689df4826f079b3763a58242072cec



More information about the pld-cvs-commit mailing list