From bf46e04614b3740eea4a5e0d44767f57e1cffa4d Mon Sep 17 00:00:00 2001
From: Dan McGee <dan@archlinux.org>
Date: Mon, 10 Jan 2011 13:40:31 -0600
Subject: Remove epoch as an independent field

Instead, go the same route we have always taken with version-release in
libalpm and treat it all as one piece of information. Makepkg is the only
script that knows about epoch as a distinct value; from there on out we will
parse out the components as necessary.

This makes the code a lot simpler as far as epoch handling goes. The
downside here is that we are tossing some compatibility to the wind;
packages using force will have to be rebuilt with an incremented epoch to
keep their special status.

Signed-off-by: Dan McGee <dan@archlinux.org>
---
 lib/libalpm/alpm.h       |  1 -
 lib/libalpm/be_local.c   | 16 ----------------
 lib/libalpm/be_package.c |  7 -------
 lib/libalpm/be_sync.c    |  9 ---------
 lib/libalpm/package.c    | 20 --------------------
 lib/libalpm/package.h    |  2 --
 6 files changed, 55 deletions(-)

(limited to 'lib/libalpm')

diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 7c4cd48b..a540bc4f 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -238,7 +238,6 @@ size_t alpm_pkg_changelog_read(void *ptr, size_t size,
 /*int alpm_pkg_changelog_feof(const pmpkg_t *pkg, void *fp);*/
 int alpm_pkg_changelog_close(const pmpkg_t *pkg, void *fp);
 int alpm_pkg_has_scriptlet(pmpkg_t *pkg);
-int alpm_pkg_get_epoch(pmpkg_t *pkg);
 
 off_t alpm_pkg_download_size(pmpkg_t *newpkg);
 alpm_list_t *alpm_pkg_unused_deltas(pmpkg_t *pkg);
diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c
index 5471fee4..ea59ceca 100644
--- a/lib/libalpm/be_local.c
+++ b/lib/libalpm/be_local.c
@@ -156,12 +156,6 @@ static alpm_list_t *_cache_get_groups(pmpkg_t *pkg)
 	return pkg->groups;
 }
 
-static int _cache_get_epoch(pmpkg_t *pkg)
-{
-	LAZY_LOAD(INFRQ_DESC, -1);
-	return pkg->epoch;
-}
-
 static int _cache_has_scriptlet(pmpkg_t *pkg)
 {
 	ALPM_LOG_FUNC;
@@ -318,7 +312,6 @@ static struct pkg_operations local_pkg_ops = {
 	.get_size        = _cache_get_size,
 	.get_isize       = _cache_get_isize,
 	.get_reason      = _cache_get_reason,
-	.get_epoch       = _cache_get_epoch,
 	.has_scriptlet   = _cache_has_scriptlet,
 	.get_licenses    = _cache_get_licenses,
 	.get_groups      = _cache_get_groups,
@@ -606,11 +599,6 @@ int _alpm_local_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
 					STRDUP(linedup, _alpm_strtrim(line), goto error);
 					info->replaces = alpm_list_add(info->replaces, linedup);
 				}
-			} else if(strcmp(line, "%EPOCH%") == 0) {
-				if(fgets(line, sizeof(line), fp) == NULL) {
-					goto error;
-				}
-				info->epoch = atoi(_alpm_strtrim(line));
 			} else if(strcmp(line, "%DEPENDS%") == 0) {
 				while(fgets(line, sizeof(line), fp) && strlen(_alpm_strtrim(line))) {
 					pmdepend_t *dep = _alpm_splitdep(_alpm_strtrim(line));
@@ -767,10 +755,6 @@ int _alpm_local_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
 			}
 			fprintf(fp, "\n");
 		}
-		if(info->epoch) {
-			fprintf(fp, "%%EPOCH%%\n"
-							"%d\n\n", info->epoch);
-		}
 		if(info->url) {
 			fprintf(fp, "%%URL%%\n"
 							"%s\n\n", info->url);
diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c
index b69161b4..c272bd47 100644
--- a/lib/libalpm/be_package.c
+++ b/lib/libalpm/be_package.c
@@ -184,13 +184,6 @@ static int parse_descfile(struct archive *a, pmpkg_t *newpkg)
 				STRDUP(newpkg->version, ptr, RET_ERR(PM_ERR_MEMORY, -1));
 			} else if(strcmp(key, "pkgdesc") == 0) {
 				STRDUP(newpkg->desc, ptr, RET_ERR(PM_ERR_MEMORY, -1));
-			} else if(strcmp(key, "force") == 0) {
-				/* For backward compatibility, like in sync_db_read */
-				if(!newpkg->epoch) {
-					newpkg->epoch = 1;
-				}
-			} else if(strcmp(key, "epoch") == 0) {
-				newpkg->epoch = atoi(ptr);
 			} else if(strcmp(key, "group") == 0) {
 				newpkg->groups = alpm_list_add(newpkg->groups, strdup(ptr));
 			} else if(strcmp(key, "url") == 0) {
diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c
index 1e4b2fde..4676e8a6 100644
--- a/lib/libalpm/be_sync.c
+++ b/lib/libalpm/be_sync.c
@@ -340,15 +340,6 @@ static int sync_db_read(pmdb_t *db, struct archive *archive,
 				READ_AND_STORE(pkg->md5sum);
 			} else if(strcmp(line, "%REPLACES%") == 0) {
 				READ_AND_STORE_ALL(pkg->replaces);
-			} else if(strcmp(line, "%EPOCH%") == 0) {
-				READ_NEXT(line);
-				pkg->epoch = atoi(line);
-			} else if(strcmp(line, "%FORCE%") == 0) {
-				/* For backward compatibility, treat force as a non-zero epoch
-				 * but only if we didn't already have a known epoch value. */
-				if(!pkg->epoch) {
-					pkg->epoch = 1;
-				}
 			} else if(strcmp(line, "%DEPENDS%") == 0) {
 				/* Different than the rest because of the _alpm_splitdep call. */
 				while(1) {
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index 241c41c0..d4b3b9c0 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -110,7 +110,6 @@ static const char *_pkg_get_arch(pmpkg_t *pkg)        { return pkg->arch; }
 static off_t _pkg_get_size(pmpkg_t *pkg)              { return pkg->size; }
 static off_t _pkg_get_isize(pmpkg_t *pkg)             { return pkg->isize; }
 static pmpkgreason_t _pkg_get_reason(pmpkg_t *pkg)    { return pkg->reason; }
-static int _pkg_get_epoch(pmpkg_t *pkg)               { return pkg->epoch; }
 static int _pkg_has_scriptlet(pmpkg_t *pkg)           { return pkg->scriptlet; }
 
 static alpm_list_t *_pkg_get_licenses(pmpkg_t *pkg)   { return pkg->licenses; }
@@ -141,7 +140,6 @@ struct pkg_operations default_pkg_ops = {
 	.get_size        = _pkg_get_size,
 	.get_isize       = _pkg_get_isize,
 	.get_reason      = _pkg_get_reason,
-	.get_epoch       = _pkg_get_epoch,
 	.has_scriptlet   = _pkg_has_scriptlet,
 	.get_licenses    = _pkg_get_licenses,
 	.get_groups      = _pkg_get_groups,
@@ -223,11 +221,6 @@ pmpkgreason_t SYMEXPORT alpm_pkg_get_reason(pmpkg_t *pkg)
 	return pkg->ops->get_reason(pkg);
 }
 
-int SYMEXPORT alpm_pkg_get_epoch(pmpkg_t *pkg)
-{
-	return pkg->ops->get_epoch(pkg);
-}
-
 alpm_list_t SYMEXPORT *alpm_pkg_get_licenses(pmpkg_t *pkg)
 {
 	return pkg->ops->get_licenses(pkg);
@@ -427,7 +420,6 @@ pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg)
 	newpkg->size = pkg->size;
 	newpkg->isize = pkg->isize;
 	newpkg->scriptlet = pkg->scriptlet;
-	newpkg->epoch = pkg->epoch;
 	newpkg->reason = pkg->reason;
 
 	newpkg->licenses   = alpm_list_strdup(pkg->licenses);
@@ -518,20 +510,8 @@ void _alpm_pkg_free_trans(pmpkg_t *pkg)
 /* Is spkg an upgrade for localpkg? */
 int _alpm_pkg_compare_versions(pmpkg_t *spkg, pmpkg_t *localpkg)
 {
-	int spkg_epoch, localpkg_epoch;
-
 	ALPM_LOG_FUNC;
 
-	spkg_epoch = alpm_pkg_get_epoch(spkg);
-	localpkg_epoch = alpm_pkg_get_epoch(localpkg);
-
-	if(spkg_epoch > localpkg_epoch) {
-		return(1);
-	} else if(spkg_epoch < localpkg_epoch) {
-		return(-1);
-	}
-
-	/* equal epoch values, move on to version comparison */
 	return alpm_pkg_vercmp(alpm_pkg_get_version(spkg),
 			alpm_pkg_get_version(localpkg));
 }
diff --git a/lib/libalpm/package.h b/lib/libalpm/package.h
index 52582d9b..b161d5f1 100644
--- a/lib/libalpm/package.h
+++ b/lib/libalpm/package.h
@@ -57,7 +57,6 @@ struct pkg_operations {
 	off_t (*get_size) (pmpkg_t *);
 	off_t (*get_isize) (pmpkg_t *);
 	pmpkgreason_t (*get_reason) (pmpkg_t *);
-	int (*get_epoch) (pmpkg_t *);
 	int (*has_scriptlet) (pmpkg_t *);
 
 	alpm_list_t *(*get_licenses) (pmpkg_t *);
@@ -107,7 +106,6 @@ struct __pmpkg_t {
 	off_t download_size;
 
 	int scriptlet;
-	int epoch;
 
 	pmpkgreason_t reason;
 	pmpkgfrom_t origin;
-- 
cgit v1.2.3-2-g168b