PACKAGES_DB_DIR = "var/lib/pakfire"
PACKAGES_DB = os.path.join(PACKAGES_DB_DIR, "packages.db")
+PACKAGES_SOLV = os.path.join(PACKAGES_DB_DIR, "packages.solv")
REPOSITORY_DB = "index.db"
BUFFER_SIZE = 102400
assert self.index
self.index.clear()
+ def commit(self):
+ """
+ Commit repository data to disk.
+ """
+ self.index.commit()
+
def dump(self, long=False, filelist=False):
dumps = []
# Dump all package information of the packages in this repository.
"""
self.solver_repo.write(filename)
+ def commit(self):
+ """
+ Commit index data to disk.
+ """
+ pass
+
def create_relation(self, *args, **kwargs):
return self.pakfire.create_relation(*args, **kwargs)
def init(self):
self.db = database.DatabaseLocal(self.pakfire, self.repo)
+ if os.path.exists(PACKAGES_SOLV):
+ self.read(PACKAGES_SOLV)
+
+ def commit(self):
+ # Write SOLV cache file.
+ filename = os.path.join(self.pakfire.path, PACKAGES_SOLV)
+
+ dirname = os.path.dirname(filename)
+ if not os.path.exists(dirname):
+ os.makedirs(dirname)
+
+ self.write(filename)
+
def check(self):
# XXX Create the database and lock it or something.
pass
return transaction
+ @property
+ def local(self):
+ # Shortcut to local repository.
+ return self.pakfire.repos.local
+
def add(self, action_name, pkg):
assert isinstance(pkg, packages.SolvPackage), pkg
log.info("")
+ # Commit repository metadata.
+ self.local.commit()
+
# Call sync to make sure all buffers are written to disk.
sync()