From 45d313c51cbae20bce0789db86ba82ff79c9b202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Tue, 4 Feb 2020 10:31:10 +0200 Subject: remove apk_time() as it is causing problems with shared objects Instead, to make sure test mode produces same output, redefine time() for the test mode binary. Reverts parts of 0b82bcc53e60. --- src/add.c | 2 +- src/apk.c | 12 ++++++------ src/apk_defines.h | 2 -- src/archive.c | 2 +- src/database.c | 4 ++-- src/lua-apk.c | 5 ----- 6 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/add.c b/src/add.c index 0292995..4ca1dc5 100644 --- a/src/add.c +++ b/src/add.c @@ -81,7 +81,7 @@ static struct apk_package *create_virtual_package(struct apk_database *db, struc struct apk_package *virtpkg; struct tm tm; EVP_MD_CTX *mdctx; - time_t now = apk_time(); + time_t now = time(NULL); pid_t pid = getpid(); gmtime_r(&now, &tm); diff --git a/src/apk.c b/src/apk.c index 2b4a41d..68050cd 100644 --- a/src/apk.c +++ b/src/apk.c @@ -47,14 +47,14 @@ static struct apk_string_array *test_repos; char **apk_argv; -time_t apk_time(void) -{ #ifdef TEST_MODE - return 1559567666; -#else - return time(NULL); -#endif +time_t time(time_t *tloc) +{ + const time_t val = 1559567666; + if (tloc) *tloc = val; + return val; } +#endif static void version(void) { diff --git a/src/apk_defines.h b/src/apk_defines.h index b008b51..1a84ea0 100644 --- a/src/apk_defines.h +++ b/src/apk_defines.h @@ -122,8 +122,6 @@ extern char **apk_argv; #define APK_MAX_TAGS 16 /* see solver; unsigned short */ #define APK_CACHE_CSUM_BYTES 4 -time_t apk_time(void); - static inline size_t apk_calc_installed_size(size_t size) { const size_t bsize = 4 * 1024; diff --git a/src/archive.c b/src/archive.c index 24676b1..226bc23 100644 --- a/src/archive.c +++ b/src/archive.c @@ -293,7 +293,7 @@ int apk_tar_write_entry(struct apk_ostream *os, const struct apk_file_info *ae, PUT_OCTAL(buf.uid, ae->uid); PUT_OCTAL(buf.gid, ae->gid); PUT_OCTAL(buf.mode, ae->mode & 07777); - PUT_OCTAL(buf.mtime, ae->mtime ?: apk_time()); + PUT_OCTAL(buf.mtime, ae->mtime ?: time(NULL)); /* Checksum */ strcpy(buf.magic, "ustar "); diff --git a/src/database.c b/src/database.c index 3f1904f..f358ad1 100644 --- a/src/database.c +++ b/src/database.c @@ -624,7 +624,7 @@ int apk_cache_download(struct apk_database *db, struct apk_repository *repo, char tmpcacheitem[128], *cacheitem = &tmpcacheitem[tmpprefix.len]; apk_blob_t b = APK_BLOB_BUF(tmpcacheitem); int r, fd; - time_t now = apk_time(); + time_t now = time(NULL); apk_blob_push_blob(&b, tmpprefix); if (pkg != NULL) @@ -1008,7 +1008,7 @@ static int apk_db_scriptdb_write(struct apk_database *db, struct apk_ostream *os char filename[256]; apk_blob_t bfn; int r, i; - time_t now = apk_time(); + time_t now = time(NULL); list_for_each_entry(ipkg, &db->installed.packages, installed_pkgs_list) { pkg = ipkg->pkg; diff --git a/src/lua-apk.c b/src/lua-apk.c index 2f365b2..73c33e9 100644 --- a/src/lua-apk.c +++ b/src/lua-apk.c @@ -46,11 +46,6 @@ static int typerror (lua_State *L, int narg, const char *tname) { return luaL_argerror(L, narg, msg); } -time_t apk_time(void) -{ - return time(NULL); -} - static apk_blob_t check_blob(lua_State *L, int index) { apk_blob_t blob; -- cgit v1.2.3