[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