diff options
author | Allan McRae <allan@archlinux.org> | 2013-07-16 21:34:54 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-09-23 21:26:55 +1000 |
commit | 7e9ad22ac21329adcf470bb00f2d0a386376fddf (patch) | |
tree | eabd40c10cd63a7518d8566927cb1daa8fe5cad1 | |
parent | d3f5ab0e706071b8724575eb356b865d55da8df6 (diff) | |
download | pacman-7e9ad22ac21329adcf470bb00f2d0a386376fddf.tar.xz |
Add version file when creating local database directory
The version of the local pacman database is stored in its root in the file
ALPM_DB_VERSION. The version is starting at 9, corresponding to the
next libalpm library version.
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | lib/libalpm/be_local.c | 18 | ||||
-rw-r--r-- | test/pacman/pmdb.py | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index 8c8b9b15..7df0ff88 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -44,6 +44,9 @@ #include "deps.h" #include "filelist.h" +/* local database format version */ +size_t ALPM_LOCAL_DB_VERSION = 9; + static int local_db_read(alpm_pkg_t *info, alpm_dbinfrq_t inforeq); #define LAZY_LOAD(info, errret) \ @@ -366,6 +369,20 @@ static int is_dir(const char *path, struct dirent *entry) return 0; } +static int local_db_add_version(alpm_db_t UNUSED *db, const char *dbpath) +{ + char dbverpath[PATH_MAX]; + FILE *dbverfile; + + snprintf(dbverpath, PATH_MAX, "%sALPM_DB_VERSION", dbpath); + + dbverfile = fopen(dbverpath, "w"); + fprintf(dbverfile, "%zu\n", ALPM_LOCAL_DB_VERSION); + fclose(dbverfile); + + return 0; +} + static int local_db_create(alpm_db_t *db, const char *dbpath) { if(mkdir(dbpath, 0755) != 0) { @@ -373,6 +390,7 @@ static int local_db_create(alpm_db_t *db, const char *dbpath) dbpath, strerror(errno)); RET_ERR(db->handle, ALPM_ERR_DB_CREATE, -1); } + local_db_add_version(db, dbpath); return 0; } diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py index a6cf78fc..60e0e9cc 100644 --- a/test/pacman/pmdb.py +++ b/test/pacman/pmdb.py @@ -87,6 +87,8 @@ class pmdb(object): if self.read_dircache is None: self.read_dircache = os.listdir(self.dbdir) for entry in self.read_dircache: + if entry == "ALPM_DB_VERSION": + continue [pkgname, pkgver, pkgrel] = entry.rsplit("-", 2) if pkgname == name: dbentry = entry |