diff --git a/archrepo2/pkgreader.py b/archrepo2/pkgreader.py deleted file mode 100644 index 916f1bd..0000000 --- a/archrepo2/pkgreader.py +++ /dev/null @@ -1,48 +0,0 @@ -import tarfile -import logging - -logger = logging.getLogger(__name__) - -multikeys = {'depend', 'makepkgopt', 'optdepend', 'replaces', 'conflict', - 'provides', 'license', 'backup', 'group', 'makedepend', 'checkdepend'} - -def _add_to_dict(d, key, value): - if key in multikeys: - if key in d: - d[key].append(value) - else: - d[key] = [value] - else: - assert key not in d, 'unexpected multi-value key "%s"' % key - d[key] = value - -def readpkg(file): - tar = tarfile.open(file) - for _ in range(5): - info = tar.next() - if info and info.name == '.PKGINFO': - break - else: - logger.warn('%s is not a nice package!', file) - info = '.PKGINFO' # have to look further - - f = tar.extractfile(info) - data = f.read().decode() - tar.close() - - d = {} - key = None - for l in data.split('\n'): - if l.startswith('#'): - continue - if not l: - continue - if '=' not in l: - value += l - else: - if key is not None: - _add_to_dict(d, key, value) - key, value = l.split(' = ', 1) - _add_to_dict(d, key, value) - - return d diff --git a/archrepo2/repomon.py b/archrepo2/repomon.py index c57648e..c0804be 100755 --- a/archrepo2/repomon.py +++ b/archrepo2/repomon.py @@ -21,7 +21,6 @@ from tornado.ioloop import IOLoop import tornado.process from .lib import archpkg -from . import pkgreader from . import dbutil logger = logging.getLogger(__name__) @@ -362,13 +361,7 @@ class EventHandler(pyinotify.ProcessEvent): except KeyError: owner = 'uid_%d' % stat.st_uid - try: - info = pkgreader.readpkg(act.path) - except: - logger.error('failed to read info for package %s', act.path, exc_info=True) - info = None - info = pickle.dumps(info) - + info = None self._db.execute( '''insert or replace into pkginfo (filename, pkgrepo, pkgname, pkgarch, pkgver, forarch, state, owner, mtime, info) values @@ -499,7 +492,7 @@ def repomon(config): if 'any' not in supported_archs: supported_archs.append('any') # assume none of the archs has regex meta characters - regex = re.compile(r'(?:^|/)[^.].*-[^-]+-[\d.]+-(?:' + '|'.join(supported_archs) + r')\.pkg\.tar\.xz(?:\.sig)?$') + regex = re.compile(r'(?:^|/)[^.].*-[^-]+-[\d.]+-(?:' + '|'.join(supported_archs) + r')\.pkg\.tar\.(?:xz|zst)(?:\.sig)?$') filter_func = partial(filter_pkg, regex) handler = EventHandler( diff --git a/scripts/test_readpkg.py b/scripts/test_readpkg.py deleted file mode 100755 index d428958..0000000 --- a/scripts/test_readpkg.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python3 -# vim:fileencoding=utf-8 - -from subprocess import getoutput -allpkgs = getoutput(r"locate -be --regex '\.pkg\.tar\.xz$'").split('\n') - -from archrepo2.pkgreader import readpkg -for p in allpkgs: - print('reading package:', p) - d = readpkg(p) - print('desc:', d.get('pkgdesc', '(nothing)'))