[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