diff options
-rw-r--r-- | debian/changelog | 8 | ||||
-rw-r--r-- | debian/libuuid1.symbols | 2 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | debian/patches/upstream/libuuid-Add-uuid_time64-for-64bit-time_t-on-32bit.patch | 129 |
4 files changed, 140 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index dab575f..1545c2e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +util-linux (2.39.3-7) unstable; urgency=medium + + * Run wrap-and-sort -kas + * Revert rename of libuuid1 to libuuid1t64 + * Apply upstream patches for dual-time_t-ABI + + -- Chris Hofstaedtler <zeha@debian.org> Fri, 01 Mar 2024 11:20:22 +0100 + util-linux (2.39.3-6.1~progress7.99u1) graograman-backports; urgency=medium * Uploading to graograman-backports, remaining changes: diff --git a/debian/libuuid1.symbols b/debian/libuuid1.symbols index 43559d1..28eda2d 100644 --- a/debian/libuuid1.symbols +++ b/debian/libuuid1.symbols @@ -5,6 +5,7 @@ libuuid.so.1 libuuid1 #MINVER# UUID_2.20@UUID_2.20 2.20.1 UUID_2.31@UUID_2.31 2.31.1 UUID_2.36@UUID_2.36 2.36 + UUID_2.40@UUID_2.40 2.39.3-7~ __uuid_generate_random@UUIDD_PRIVATE 2.20.1 __uuid_generate_time@UUIDD_PRIVATE 2.20.1 __uuid_generate_time_cont@UUIDD_PRIVATE 2.38.1-2~ @@ -22,6 +23,7 @@ libuuid.so.1 libuuid1 #MINVER# uuid_parse@UUID_1.0 2.16 uuid_parse_range@UUID_2.36 2.36 uuid_time@UUID_1.0 2.16 + (arch=armel armhf hppa m68k mips mipsel powerpc sh4)uuid_time64@UUID_2.40 2.39.3-7~ uuid_type@UUID_1.0 2.16 uuid_unparse@UUID_1.0 2.16 uuid_unparse_lower@UUID_1.0 2.16 diff --git a/debian/patches/series b/debian/patches/series index f7f37e0..9ddc8d9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -13,5 +13,6 @@ upstream/setarch-add-riscv64-riscv32-support.patch upstream/cfdisk-fix-menu-behavior-after-writing-changes.patch upstream/fincore-tests-also-use-nosize-error-file.patch upstream/build-only-build-test_enosys-if-an-audit-arch-exists.patch +upstream/libuuid-Add-uuid_time64-for-64bit-time_t-on-32bit.patch progress-linux/0001-agetty-prompt.patch progress-linux/0002-login-prompt.patch diff --git a/debian/patches/upstream/libuuid-Add-uuid_time64-for-64bit-time_t-on-32bit.patch b/debian/patches/upstream/libuuid-Add-uuid_time64-for-64bit-time_t-on-32bit.patch new file mode 100644 index 0000000..84a2a0e --- /dev/null +++ b/debian/patches/upstream/libuuid-Add-uuid_time64-for-64bit-time_t-on-32bit.patch @@ -0,0 +1,129 @@ +From: Thorsten Kukuk <kukuk@suse.com> +Date: Thu, 30 Nov 2023 16:28:53 +0100 +Subject: libuuid: Add uuid_time64 for 64bit time_t on 32bit + +Signed-off-by: Thorsten Kukuk <kukuk@suse.com> +--- + libuuid/src/libuuid.sym | 9 ++++++++ + libuuid/src/uuid.h | 3 +++ + libuuid/src/uuid_time.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++- + 3 files changed, 70 insertions(+), 1 deletion(-) + +diff --git a/libuuid/src/libuuid.sym b/libuuid/src/libuuid.sym +index 96372a8..0f67ede 100644 +--- a/libuuid/src/libuuid.sym ++++ b/libuuid/src/libuuid.sym +@@ -52,6 +52,15 @@ global: + uuid_parse_range; + } UUID_2.31; + ++/* ++ * version(s) since util-linux.2.40 ++ */ ++UUID_2.40 { ++global: ++ uuid_time64; /* only on 32bit architectures with 64bit time_t */ ++} UUID_2.36; ++ ++ + + /* + * __uuid_* this is not part of the official API, this is +diff --git a/libuuid/src/uuid.h b/libuuid/src/uuid.h +index e791abf..2e3642c 100644 +--- a/libuuid/src/uuid.h ++++ b/libuuid/src/uuid.h +@@ -109,6 +109,9 @@ extern void uuid_unparse_lower(const uuid_t uu, char *out); + extern void uuid_unparse_upper(const uuid_t uu, char *out); + + /* uuid_time.c */ ++#if defined(__USE_TIME_BITS64) && defined(__GLIBC__) ++# define uuid_time uuid_time64 ++#endif + extern time_t uuid_time(const uuid_t uu, struct timeval *ret_tv); + extern int uuid_type(const uuid_t uu); + extern int uuid_variant(const uuid_t uu); +diff --git a/libuuid/src/uuid_time.c b/libuuid/src/uuid_time.c +index 6f07d51..9b415b3 100644 +--- a/libuuid/src/uuid_time.c ++++ b/libuuid/src/uuid_time.c +@@ -40,6 +40,7 @@ + #define UUID MYUUID + #endif + ++#include <errno.h> + #include <stdio.h> + #ifdef HAVE_UNISTD_H + #include <unistd.h> +@@ -53,7 +54,15 @@ + + #include "uuidP.h" + +-time_t uuid_time(const uuid_t uu, struct timeval *ret_tv) ++#undef uuid_time ++ ++/* prototype to make compiler happy */ ++time_t __uuid_time(const uuid_t uu, struct timeval *ret_tv); ++ ++ ++/* this function could be 32bit time_t and 32bit timeval or 64bit, ++ depending on compiler flags and architecture. */ ++time_t __uuid_time(const uuid_t uu, struct timeval *ret_tv) + { + struct timeval tv; + struct uuid uuid; +@@ -74,6 +83,54 @@ time_t uuid_time(const uuid_t uu, struct timeval *ret_tv) + + return tv.tv_sec; + } ++#if defined(__USE_TIME_BITS64) && defined(__GLIBC__) ++extern time_t uuid_time64(const uuid_t uu, struct timeval *ret_tv) __attribute__((weak, alias("__uuid_time"))); ++#else ++extern time_t uuid_time(const uuid_t uu, struct timeval *ret_tv) __attribute__((weak, alias("__uuid_time"))); ++#endif ++ ++#if defined(__USE_TIME_BITS64) && defined(__GLIBC__) ++struct timeval32 ++{ ++ int32_t tv_sec; ++ int32_t tv_usec; ++}; ++ ++/* prototype to make compiler happy */ ++int32_t __uuid_time32(const uuid_t uu, struct timeval32 *ret_tv); ++ ++/* Check whether time fits in 32bit time_t. */ ++static inline int ++in_time32_t_range(time_t t) ++{ ++ int32_t s; ++ ++ s = t; ++ ++ return s == t; ++} ++ ++int32_t __uuid_time32(const uuid_t uu, struct timeval32 *ret_tv) ++{ ++ struct timeval tv; ++ time_t ret_time = __uuid_time(uu, &tv); ++ ++ if (! in_time32_t_range(ret_time)) { ++ ret_tv->tv_sec = -1; ++ ret_tv->tv_usec = -1; ++ errno = EOVERFLOW; ++ return -1; ++ } ++ ++ if (ret_tv) { ++ ret_tv->tv_sec = tv.tv_sec; ++ ret_tv->tv_usec = tv.tv_usec; ++ } ++ ++ return tv.tv_sec; ++} ++extern int32_t uuid_time(const uuid_t uu, struct timeval32 *ret_tv) __attribute__((weak, alias("__uuid_time32"))); ++#endif + + int uuid_type(const uuid_t uu) + { |