summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/package.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index 26157edd..0c58bba5 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -840,9 +840,14 @@ static int parse_descfile(const char *descfile, pmpkg_t *info)
} else if(!strcmp(key, "license")) {
info->licenses = alpm_list_add(info->licenses, strdup(ptr));
} else if(!strcmp(key, "builddate")) {
- info->builddate = atol(ptr);
- } else if(!strcmp(key, "installdate")) {
- info->installdate = atol(ptr);
+ char first = tolower(ptr[0]);
+ if(first > 'a' && first < 'z') {
+ struct tm tmp_tm = {0}; //initialize to null incase of failure
+ strptime(ptr, "%a %b %e %H:%M:%S %Y", &tmp_tm);
+ info->builddate = mktime(&tmp_tm);
+ } else {
+ info->builddate = atol(ptr);
+ }
} else if(!strcmp(key, "packager")) {
strncpy(info->packager, ptr, sizeof(info->packager));
} else if(!strcmp(key, "arch")) {