From b057f750a5ed43d44e860dfff4d1e31d6e139f8a Mon Sep 17 00:00:00 2001 From: tobtoht Date: Tue, 28 Feb 2023 12:33:32 +0100 Subject: [PATCH] depends: bump polyseed to 2.0.0 --- contrib/depends/packages/polyseed.mk | 7 +- .../depends/patches/polyseed/no_time_t.patch | 187 ++++++++++++++++++ 2 files changed, 190 insertions(+), 4 deletions(-) create mode 100644 contrib/depends/patches/polyseed/no_time_t.patch diff --git a/contrib/depends/packages/polyseed.mk b/contrib/depends/packages/polyseed.mk index b39d8e1..0e01d37 100644 --- a/contrib/depends/packages/polyseed.mk +++ b/contrib/depends/packages/polyseed.mk @@ -1,15 +1,14 @@ package=polyseed -$(package)_version=1.0.0 +$(package)_version=2.0.0 $(package)_download_path=https://github.com/tevador/polyseed/archive/refs/tags/ $(package)_file_name=v$($(package)_version).tar.gz $(package)_sha256_hash=45f1e6c08575286581079e6e26d341a3a33abe1f1ee2d026bd098cf632ea2349 $(package)_mingw32_dependencies=native_cmake -$(package)_patches=no_shared.patch force-static-mingw.patch 32-bit.patch +$(package)_patches=force-static-mingw.patch no_time_t.patch define $(package)_preprocess_cmds - patch -p1 < $($(package)_patch_dir)/no_shared.patch && \ patch -p1 < $($(package)_patch_dir)/force-static-mingw.patch && \ - patch -p1 < $($(package)_patch_dir)/32-bit.patch + patch -p1 < $($(package)_patch_dir)/no_time_t.patch endef define $(package)_config_cmds diff --git a/contrib/depends/patches/polyseed/no_time_t.patch b/contrib/depends/patches/polyseed/no_time_t.patch new file mode 100644 index 0000000..0374843 --- /dev/null +++ b/contrib/depends/patches/polyseed/no_time_t.patch @@ -0,0 +1,187 @@ +From 9c96f214a8ce9c8445a713d5589a7fbc0fea5d50 Mon Sep 17 00:00:00 2001 +From: tevador +Date: Sat, 18 Feb 2023 18:42:09 +0100 +Subject: [PATCH] Get rid of time_t to support 32-bit systems + +--- + CMakeLists.txt | 4 ++-- + README.md | 2 +- + include/polyseed.h | 3 +-- + src/birthday.h | 10 ++++------ + src/dependency.c | 6 +++++- + src/dependency.h | 2 +- + src/polyseed.c | 2 +- + tests/tests.c | 13 ++++++------- + 8 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8839b25..8a8e7c2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -34,8 +34,8 @@ set_property(TARGET polyseed PROPERTY PUBLIC_HEADER include/polyseed.h) + include_directories(polyseed + include/) + target_compile_definitions(polyseed PRIVATE POLYSEED_SHARED) +-set_target_properties(polyseed PROPERTIES VERSION 1.0.0 +- SOVERSION 1 ++set_target_properties(polyseed PROPERTIES VERSION 2.0.0 ++ SOVERSION 2 + C_STANDARD 11 + C_STANDARD_REQUIRED ON) + +diff --git a/README.md b/README.md +index 6e51a87..251c2e5 100644 +--- a/README.md ++++ b/README.md +@@ -94,7 +94,7 @@ Additional 3 functions are optional dependencies. If they are not provided (the + + | dependency | description | libc function | + |------------|-------------|----------------| +-| time | Function to get the current unix time | `time_t time(time_t *arg);` | ++| time | Function to get the current unix time | `uint64_t time(void);` | + | alloc | Function to allocate memory | `void* malloc(size_t size);` | + | free | Function to free memory | `void free(void* ptr)` | + +diff --git a/include/polyseed.h b/include/polyseed.h +index d8fc913..9579699 100644 +--- a/include/polyseed.h ++++ b/include/polyseed.h +@@ -6,7 +6,6 @@ + + #include + #include +-#include + + /* Number of words in the mnemonic phrase */ + #define POLYSEED_NUM_WORDS 16 +@@ -29,7 +28,7 @@ typedef void polyseed_pbkdf2(const uint8_t* pw, size_t pwlen, + const uint8_t* salt, size_t saltlen, uint64_t iterations, + uint8_t* key, size_t keylen); + typedef size_t polyseed_transform(const char* str, polyseed_str norm); +-typedef time_t polyseed_time(time_t* t); ++typedef uint64_t polyseed_time(void); + typedef void polyseed_memzero(void* const ptr, const size_t len); + typedef void* polyseed_malloc(size_t n); + typedef void polyseed_mfree(void* ptr); +diff --git a/src/birthday.h b/src/birthday.h +index 822883a..5f3aa87 100644 +--- a/src/birthday.h ++++ b/src/birthday.h +@@ -4,20 +4,18 @@ + #ifndef BIRTHDAY_H + #define BIRTHDAY_H + +-#include ++#include + #include + +-static_assert(sizeof(time_t) == 8, "time_t must be a 64-bit type."); +- + #define EPOCH ((uint64_t)1635768000) /* 1st November 2021 12:00 UTC */ + #define TIME_STEP ((uint64_t)2629746) /* 30.436875 days = 1/12 of the Gregorian year */ + + #define DATE_BITS 10 + #define DATE_MASK ((1u << DATE_BITS) - 1) + +-static inline unsigned birthday_encode(time_t time) { +- assert(time >= EPOCH); +- if (time == (time_t)-1) { ++static inline unsigned birthday_encode(uint64_t time) { ++ /* Handle broken time() implementations. */ ++ if (time == (uint64_t)-1 || time < EPOCH) { + return 0; + } + return ((time - EPOCH) / TIME_STEP) & DATE_MASK; +diff --git a/src/dependency.c b/src/dependency.c +index 786ce63..822eecc 100644 +--- a/src/dependency.c ++++ b/src/dependency.c +@@ -10,10 +10,14 @@ + + POLYSEED_PRIVATE polyseed_dependency polyseed_deps; + ++static uint64_t stdlib_time() { ++ return (uint64_t)time(NULL); ++} ++ + void polyseed_inject(const polyseed_dependency* deps) { + polyseed_deps = *deps; + if (polyseed_deps.time == NULL) { +- polyseed_deps.time = &time; ++ polyseed_deps.time = &stdlib_time; + } + if (polyseed_deps.alloc == NULL) { + polyseed_deps.alloc = &malloc; +diff --git a/src/dependency.h b/src/dependency.h +index 8ffe1e3..9a8f526 100644 +--- a/src/dependency.h ++++ b/src/dependency.h +@@ -45,7 +45,7 @@ static size_t utf8_nfkd_lazy(const char* str, polyseed_str norm) { + #define MEMZERO_PTR(x, type) polyseed_deps.memzero((x), sizeof(type)) + #define UTF8_COMPOSE(a, b) polyseed_deps.u8_nfc((a), (b)) + #define UTF8_DECOMPOSE(a, b) utf8_nfkd_lazy((a), (b)) +-#define GET_TIME() polyseed_deps.time(NULL) ++#define GET_TIME() polyseed_deps.time() + #define ALLOC(x) polyseed_deps.alloc(x) + #define FREE(x) polyseed_deps.free(x) + +diff --git a/src/polyseed.c b/src/polyseed.c +index 82e6bed..b315dd6 100644 +--- a/src/polyseed.c ++++ b/src/polyseed.c +@@ -9,7 +9,7 @@ + #include "gf.h" + #include "storage.h" + +-#include ++#include + #include + #include + #include +diff --git a/tests/tests.c b/tests/tests.c +index 4b41ea0..9aa5887 100644 +--- a/tests/tests.c ++++ b/tests/tests.c +@@ -12,7 +12,6 @@ + #include + #include + #include +-#include + #include + #include + +@@ -21,9 +20,9 @@ typedef void multitest_func(void); + + static int g_test_no = 0; + +-#define SEED_TIME1 ((time_t)1638446400) /* Dec 2021 */ +-#define SEED_TIME2 ((time_t)3118651200) /* Oct 2068 */ +-#define SEED_TIME3 ((time_t)4305268800) /* Jun 2106 */ ++#define SEED_TIME1 ((uint64_t)1638446400) /* Dec 2021 */ ++#define SEED_TIME2 ((uint64_t)3118651200) /* Oct 2068 */ ++#define SEED_TIME3 ((uint64_t)4305268800) /* Jun 2106 */ + + #define FEATURE_FOO 1 + #define FEATURE_BAR 2 +@@ -254,15 +253,15 @@ static size_t u8_nfkd_spaces(const char* str, polyseed_str norm) { + return i; + } + +-static time_t time1(time_t* t) { ++static uint64_t time1() { + return SEED_TIME1; + } + +-static time_t time2(time_t* t) { ++static uint64_t time2() { + return SEED_TIME2; + } + +-static time_t time3(time_t* t) { ++static uint64_t time3() { + return SEED_TIME3; + } + +-- +2.39.2 +