From 616ef7e058f3af5ab6fdfc59bec07ec8189920cf Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 30 Jul 2019 22:08:14 -0700 Subject: [PATCH] zstd: Update to 1.4.2 Add patch to remove deprecated utime function. Signed-off-by: Rosen Penev --- utils/zstd/Makefile | 4 +- utils/zstd/patches/010-utime.patch | 97 ++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 utils/zstd/patches/010-utime.patch diff --git a/utils/zstd/Makefile b/utils/zstd/Makefile index 2cb0bda297..03931dbe47 100644 --- a/utils/zstd/Makefile +++ b/utils/zstd/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zstd -PKG_VERSION:=1.4.1 +PKG_VERSION:=1.4.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/facebook/zstd/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f91ea3397e6cc65d398e1bc0713cf2f0b0de2fb85ea9dabb1eb3e8f1b22f8d6f +PKG_HASH:=7a6e1dad34054b35e2e847eb3289be8820a5d378228802239852f913c6dcf6a7 PKG_MAINTAINER:=Amol Bhave PKG_LICENSE:=GPL-2.0-or-later diff --git a/utils/zstd/patches/010-utime.patch b/utils/zstd/patches/010-utime.patch new file mode 100644 index 0000000000..a67e696aca --- /dev/null +++ b/utils/zstd/patches/010-utime.patch @@ -0,0 +1,97 @@ +From 245a69c0f5784ba89c28301263bcfd5785ebe0ea Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Tue, 30 Jul 2019 17:17:07 -0700 +Subject: [PATCH] zstd: Don't use utime on Linux + +utime is deprecated by POSIX 2008 and optionally not available with +uClibc-ng. + +Got rid of a few useless headers in timefn.h. + +Signed-off-by: Rosen Penev +--- + programs/platform.h | 2 +- + programs/timefn.h | 6 ------ + programs/util.c | 10 ++++++++++ + programs/util.h | 5 +++-- + 4 files changed, 14 insertions(+), 9 deletions(-) + +diff --git a/programs/platform.h b/programs/platform.h +index 38ded8727..5934e59cf 100644 +--- a/programs/platform.h ++++ b/programs/platform.h +@@ -92,7 +92,7 @@ extern "C" { + + # if defined(__linux__) || defined(__linux) + # ifndef _POSIX_C_SOURCE +-# define _POSIX_C_SOURCE 200112L /* feature test macro : https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html */ ++# define _POSIX_C_SOURCE 200809L /* feature test macro : https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html */ + # endif + # endif + # include /* declares _POSIX_VERSION */ +diff --git a/programs/timefn.h b/programs/timefn.h +index d1ddd31b1..2db3765b9 100644 +--- a/programs/timefn.h ++++ b/programs/timefn.h +@@ -19,12 +19,6 @@ extern "C" { + /*-**************************************** + * Dependencies + ******************************************/ +-#include /* utime */ +-#if defined(_MSC_VER) +-# include /* utime */ +-#else +-# include /* utime */ +-#endif + #include /* clock_t, clock, CLOCKS_PER_SEC */ + + +diff --git a/programs/util.c b/programs/util.c +index fb77d1783..3a2e9e28f 100644 +--- a/programs/util.c ++++ b/programs/util.c +@@ -54,14 +54,24 @@ int UTIL_getFileStat(const char* infilename, stat_t *statbuf) + int UTIL_setFileStat(const char *filename, stat_t *statbuf) + { + int res = 0; ++#if defined(_WIN32) + struct utimbuf timebuf; ++#else ++ struct timespec timebuf[2]; ++#endif + + if (!UTIL_isRegularFile(filename)) + return -1; + ++#if defined(_WIN32) + timebuf.actime = time(NULL); + timebuf.modtime = statbuf->st_mtime; + res += utime(filename, &timebuf); /* set access and modification times */ ++#else ++ timebuf[0].tv_sec = time(NULL); ++ timebuf[1].tv_sec = statbuf->st_mtime; ++ res += utimensat(AT_FDCWD, filename, timebuf, 0); /* set access and modification times */ ++#endif + + #if !defined(_WIN32) + res += chown(filename, statbuf->st_uid, statbuf->st_gid); /* Copy ownership */ +diff --git a/programs/util.h b/programs/util.h +index d6e5bb550..71d4c7c77 100644 +--- a/programs/util.h ++++ b/programs/util.h +@@ -25,12 +25,13 @@ extern "C" { + #include /* fprintf */ + #include /* stat, utime */ + #include /* stat, chmod */ +-#if defined(_MSC_VER) ++#if defined(_WIN32) + # include /* utime */ + # include /* _chmod */ + #else ++# include /* AT_FDCWD */ ++# include /* utimensat */ + # include /* chown, stat */ +-# include /* utime */ + #endif + #include /* clock_t, clock, CLOCKS_PER_SEC, nanosleep */ + #include "mem.h" /* U32, U64 */