diff options
author | Johannes Löthberg <johannes@kyriasis.com> | 2014-12-22 15:11:38 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-12-24 02:19:30 +0100 |
commit | 9f527d2de453b542293e24d85ee894fa6452259a (patch) | |
tree | 0718d9cfc13cf3b81d02b6b5e8e94df49aae3f8c /lib/libalpm/be_local.c | |
parent | fda599df3773955aa2f95a842649902e41f4e0bc (diff) | |
download | pacman-9f527d2de453b542293e24d85ee894fa6452259a.tar.gz pacman-9f527d2de453b542293e24d85ee894fa6452259a.tar.xz |
libalpm: Parse and write PKGBASEs
This commit adds support to libalpm to parse the pkgbase present in
packages .PKGINFO files, writing the PKGBASE to the %BASE% section of
the local DBs desc files and for parsing it again when loading the local
DB
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib/libalpm/be_local.c')
-rw-r--r-- | lib/libalpm/be_local.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index d0e8944d..852baa4c 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -701,6 +701,8 @@ static int local_db_read(alpm_pkg_t *info, alpm_dbinfrq_t inforeq) _alpm_log(db->handle, ALPM_LOG_ERROR, _("%s database is inconsistent: version " "mismatch on package %s\n"), db->treename, info->name); } + } else if(strcmp(line, "%BASE%") == 0) { + READ_AND_STORE(info->base); } else if(strcmp(line, "%DESC%") == 0) { READ_AND_STORE(info->desc); } else if(strcmp(line, "%GROUPS%") == 0) { @@ -905,6 +907,10 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t *info, alpm_dbinfrq_t inforeq free(path); fprintf(fp, "%%NAME%%\n%s\n\n" "%%VERSION%%\n%s\n\n", info->name, info->version); + if(info->base) { + fprintf(fp, "%%BASE%%\n" + "%s\n\n", info->base); + } if(info->desc) { fprintf(fp, "%%DESC%%\n" "%s\n\n", info->desc); |