]> git.ipfire.org Git - pakfire.git/commitdiff
Drop SolvPackage data model
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 22 Jan 2018 18:13:44 +0000 (19:13 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 22 Jan 2018 18:13:44 +0000 (19:13 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/pakfire/packages/__init__.py
src/pakfire/packages/solv.py [deleted file]
src/pakfire/repository/system.py

index 9e2ff901d2bd2b781870e54ca577458731427e30..44127b4c3c28d78ec36ddcd0bd5f4953da44db5b 100644 (file)
@@ -147,7 +147,6 @@ pakfire_packages_PYTHON = \
        src/pakfire/packages/lexer.py \
        src/pakfire/packages/make.py \
        src/pakfire/packages/packager.py \
-       src/pakfire/packages/solv.py \
        src/pakfire/packages/tar.py
 
 pakfire_packagesdir = $(pythondir)/pakfire/packages
index 7f1055bb33e89e722f0d3939f79bb1c61f4fcabd..916f64b06517668f991a076c10f77530fbfe78e3 100644 (file)
@@ -25,7 +25,6 @@ from . import file
 
 from .base import Package
 from .installed import DatabasePackage
-from .solv import SolvPackage
 
 from .make import Makefile
 
diff --git a/src/pakfire/packages/solv.py b/src/pakfire/packages/solv.py
deleted file mode 100644 (file)
index 90e672e..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-#!/usr/bin/python
-###############################################################################
-#                                                                             #
-# Pakfire - The IPFire package management system                              #
-# Copyright (C) 2011 Pakfire development team                                 #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-import os
-import re
-
-from . import base
-from . import file
-
-class SolvPackage(base.Package):
-       def __init__(self, pakfire, solvable, repo=None):
-               base.Package.__init__(self, pakfire, repo)
-
-               # Save solvable object
-               self.solvable = solvable
-
-               self.__evr = None
-
-       @property
-       def uuid(self):
-               return self.solvable.get_uuid()
-
-       @property
-       def hash1(self):
-               return self.solvable.get_hash1()
-
-       @property
-       def name(self):
-               return self.solvable.get_name()
-
-       @property
-       def evr(self):
-               if self.__evr is None:
-                       m = re.match("^([0-9]+\:)?([0-9A-Za-z\.\-_]+)-([0-9]+\.?[a-z0-9\.\-\_]+|[0-9]+)$",
-                               self.solvable.get_evr())
-
-                       if m:
-                               (e, v, r) = m.groups()
-
-                               if e:
-                                       e = e.replace(":", "")
-                                       e = int(e)
-
-                               self.__evr = (e, v, r)
-
-               assert self.__evr
-               return self.__evr
-
-       @property
-       def epoch(self):
-               return self.evr[0]
-
-       @property
-       def version(self):
-               return self.evr[1]
-
-       @property
-       def release(self):
-               return self.evr[2]
-
-       @property
-       def arch(self):
-               return self.solvable.get_arch()
-
-       @property
-       def repo(self):
-               if self._repo:
-                       return self._repo
-
-               repo_name = self.solvable.get_repo_name()
-               return self.pakfire.repos.get_repo(repo_name)
-
-       @property
-       def summary(self):
-               return self.solvable.get_summary()
-
-       @property
-       def description(self):
-               return self.solvable.get_description() or ""
-
-       @property
-       def groups(self):
-               groups = self.solvable.get_groups()
-
-               if groups:
-                       return groups.split()
-
-               return []
-
-       @property
-       def license(self):
-               return self.solvable.get_license()
-
-       @property
-       def maintainer(self):
-               return self.solvable.get_maintainer()
-
-       @property
-       def url(self):
-               return self.solvable.get_url()
-
-       @property
-       def size(self):
-               return self.solvable.get_downloadsize()
-
-       @property
-       def inst_size(self):
-               return self.solvable.get_installsize()
-
-       @property
-       def vendor(self):
-               vendor = self.solvable.get_vendor()
-
-               if vendor == "<NULL>":
-                       return None
-
-               return vendor
-
-       @property
-       def build_host(self):
-               return self.solvable.get_buildhost()
-
-       @property
-       def build_time(self):
-               return self.solvable.get_buildtime()
-
-       @property
-       def build_id(self):
-               return "XXX CURRENTLY NOT IMPLEMENTED"
-
-       @property
-       def provides(self):
-               return self.solvable.get_provides()
-
-       @property
-       def _requires(self):
-               requires = self.solvable.get_requires()
-
-               try:
-                       i = requires.index("solvable:prereqmarker")
-
-                       return (requires[i+1:], requires[:i],)
-               except ValueError:
-                       return ([], requires,)
-
-       @property
-       def prerequires(self):
-               prereqs, reqs = self._requires
-
-               return prereqs
-
-       @property
-       def requires(self):
-               prereqs, reqs = self._requires
-
-               return reqs
-
-       @property
-       def obsoletes(self):
-               return self.solvable.get_obsoletes()
-
-       @property
-       def conflicts(self):
-               return self.solvable.get_conflicts()
-
-       @property
-       def recommends(self):
-               return self.solvable.get_recommends()
-
-       @property
-       def suggests(self):
-               return self.solvable.get_suggests()
-
-       @property
-       def filename(self):
-               return self.solvable.get_filename()
-
-       @property
-       def filelist(self):
-               # XXX need to support filelist.
-               return ["%s does not support filelists, yet." % self.__class__.__name__,]
-
-       @property
-       def cache_filename(self):
-               """
-                       The path to this file in the cache.
-               """
-               h = self.hash1
-
-               return os.path.join(h[0:2], h[2:], os.path.basename(self.filename))
-
-       @property
-       def is_in_cache(self):
-               # Local files are always kinda cached.
-               if self.repo.local:
-                       return True
-
-               # If the repository has got a cache, we check if the file
-               # is in there.
-               if self.repo.cache:
-                       return self.repo.cache.exists(self.cache_filename)
-
-               return False
-
-       def get_from_cache(self):
-               path = None
-
-               if self.repo.local:
-                       # Search for a file in the local repository. It can be either in
-                       # the root directory of the repository or in a subdirectory that
-                       # is named by the architecture.
-                       for i in ("", self.arch,):
-                               p = os.path.join(self.repo.path, i, self.filename)
-
-                               if os.path.exists(p):
-                                       path = p
-                                       break
-
-                       return file.BinaryPackage(self.pakfire, self.repo, path)
-
-               if not self.repo.cache:
-                       return
-
-               if self.repo.cache.exists(self.cache_filename):
-                       # Check if the checksum matches, too.
-                       if not self.repo.cache.verify(self.cache_filename, self.hash1):
-                               return
-
-                       path = self.repo.cache.abspath(self.cache_filename)
-                       return file.BinaryPackage(self.pakfire, self.repo, path)
-
-       def get_from_db(self):
-               return self.pakfire.repos.local.get_package_by_uuid(self.uuid)
-
-       def download(self, text="", logger=None):
-               if not self.repo.local:
-                       self.repo.download(self, text=text, logger=logger)
-
-               return self.get_from_cache()
index 6bf320391499894fc2d2112fd34dfdc1e50246da..bdfc2464b19caf495d9986d8778784eef3a1c4d6 100644 (file)
@@ -89,14 +89,6 @@ class RepositorySystem(base.RepositoryFactory):
                self.db.add_package(pkg)
 
        def rem_package(self, pkg):
-               if isinstance(pkg, packages.SolvPackage):
-                       pkg = pkg.get_from_db()
-
-                       # If the package can not be found in the database,
-                       # we cannot remove it. This does not seem right...
-                       if pkg is None:
-                               return
-
                # Remove package from the database.
                self.db.rem_package(pkg)