Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rpm for openSUSE:Factory checked in at 2022-04-23 19:44:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpm (Old) and /work/SRC/openSUSE:Factory/.rpm.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm" Sat Apr 23 19:44:55 2022 rev:296 rq:971138 version:4.17.0 Changes: -------- --- /work/SRC/openSUSE:Factory/rpm/rpm.changes 2022-03-17 17:01:20.149677894 +0100 +++ /work/SRC/openSUSE:Factory/.rpm.new.1538/rpm.changes 2022-04-23 19:45:01.174915791 +0200 @@ -1,0 +2,5 @@ +Wed Mar 30 08:54:50 UTC 2022 - Martin Li??ka <[email protected]> + +- Update zstdpool.diff in order to fix boo#1197643. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rpm.spec ++++++ --- /var/tmp/diff_new_pack.XlXlb2/_old 2022-04-23 19:45:02.530917403 +0200 +++ /var/tmp/diff_new_pack.XlXlb2/_new 2022-04-23 19:45:02.534917408 +0200 @@ -183,8 +183,8 @@ Requires: gawk Requires: gcc #Requires: gcc-PIE -Requires: gettext-tools Requires: /usr/bin/gzip +Requires: gettext-tools Requires: glibc-devel Requires: glibc-locale-base Requires: grep ++++++ zstdpool.diff ++++++ --- /var/tmp/diff_new_pack.XlXlb2/_old 2022-04-23 19:45:02.890917831 +0200 +++ /var/tmp/diff_new_pack.XlXlb2/_new 2022-04-23 19:45:02.894917836 +0200 @@ -1,5 +1,5 @@ ---- ./rpmio/rpmio.c.orig 2021-10-14 12:34:22.865316722 +0000 -+++ ./rpmio/rpmio.c 2021-10-14 13:37:56.835119919 +0000 +--- ./rpmio/rpmio.c.orig 2021-06-21 12:00:44.648612706 +0000 ++++ ./rpmio/rpmio.c 2022-04-13 13:48:55.224954032 +0000 @@ -8,6 +8,7 @@ #include <ctype.h> #include <dirent.h> @@ -16,7 +16,7 @@ #include <zstd.h> typedef struct rpmzstd_s { -@@ -1048,6 +1050,27 @@ typedef struct rpmzstd_s { +@@ -1048,6 +1050,29 @@ typedef struct rpmzstd_s { ZSTD_outBuffer zob; /*!< ZSTD_outBuffer */ } * rpmzstd; @@ -24,6 +24,7 @@ + +static pthread_once_t zstdThreadPoolCreated = PTHREAD_ONCE_INIT; +static ZSTD_threadPool *zstdThreadPool; ++static int zstdThreadPoolThreads; + +static void zstdCreateThreadPool(void) +{ @@ -31,6 +32,7 @@ + if (numthreads >= 0) + numthreads = get_compression_threads(numthreads > 0 ? numthreads : -1); + if (numthreads > 0) { ++ zstdThreadPoolThreads = numthreads; + zstdThreadPool = ZSTD_createThreadPool(numthreads); + if (!zstdThreadPool) + rpmlog(RPMLOG_WARNING, "Could not create zstd thread pool for %d threads\n", numthreads); @@ -44,7 +46,7 @@ static rpmzstd rpmzstdNew(int fdno, const char *fmode) { int flags = 0; -@@ -1133,8 +1156,15 @@ static rpmzstd rpmzstdNew(int fdno, cons +@@ -1133,8 +1158,18 @@ static rpmzstd rpmzstdNew(int fdno, cons threads = get_compression_threads(threads); if (threads > 0) { @@ -54,8 +56,11 @@ + } else { +#if ZSTD_VERSION_NUMBER >= 10407 + pthread_once(&zstdThreadPoolCreated, zstdCreateThreadPool); -+ if (zstdThreadPool) ++ if (zstdThreadPool) { ++ if (threads > zstdThreadPoolThreads) ++ ZSTD_CCtx_setParameter(_stream, ZSTD_c_nbWorkers, zstdThreadPoolThreads); + ZSTD_CCtx_refThreadPool(_stream, zstdThreadPool); ++ } +#endif + } }
