[projects/pld-builder.new] builder: remove dead modules
arekm
arekm at pld-linux.org
Wed Aug 12 11:45:35 CEST 2026
commit d84776d2110ea6420b7511da576edcf876224a68
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Wed Aug 12 10:37:05 2026 +0200
builder: remove dead modules
deps and poldek call chr_popen, gone since b285748 (2003); get_br and
messagebus are imported by nothing, pipeutil only by an unused import in
gpg.py, dropped here; smtpwrapper is a 2003 stub with hardcoded addresses.
What deps/poldek did lives in install.py today.
PLD_Builder/deps.py | 121 ----------------------------------------------
PLD_Builder/get_br.py | 104 ---------------------------------------
PLD_Builder/gpg.py | 1 -
PLD_Builder/messagebus.py | 18 -------
PLD_Builder/pipeutil.py | 42 ----------------
PLD_Builder/poldek.py | 86 --------------------------------
client/smtpwrapper.py | 15 ------
doc/TODO | 10 +---
8 files changed, 2 insertions(+), 395 deletions(-)
---
diff --git a/PLD_Builder/deps.py b/PLD_Builder/deps.py
deleted file mode 100644
index d8cc9c4..0000000
--- a/PLD_Builder/deps.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-
-import string
-from chroot import *
-from util import *
-
-__all__ = ['compute_deps', 'remove_list']
-
-def compute_deps():
- """Compute dependenecies between RPM installed on system.
-
- Return dictionary from name of package to list of packages required by it.
- Produce some warnings and progress information to stderr.
- """
- # pkg-name -> list of stuff returned by rpm -qR
- rpm_req = {}
- # --whatprovides ...
- rpm_prov = {}
- # list of required files
- req_files = {}
-
- def get_req():
- msg("rpm-req... ")
- f = chr_popen("rpm -qa --qf '@\n%{NAME}\n[%{REQUIRENAME}\n]'")
- cur_pkg = None
- while 1:
- l = f.readline()
- if l == "": break
- l = l.strip()
- if l == "@":
- cur_pkg = f.readline().strip()
- rpm_req[cur_pkg] = []
- continue
- rpm_req[cur_pkg].append(l)
- if l[0] == '/':
- req_files[l] = 1
- f.close()
- msg("done\n")
-
- def add_provides(pkg, what):
- if what in rpm_prov:
- msg("[%s: %s, %s] " % (what, rpm_prov[what], pkg))
- else:
- rpm_prov[what] = pkg
-
- def get_prov():
- msg("rpm-prov... ")
- f = chr_popen("rpm -qa --qf '@\n%{NAME}\n[%{PROVIDENAME}\n]'")
- cur_pkg = None
- while 1:
- l = f.readline()
- if l == "": break
- l = l.strip()
- if l == "@":
- cur_pkg = f.readline().strip()
- continue
- add_provides(cur_pkg, l)
- if l[0] == '/':
- # already provided
- del req_files[l]
- f.close()
- msg("done\n")
-
- def get_prov_files():
- msg("rpm-files... ")
- f = chr_popen("rpm -qa --qf '@\n%{NAME}\n[%{FILENAMES}\n]'")
- cur_pkg = None
- while 1:
- l = f.readline()
- if l == "": break
- l = l.strip()
- if l == "@":
- cur_pkg = f.readline().strip()
- continue
- if l in req_files:
- add_provides(cur_pkg, l)
- f.close()
- msg("done\n")
-
- def compute():
- msg("computing deps... ")
- for pkg, reqs in rpm_req.items():
- pkg_reqs = []
- for req in reqs:
- if req[0:7] == "rpmlib(": continue
- if req in rpm_prov:
- if rpm_prov[req] not in pkg_reqs:
- pkg_reqs.append(rpm_prov[req])
- else:
- msg("[%s: %s] " % (pkg, req))
- requires[pkg] = pkg_reqs
- msg("done\n")
-
- # map from pkg-name to list of pkg-names required by it
- # this is result
- requires = {}
-
- get_req()
- get_prov()
- get_prov_files()
- compute()
- return requires
-
-def remove_list(req, need):
- """List of packages scheduled for removal.
-
- Given dependency information and list of needed packages compute list
- of packages that don't need to be present.
- """
- need_m = {}
- def close(n):
- if n in need_m: return
- need_m[n] = 1
- if not n in req: return
- for k in req[n]:
- close(k)
- for n in need: close(n)
- rm = []
- for p in req.keys():
- if not p in need_m: rm.append(p)
- return rm
diff --git a/PLD_Builder/get_br.py b/PLD_Builder/get_br.py
deleted file mode 100644
index 867e233..0000000
--- a/PLD_Builder/get_br.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-
-from __future__ import print_function
-
-import re
-import string
-from util import *
-
-
-def get_build_requires(spec, bconds_with, bconds_without):
- cond_rx = re.compile(r"%\{(\!\?|\?\!|\?)([a-zA-Z0-9_+]+)\s*:([^%\{\}]*)\}")
-
- def expand_conds(l):
- def expand_one(m):
- if m.group(1) == "?":
- if m.group(2) in macros:
- return m.group(3)
- else:
- if not m.group(2) in macros:
- return m.group(3)
- return ""
-
- for i in range(10):
- l = cond_rx.sub(expand_one, l)
- if len(l) > 1000: break
-
- return l
-
- macro_rx = re.compile(r"%\{([a-zA-Z0-9_+]+)\}")
- def expand_macros(l):
- def expand_one(m):
- if m.group(1) in macros:
- return macros[m.group(1)].strip()
- else:
- return m.group(0) # don't change
-
- for i in range(10):
- l = macro_rx.sub(expand_one, l)
- if len(l) > 1000: break
-
- return expand_conds(l)
-
- simple_br_rx = re.compile(r"^BuildRequires\s*:\s*([^\s]+)", re.I)
- bcond_rx = re.compile(r"^%bcond_(with|without)\s+([^\s]+)")
- version_rx = re.compile(r"^Version\s*:\s*([^\s]+)", re.I)
- release_rx = re.compile(r"^Release\s*:\s*([^\s]+)", re.I)
- name_rx = re.compile(r"^Name\s*:\s*([^\s]+)", re.I)
- define_rx = re.compile(r"^\%define\s+([a-zA-Z0-9_+]+)\s+(.*)", re.I)
- any_br_rx = re.compile(r"BuildRequires", re.I)
-
- macros = {}
- for b in bconds_with:
- macros["_with_%s" % b] = 1
- for b in bconds_without:
- macros["_without_%s" % b] = 1
-
- macros["__perl"] = "/usr/bin/perl"
- macros["_bindir"] = "/usr/bin"
- macros["_sbindir"] = "/usr/sbin"
- macros["kgcc_package"] = "gcc"
-
- build_req = []
-
- f = open(spec)
- for l in f:
- l = l.strip()
- if l == "%changelog": break
-
- # %bcond_with..
- m = bcond_rx.search(l)
- if m:
- bcond = m.group(2)
- if m.group(1) == "with":
- if "_with_%s" % bcond in macros:
- macros["with_%s" % bcond] = 1
- else:
- if not "_without_%s" % bcond in macros:
- macros["with_%s" % bcond] = 1
- continue
-
- # name,version,release
- m = version_rx.search(l)
- if m: macros["version"] = m.group(1)
- m = release_rx.search(l)
- if m: macros["release"] = m.group(1)
- m = name_rx.search(l)
- if m: macros["name"] = m.group(1)
-
- # %define
- m = define_rx.search(l)
- if m: macros[m.group(1)] = m.group(2)
-
- # *BuildRequires*
- if any_br_rx.search(l):
- l = expand_macros(l)
- m = simple_br_rx.search(l)
- if m:
- build_req.append(m.group(1))
- else:
- if l <> "" and l[0] <> '#':
- msg("spec error (%s): %s\n" % (spec, l))
-
- for x in build_req:
- print(x)
diff --git a/PLD_Builder/gpg.py b/PLD_Builder/gpg.py
index 2310ac1..862b944 100644
--- a/PLD_Builder/gpg.py
+++ b/PLD_Builder/gpg.py
@@ -7,7 +7,6 @@ import sys
from io import StringIO
import util
import os
-import pipeutil
def get_keys(buf):
"""Extract keys from gpg message
diff --git a/PLD_Builder/messagebus.py b/PLD_Builder/messagebus.py
deleted file mode 100644
index 06ca365..0000000
--- a/PLD_Builder/messagebus.py
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/python3
-# I would name this file as fedmsg,
-# but don't know how to import 'fedmsg' from system dir and from local dir
-
-import fedmsg
-import fedmsg.config
-
-config = fedmsg.config.load_config([], None)
-config['active'] = True
-config['endpoints']['relay_inbound'] = config['relay_inbound']
-fedmsg.init(name='relay_inbound', cert_prefix='builder', **config)
-
-def notify(topic, **kwargs):
- fedmsg.publish(
- topic=topic,
- msg=dict(kwargs),
- modname="builder",
- )
diff --git a/PLD_Builder/pipeutil.py b/PLD_Builder/pipeutil.py
deleted file mode 100644
index fb6434c..0000000
--- a/PLD_Builder/pipeutil.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-
-import select
-import os
-import sys
-from io import StringIO
-
-def rw_pipe(buf_, infd, outfd):
- buf = StringIO()
- buf.write(buf_.read())
- ret = StringIO()
- pos = 0
- rd_fin = 0
- wr_fin = 0
- buf.seek(pos)
- while not (rd_fin and wr_fin):
- if wr_fin:
- o = []
- else:
- o = [infd]
- if rd_fin:
- i = []
- else:
- i = [outfd]
- i, o, e = select.select(i, o, [])
- if i != []:
- s = os.read(outfd.fileno(), 1000)
- if s == "":
- rd_fin = 1
- ret.write(s)
- if o != []:
- buf.seek(pos)
- s = buf.read(1000)
- if s == "":
- infd.close()
- wr_fin = 1
- else:
- cnt = os.write(infd.fileno(), s)
- pos += cnt
- outfd.close()
- ret.seek(0)
- return ret
diff --git a/PLD_Builder/poldek.py b/PLD_Builder/poldek.py
deleted file mode 100644
index e8fe740..0000000
--- a/PLD_Builder/poldek.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-
-import re
-import types
-import string
-
-from chroot import *
-from util import *
-
-
-def get_poldek_requires():
- # precompile regexps
- name_rx = re.compile(r"\d+\. ([^\s]+)-[^-]+-[^-]+\n")
- req_rx = re.compile(r" req .* --> (.*)\n")
- pkg_name_rx = re.compile(r"([^\s]+)-[^-]+-[^-]+")
-
- # todo: if a and b are sets, then use sets module
- # and intersection method on set object
- def intersect(a, b):
- r = []
- for x in a:
- if x in b: r.append(x)
- return r
-
- # add given req-list to cur_pkg_reqs
- def add_req(reqs):
- if len(reqs) == 1:
- if reqs[0] not in cur_pkg_reqs:
- cur_pkg_reqs.append(reqs[0])
- else:
- did = 0
- for x in cur_pkg_reqs:
- if type(x) is types.ListType:
- i = intersect(x, reqs)
- if len(i) == 0:
- continue
- did = 1
- idx = cur_pkg_reqs.index(x)
- if len(i) == 1:
- if i[0] in cur_pkg_reqs:
- del cur_pkg_reqs[idx]
- else:
- cur_pkg_reqs[idx] = i[0]
- else:
- cur_pkg_reqs[idx] = i
- else:
- if x in reqs:
- return
- if not did:
- cur_pkg_reqs.append(reqs)
-
- pkg_reqs = {}
- cur_pkg_reqs = None
- cur_pkg = None
-
- f = chr_popen("poldek -v -v --verify --unique-pkg-names")
- for l in f:
- m = name_rx.match(l)
- if m:
- if cur_pkg:
- pkg_reqs[cur_pkg] = cur_pkg_reqs
- cur_pkg = m.groups(1)
- if cur_pkg in pkg_reqs:
- cur_pkg = None
- cur_pkg_reqs = None
- else:
- cur_pkg_reqs = []
- continue
- m = req_rx.match(l)
- if m:
- reqs = []
- for x in m.group(1).split():
- if x in ["RPMLIB_CAP", "NOT", "FOUND", "UNMATCHED"]: continue
- m = pkg_name_rx.match(x)
- if m:
- reqs.append(m.group(1))
- else:
- msg("poldek_reqs: bad pkg name: %s\n" % x)
- if len(reqs) != 0: add_req(reqs)
-
- f.close()
-
- if cur_pkg:
- pkg_reqs[cur_pkg] = cur_pkg_reqs
-
- return pkg_reqs
diff --git a/client/smtpwrapper.py b/client/smtpwrapper.py
deleted file mode 100755
index 741c89d..0000000
--- a/client/smtpwrapper.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#! /usr/bin/python3
-
-# As omta segfaults and rest is so huge and does't work out of box
-# mailer="./smtpwrapper.py" or whatever path is
-
-smtp_host = "beauty.ant.vpn"
-
-import smtplib,sys
-
-msg = sys.stdin.read()
-
-server = smtplib.SMTP(smtp_host)
-# server.set_debuglevel(1)
-server.sendmail("matkor at pld-linux.org","builder-ac at pld-linux.org", msg) # Adresses should be taken from .requestrc
-server.quit()
diff --git a/doc/TODO b/doc/TODO
index 3ba8da0..4af9ba7 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -2,15 +2,9 @@
macros. Next we should process the output, look for all BuildRequires:
lines, and install them, instead of running rpmbuild --nobuild to see
what's missing, since it chokes when stuff is used in %(...), on missing
- includes and so on.
-
- get_br.py is close, but doesn't handle:
- %if foo
- BuildRequires: ...
- %endif
- which in fact requires expression parser :<
+ includes and so on.
-- implement:
+- implement:
<command type='shell' id='...'>shell code</command>
<command type='upgrade' id='...' /> (run poldek --up; poldek -Q --shcmd 'upgrade -G *')
First requires command-shell:<builder>, second command-upgrade:<builder>.
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/projects/pld-builder.new.git/commitdiff/44916a7a9112928736ec2b65b4fa58a90bc5828c
More information about the pld-cvs-commit
mailing list