RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [email protected] Module: rpm Date: 30-May-2017 21:18:39 Branch: rpm-5_4 Handle: 2017053019183702 Modified files: (Branch: rpm-5_4) rpm CHANGES configure.ac rpm/build pack.c parsePrep.c rpm/lib psm.c rpmds.c rpm/macros macros.in rpm/rpmio librpmio.vers macro.c rpmio.c rpmio.h Log: - zstd: stub in zstd compression framework. Summary: Revision Changes Path 1.3501.2.567+1 -0 rpm/CHANGES 2.324.2.22 +8 -0 rpm/build/pack.c 2.132.2.13 +6 -0 rpm/build/parsePrep.c 2.472.2.173 +169 -0 rpm/configure.ac 2.399.2.27 +10 -8 rpm/lib/psm.c 2.170.2.39 +5 -0 rpm/lib/rpmds.c 1.39.2.51 +2 -1 rpm/macros/macros.in 2.199.2.83 +1 -0 rpm/rpmio/librpmio.vers 2.249.2.47 +8 -1 rpm/rpmio/macro.c 1.230.2.54 +24 -4 rpm/rpmio/rpmio.c 1.97.2.21 +4 -0 rpm/rpmio/rpmio.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3501.2.566 -r1.3501.2.567 CHANGES --- rpm/CHANGES 28 May 2017 20:18:15 -0000 1.3501.2.566 +++ rpm/CHANGES 30 May 2017 19:18:37 -0000 1.3501.2.567 @@ -1,4 +1,5 @@ 5.4.17 -> 5.4.18: + - jbj: zstd: stub in zstd compression framework. - jbj: msqio: abstract out the AIO queue (AIOQ_t for now). - jbj: rpmaio: stub in an AIO aiocb pool. - jbj: msqio: replace pthreads monitor with yarn. @@ . patch -p0 <<'@@ .' Index: rpm/build/pack.c ============================================================================ $ cvs diff -u -r2.324.2.21 -r2.324.2.22 pack.c --- rpm/build/pack.c 16 May 2017 20:14:31 -0000 2.324.2.21 +++ rpm/build/pack.c 30 May 2017 19:18:38 -0000 2.324.2.22 @@ -694,6 +694,14 @@ xx = headerPut(h, he, 0); he->p.ptr = _free(he->p.ptr); (void) rpmlibNeedsFeature(h, "PayloadIsXz", "5.2-1"); + } else if (s[1] == 'z' && s[2] == 's' && s[3] == 't') { + he->tag = RPMTAG_PAYLOADCOMPRESSOR; + he->t = RPM_STRING_TYPE; + he->p.str = xstrdup("zstd"); + he->c = 1; + xx = headerPut(h, he, 0); + he->p.ptr = _free(he->p.ptr); + (void) rpmlibNeedsFeature(h, "PayloadIsZstd", "5.4.18-1"); } strncpy(buf, rpmio_flags, sizeof(buf)-1); buf[s - rpmio_flags] = '\0'; @@ . patch -p0 <<'@@ .' Index: rpm/build/parsePrep.c ============================================================================ $ cvs diff -u -r2.132.2.12 -r2.132.2.13 parsePrep.c --- rpm/build/parsePrep.c 16 May 2017 20:14:31 -0000 2.132.2.12 +++ rpm/build/parsePrep.c 30 May 2017 19:18:38 -0000 2.132.2.13 @@ -164,6 +164,9 @@ case COMPRESSED_XZ: zipper = "%{__xz}"; break; + case COMPRESSED_ZSTD: + zipper = "%{__zstd}"; + break; } zipper = rpmGetPath(zipper, NULL); @@ -309,6 +312,9 @@ case COMPRESSED_XZ: t = "%{__xz} -dc"; break; + case COMPRESSED_ZSTD: + t = "%{__zstd} -dc"; + break; case COMPRESSED_LZIP: t = "%{__lzip} -dc"; break; @@ . patch -p0 <<'@@ .' Index: rpm/configure.ac ============================================================================ $ cvs diff -u -r2.472.2.172 -r2.472.2.173 configure.ac --- rpm/configure.ac 20 May 2017 19:21:07 -0000 2.472.2.172 +++ rpm/configure.ac 30 May 2017 19:18:38 -0000 2.472.2.173 @@ -1166,6 +1166,7 @@ AC_PATH_PROG(__TCLSH, tclsh, %{_bindir}/tclsh, $MYPATH) AC_PATH_PROG(__UNZIP, unzip, %{_bindir}/unzip, $MYPATH) AC_PATH_PROG(__XZ, xz, %{_bindir}/xz, $MYPATH) +AC_PATH_PROG(__ZSTD, zstd, %{_bindir}/zstd, $MYPATH) AC_PATH_PROG(__LD, ld, %{_bindir}/ld, $MYPATH) AC_PATH_PROG(__NM, nm, %{_bindir}/nm, $MYPATH) AC_PATH_PROG(__OBJCOPY, objcopy, %{_bindir}/objcopy, $MYPATH) @@ -2256,6 +2257,157 @@ AC_MSG_ERROR([you have passed --without-{xz,bzip2,zlib} together but it isn't possible to build rpm without any form of compression library. At a minimum, i suggest adding --with-zlib if you want to actually build and install a *.rpm package]) fi +dnl # Facebook Zstd +RPM_CHECK_LIB( + [Facebook Zstd], [zstd], + [zstd], [ZSTD_versionNumber], [zstd.h], + [no,external:none], [], + [ + AC_CHECK_FUNCS(COVER_optimizeTrainFromBuffer) + AC_CHECK_FUNCS(COVER_trainFromBuffer) + AC_CHECK_FUNCS(ZBUFF_compressContinue) + AC_CHECK_FUNCS(ZBUFF_compressEnd) + AC_CHECK_FUNCS(ZBUFF_compressFlush) + AC_CHECK_FUNCS(ZBUFF_compressInit) + AC_CHECK_FUNCS(ZBUFF_compressInit_advanced) + AC_CHECK_FUNCS(ZBUFF_compressInitDictionary) + AC_CHECK_FUNCS(ZBUFF_createCCtx) + AC_CHECK_FUNCS(ZBUFF_createCCtx_advanced) + AC_CHECK_FUNCS(ZBUFF_createDCtx) + AC_CHECK_FUNCS(ZBUFF_createDCtx_advanced) + AC_CHECK_FUNCS(ZBUFF_decompressContinue) + AC_CHECK_FUNCS(ZBUFF_decompressInit) + AC_CHECK_FUNCS(ZBUFF_decompressInitDictionary) + AC_CHECK_FUNCS(ZBUFF_freeCCtx) + AC_CHECK_FUNCS(ZBUFF_freeDCtx) + AC_CHECK_FUNCS(ZBUFF_getErrorName) + AC_CHECK_FUNCS(ZBUFF_isError) + AC_CHECK_FUNCS(ZBUFF_recommendedCInSize) + AC_CHECK_FUNCS(ZBUFF_recommendedCOutSize) + AC_CHECK_FUNCS(ZBUFF_recommendedDInSize) + AC_CHECK_FUNCS(ZBUFF_recommendedDOutSize) + AC_CHECK_FUNCS(ZDICT_addEntropyTablesFromBuffer) + AC_CHECK_FUNCS(ZDICT_finalizeDictionary) + AC_CHECK_FUNCS(ZDICT_getDictID) + AC_CHECK_FUNCS(ZDICT_getErrorName) + AC_CHECK_FUNCS(ZDICT_isError) + AC_CHECK_FUNCS(ZDICT_trainFromBuffer) + AC_CHECK_FUNCS(ZDICT_trainFromBuffer_advanced) + AC_CHECK_FUNCS(ZSTD_adjustCParams) + AC_CHECK_FUNCS(ZSTD_checkCParams) + AC_CHECK_FUNCS(ZSTD_compress) + AC_CHECK_FUNCS(ZSTD_compress_advanced) + AC_CHECK_FUNCS(ZSTD_compressBegin) + AC_CHECK_FUNCS(ZSTD_compressBegin_advanced) + AC_CHECK_FUNCS(ZSTD_compressBegin_usingCDict) + AC_CHECK_FUNCS(ZSTD_compressBegin_usingCDict_advanced) + AC_CHECK_FUNCS(ZSTD_compressBegin_usingDict) + AC_CHECK_FUNCS(ZSTD_compressBlock) + AC_CHECK_FUNCS(ZSTD_compressBound) + AC_CHECK_FUNCS(ZSTD_compressCCtx) + AC_CHECK_FUNCS(ZSTD_compressContinue) + AC_CHECK_FUNCS(ZSTD_compressEnd) + AC_CHECK_FUNCS(ZSTD_compressStream) + AC_CHECK_FUNCS(ZSTD_compress_usingCDict) + AC_CHECK_FUNCS(ZSTD_compress_usingCDict_advanced) + AC_CHECK_FUNCS(ZSTD_compress_usingDict) + AC_CHECK_FUNCS(ZSTD_copyCCtx) + AC_CHECK_FUNCS(ZSTD_copyDCtx) + AC_CHECK_FUNCS(ZSTD_createCCtx) + AC_CHECK_FUNCS(ZSTD_createCCtx_advanced) + AC_CHECK_FUNCS(ZSTD_createCDict) + AC_CHECK_FUNCS(ZSTD_createCDict_advanced) + AC_CHECK_FUNCS(ZSTD_createCDict_byReference) + AC_CHECK_FUNCS(ZSTD_createCStream) + AC_CHECK_FUNCS(ZSTD_createCStream_advanced) + AC_CHECK_FUNCS(ZSTD_createDCtx) + AC_CHECK_FUNCS(ZSTD_createDCtx_advanced) + AC_CHECK_FUNCS(ZSTD_createDDict) + AC_CHECK_FUNCS(ZSTD_createDDict_advanced) + AC_CHECK_FUNCS(ZSTD_createDDict_byReference) + AC_CHECK_FUNCS(ZSTD_createDStream) + AC_CHECK_FUNCS(ZSTD_createDStream_advanced) + AC_CHECK_FUNCS(ZSTD_CStreamInSize) + AC_CHECK_FUNCS(ZSTD_CStreamOutSize) + AC_CHECK_FUNCS(ZSTD_decompress) + AC_CHECK_FUNCS(ZSTD_decompressBegin) + AC_CHECK_FUNCS(ZSTD_decompressBegin_usingDDict) + AC_CHECK_FUNCS(ZSTD_decompressBegin_usingDict) + AC_CHECK_FUNCS(ZSTD_decompressBlock) + AC_CHECK_FUNCS(ZSTD_decompressContinue) + AC_CHECK_FUNCS(ZSTD_decompressDCtx) + AC_CHECK_FUNCS(ZSTD_decompressStream) + AC_CHECK_FUNCS(ZSTD_decompress_usingDDict) + AC_CHECK_FUNCS(ZSTD_decompress_usingDict) + AC_CHECK_FUNCS(ZSTD_DStreamInSize) + AC_CHECK_FUNCS(ZSTD_DStreamOutSize) + AC_CHECK_FUNCS(ZSTD_endStream) + AC_CHECK_FUNCS(ZSTD_estimateCCtxSize) + AC_CHECK_FUNCS(ZSTD_estimateCDictSize) + AC_CHECK_FUNCS(ZSTD_estimateCStreamSize) + AC_CHECK_FUNCS(ZSTD_estimateDCtxSize) + AC_CHECK_FUNCS(ZSTD_estimateDDictSize) + AC_CHECK_FUNCS(ZSTD_estimateDStreamSize) + AC_CHECK_FUNCS(ZSTD_findDecompressedSize) + AC_CHECK_FUNCS(ZSTD_findFrameCompressedSize) + AC_CHECK_FUNCS(ZSTD_flushStream) + AC_CHECK_FUNCS(ZSTD_freeCCtx) + AC_CHECK_FUNCS(ZSTD_freeCDict) + AC_CHECK_FUNCS(ZSTD_freeCStream) + AC_CHECK_FUNCS(ZSTD_freeDCtx) + AC_CHECK_FUNCS(ZSTD_freeDDict) + AC_CHECK_FUNCS(ZSTD_freeDStream) + AC_CHECK_FUNCS(ZSTD_getBlockSizeMax) + AC_CHECK_FUNCS(ZSTD_getCParams) + AC_CHECK_FUNCS(ZSTD_getDecompressedSize) + AC_CHECK_FUNCS(ZSTD_getDictID_fromDDict) + AC_CHECK_FUNCS(ZSTD_getDictID_fromDict) + AC_CHECK_FUNCS(ZSTD_getDictID_fromFrame) + AC_CHECK_FUNCS(ZSTD_getErrorCode) + AC_CHECK_FUNCS(ZSTD_getErrorName) + AC_CHECK_FUNCS(ZSTD_getErrorString) + AC_CHECK_FUNCS(ZSTD_getFrameContentSize) + AC_CHECK_FUNCS(ZSTD_getFrameHeader) + AC_CHECK_FUNCS(ZSTD_getParams) + AC_CHECK_FUNCS(ZSTD_initCStream) + AC_CHECK_FUNCS(ZSTD_initCStream_advanced) + AC_CHECK_FUNCS(ZSTD_initCStream_srcSize) + AC_CHECK_FUNCS(ZSTD_initCStream_usingCDict) + AC_CHECK_FUNCS(ZSTD_initCStream_usingCDict_advanced) + AC_CHECK_FUNCS(ZSTD_initCStream_usingDict) + AC_CHECK_FUNCS(ZSTD_initDStream) + AC_CHECK_FUNCS(ZSTD_initDStream_usingDDict) + AC_CHECK_FUNCS(ZSTD_initDStream_usingDict) + AC_CHECK_FUNCS(ZSTD_insertBlock) + AC_CHECK_FUNCS(ZSTD_isError) + AC_CHECK_FUNCS(ZSTD_isFrame) + AC_CHECK_FUNCS(ZSTD_maxCLevel) + AC_CHECK_FUNCS(ZSTDMT_compressCCtx) + AC_CHECK_FUNCS(ZSTDMT_compressStream) + AC_CHECK_FUNCS(ZSTDMT_createCCtx) + AC_CHECK_FUNCS(ZSTDMT_endStream) + AC_CHECK_FUNCS(ZSTDMT_flushStream) + AC_CHECK_FUNCS(ZSTDMT_freeCCtx) + AC_CHECK_FUNCS(ZSTDMT_initCStream) + AC_CHECK_FUNCS(ZSTDMT_initCStream_advanced) + AC_CHECK_FUNCS(ZSTDMT_resetCStream) + AC_CHECK_FUNCS(ZSTDMT_setMTCtxParameter) + AC_CHECK_FUNCS(ZSTD_nextInputType) + AC_CHECK_FUNCS(ZSTD_nextSrcSizeToDecompress) + AC_CHECK_FUNCS(ZSTD_resetCStream) + AC_CHECK_FUNCS(ZSTD_resetDStream) + AC_CHECK_FUNCS(ZSTD_setCCtxParameter) + AC_CHECK_FUNCS(ZSTD_setDStreamParameter) + AC_CHECK_FUNCS(ZSTD_sizeof_CCtx) + AC_CHECK_FUNCS(ZSTD_sizeof_CDict) + AC_CHECK_FUNCS(ZSTD_sizeof_CStream) + AC_CHECK_FUNCS(ZSTD_sizeof_DCtx) + AC_CHECK_FUNCS(ZSTD_sizeof_DDict) + AC_CHECK_FUNCS(ZSTD_sizeof_DStream) + AC_CHECK_FUNCS(ZSTD_versionNumber) + AC_CHECK_FUNCS(ZSTD_versionString) + ], []) + dnl # BeeCrypt RPM_CHECK_LIB( [BeeCrypt], [beecrypt], @@ -4756,6 +4908,23 @@ ], []) AC_SUBST(WITH_KEYUTILS_RPMKEY) +dnl # Linux libaio +RPM_CHECK_LIB( + [Linux libaio], [libaio], + [aio], [io_setup], [libaio.h], + [no,external:none], [], + [ + AC_CHECK_FUNCS(io_cancel) + AC_CHECK_FUNCS(io_destroy) + AC_CHECK_FUNCS(io_getevents) + AC_CHECK_FUNCS(io_queue_init) + AC_CHECK_FUNCS(io_queue_release) + AC_CHECK_FUNCS(io_queue_run) + AC_CHECK_FUNCS(io_queue_wait) + AC_CHECK_FUNCS(io_setup) + AC_CHECK_FUNCS(io_submit) + ], []) + # later.. dnl # CPUInfo RPM_CHECK_LIB( @@ . patch -p0 <<'@@ .' Index: rpm/lib/psm.c ============================================================================ $ cvs diff -u -r2.399.2.26 -r2.399.2.27 psm.c --- rpm/lib/psm.c 26 May 2017 20:49:25 -0000 2.399.2.26 +++ rpm/lib/psm.c 30 May 2017 19:18:39 -0000 2.399.2.27 @@ -2896,7 +2896,7 @@ case PSM_RPMIO_FLAGS: { const char * payload_compressor = NULL; const char * payload_format = NULL; - char * t; + char * te; he->tag = RPMTAG_PAYLOADCOMPRESSOR; xx = headerGet(fi->h, he, 0); @@ -2904,17 +2904,19 @@ if (payload_compressor == NULL) payload_compressor = xstrdup("gzip"); - psm->rpmio_flags = t = (char *) xmalloc(sizeof("w9.gzdio")); - *t = '\0'; - t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r")); + psm->rpmio_flags = te = (char *) xmalloc(sizeof("w9.gzdio")); + *te = '\0'; + te = stpcpy(te, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r")); if (!strcmp(payload_compressor, "gzip")) - t = stpcpy(t, ".gzdio"); + te = stpcpy(te, ".gzdio"); if (!strcmp(payload_compressor, "bzip2")) - t = stpcpy(t, ".bzdio"); + te = stpcpy(te, ".bzdio"); if (!strcmp(payload_compressor, "lzma")) - t = stpcpy(t, ".lzdio"); + te = stpcpy(te, ".lzdio"); if (!strcmp(payload_compressor, "xz")) - t = stpcpy(t, ".xzdio"); + te = stpcpy(te, ".xzdio"); + if (!strcmp(payload_compressor, "zstd")) + te = stpcpy(te, ".zstio"); payload_compressor = _free(payload_compressor); he->tag = RPMTAG_PAYLOADFORMAT; @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmds.c ============================================================================ $ cvs diff -u -r2.170.2.38 -r2.170.2.39 rpmds.c --- rpm/lib/rpmds.c 26 May 2017 20:49:25 -0000 2.170.2.38 +++ rpm/lib/rpmds.c 30 May 2017 19:18:39 -0000 2.170.2.39 @@ -1499,6 +1499,11 @@ { "rpmlib(SetVersions)", "4.0.4-alt98", (evrFlags)(RPMSENSE_RPMLIB|RPMSENSE_EQUAL), N_("dependencies support set/subset versions.") }, +#if defined(WITH_ZSTD) + { "rpmlib(PayloadIsZstd)", "5.4.18-1", + (evrFlags)(RPMSENSE_RPMLIB|RPMSENSE_EQUAL), + N_("package payload can be compressed using zstd.") }, +#endif { NULL, NULL, (evrFlags)0, NULL } }; @@ . patch -p0 <<'@@ .' Index: rpm/macros/macros.in ============================================================================ $ cvs diff -u -r1.39.2.50 -r1.39.2.51 macros.in --- rpm/macros/macros.in 29 Jun 2016 12:17:58 -0000 1.39.2.50 +++ rpm/macros/macros.in 30 May 2017 19:18:39 -0000 1.39.2.51 @@ -1,7 +1,7 @@ #/*! \page config_macros Default configuration: @USRLIBRPM@/macros # \verbatim # -# $Id: macros.in,v 1.39.2.50 2016/06/29 12:17:58 jbj Exp $ +# $Id: macros.in,v 1.39.2.51 2017/05/30 19:18:39 jbj Exp $ # # This is a global RPM configuration file. All changes made here will # be lost when the rpm package is upgraded. Any per-system configuration @@ -125,6 +125,7 @@ %__unzip @__UNZIP@ %__vcheck %{__perl} %{_rpmhome}/vcheck %__xz @__XZ@ +%__zstd @__ZSTD@ #============================================================================== # ---- Required macros. @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/librpmio.vers ============================================================================ $ cvs diff -u -r2.199.2.82 -r2.199.2.83 librpmio.vers --- rpm/rpmio/librpmio.vers 29 May 2017 16:21:00 -0000 2.199.2.82 +++ rpm/rpmio/librpmio.vers 30 May 2017 19:18:38 -0000 2.199.2.83 @@ -1025,6 +1025,7 @@ yarnRelease; yarnTwist; yarnWaitFor; + zstio; bcon_append; bcon_append_ctx; bcon_append_ctx_init; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/macro.c ============================================================================ $ cvs diff -u -r2.249.2.46 -r2.249.2.47 macro.c --- rpm/rpmio/macro.c 26 May 2017 20:49:22 -0000 2.249.2.46 +++ rpm/rpmio/macro.c 30 May 2017 19:18:38 -0000 2.249.2.47 @@ -1309,6 +1309,9 @@ case 9: /* COMPRESSED_7ZIP */ sprintf(be, "%%__7zip x %s", b); break; + case 10: /* COMPRESSED_ZSTD */ + sprintf(be, "%%__zstd -dc %s", b); + break; } b = be; } else if (STREQ("mkstemp", f, fn)) { @@ -3430,10 +3433,14 @@ *compressed = COMPRESSED_LZMA; return 0; } else - if (file_len > 4 && strcasecmp(file+file_len-3, ".xz") == 0) { + if (file_len > 3 && strcasecmp(file+file_len-3, ".xz") == 0) { *compressed = COMPRESSED_XZ; return 0; } else + if (file_len > 4 && strcasecmp(file+file_len-4, ".zst") == 0) { + *compressed = COMPRESSED_ZSTD; + return 0; + } else if ((file_len > 4 && strcasecmp(file+file_len-4, ".tgz") == 0) || (file_len > 3 && strcasecmp(file+file_len-3, ".gz") == 0) || (file_len > 2 && strcasecmp(file+file_len-2, ".Z") == 0)) { @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio.c ============================================================================ $ cvs diff -u -r1.230.2.53 -r1.230.2.54 rpmio.c --- rpm/rpmio/rpmio.c 28 May 2017 18:01:53 -0000 1.230.2.53 +++ rpm/rpmio/rpmio.c 30 May 2017 19:18:38 -0000 1.230.2.54 @@ -39,10 +39,6 @@ # include <netinet/in_systm.h> #endif -#if defined(WITH_XZ) -#include <lzma.h> -#endif - #include <rpmiotypes.h> #include <rpmmacro.h> /* XXX rpmioAccess needs rpmCleanPath() */ @@ -221,6 +217,10 @@ } else if (fps->io == xzdio) { sprintf(be, "XZD %p fdno %d", fps->fp, fps->fdno); #endif +#if defined(WITH_ZSTD) + } else if (fps->io == zstio) { + sprintf(be, "ZST %p fdno %d", fps->fp, fps->fdno); +#endif #if defined(WITH_MQ) || defined(WITH_MSQ) } else if (fps->io == msqio) { sprintf(be, "MSQ %p fdno %d", fps->fp, fps->fdno); @@ -2429,6 +2429,12 @@ } else #endif +#if defined(WITH_ZSTD) + if (fdGetIo(fd) == zstio) { + errstr = (const char *)fd->errcookie; + } else +#endif + { errstr = (fd->syserrno ? strerror(fd->syserrno) : ""); } @@ -2834,6 +2840,11 @@ iof = xzdio; fd = iof->_fdopen(fd, zstdio); #endif +#if defined(WITH_ZSTD) + } else if (!strcmp(end, "zstio")) { + iof = zstio; + fd = iof->_fdopen(fd, zstdio); +#endif #if defined(WITH_MQ) || defined(WITH_MSQ) } else if (!strcmp(end, "msqio")) { iof = msqio; @@ -3027,6 +3038,10 @@ if (vh && fdGetIo(fd) == xzdio && xzdio->_flush != NULL) return (*xzdio->_flush) ((void *)fd); #endif +#if defined(WITH_ZSTD) + if (vh && fdGetIo(fd) == zstio && zstio->_flush != NULL) + return (*bzdio->_flush) ((void *)fd); +#endif #if defined(WITH_MQ) || defined(WITH_MSQ) if (vh && fdGetIo(fd) == msqio && msqio->_flush != NULL) return (*msqio->_flush) ((void *)fd); @@ -3068,6 +3083,11 @@ ec = (fd->syserrno || fd->errcookie != NULL) ? -1 : 0; i--; /* XXX fdio under xzdio always has fdno == -1 */ #endif +#if defined(WITH_ZSTD) + } else if (fps->io == zstio) { + ec = (fd->syserrno || fd->errcookie != NULL) ? -1 : 0; + i--; /* XXX fdio under zstio always has fdno == -1 */ +#endif #if defined(WITH_MQ) || defined(WITH_MSQ) } else if (fps->io == msqio) { ec = (fd->syserrno || fd->errcookie != NULL) ? -1 : 0; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio.h ============================================================================ $ cvs diff -u -r1.97.2.20 -r1.97.2.21 rpmio.h --- rpm/rpmio/rpmio.h 27 May 2017 14:22:18 -0000 1.97.2.20 +++ rpm/rpmio/rpmio.h 30 May 2017 19:18:38 -0000 1.97.2.21 @@ -713,6 +713,10 @@ /** */ +extern FDIO_t zstio; + +/** + */ extern FDIO_t msqio; /*@}*/ @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
