View | Details | Raw Unified | Return to bug 255934 | Differences between
and this patch

Collapse All | Expand All

(-)b/archivers/zstd/Makefile (-6 / +7 lines)
Lines 1-9 Link Here
1
# Created by: John Marino <marino@FreeBSD.org>
1
# Created by: John Marino <marino@FreeBSD.org>
2
2
3
PORTNAME=	zstd
3
PORTNAME=	zstd
4
PORTVERSION=	1.4.9
4
DISTVERSION=	1.5.0
5
CATEGORIES=	archivers
5
CATEGORIES=	archivers
6
MASTER_SITES=	https://github.com/facebook/zstd/releases/download/v${PORTVERSION}/
6
MASTER_SITES=	https://github.com/facebook/zstd/releases/download/v${DISTVERSION}/
7
7
8
MAINTAINER=	sunpoet@FreeBSD.org
8
MAINTAINER=	sunpoet@FreeBSD.org
9
COMMENT=	Fast real-time compression algorithm
9
COMMENT=	Fast real-time compression algorithm
Lines 15-37 LICENSE_FILE_GPLv2= ${WRKSRC}/../../COPYING Link Here
15
15
16
TEST_DEPENDS=	gmd5sum:sysutils/coreutils
16
TEST_DEPENDS=	gmd5sum:sysutils/coreutils
17
17
18
USES=		meson pkgconfig python:3.4+,build shebangfix
18
USES=		meson pkgconfig python:3.7+,build shebangfix
19
19
20
MESON_ARGS=	-Ddefault_library=both
21
USE_LDCONFIG=	yes
20
USE_LDCONFIG=	yes
22
WRKSRC_SUBDIR=	build/meson
21
WRKSRC_SUBDIR=	build/meson
23
22
24
SHEBANG_FILES=	*.py
23
SHEBANG_FILES=	*.py
25
24
26
PLIST_SUB=	PORTVERSION=${PORTVERSION}
25
PLIST_SUB=	DISTVERSION=${DISTVERSION}
27
26
28
OPTIONS_DEFINE=	LZ4 OPTIMIZED_CFLAGS TEST
27
OPTIONS_DEFINE=	LZ4 OPTIMIZED_CFLAGS STATIC TEST
29
OPTIONS_DEFAULT=LZ4
28
OPTIONS_DEFAULT=LZ4
29
OPTIONS_SUB=	yes
30
30
31
LZ4_LIB_DEPENDS=	liblz4.so:archivers/liblz4
31
LZ4_LIB_DEPENDS=	liblz4.so:archivers/liblz4
32
LZ4_MESON_ENABLED=	lz4
32
LZ4_MESON_ENABLED=	lz4
33
LZ4_USES=		localbase:ldflags
33
LZ4_USES=		localbase:ldflags
34
OPTIMIZED_CFLAGS_VARS=	CFLAGS+=-O3
34
OPTIMIZED_CFLAGS_VARS=	CFLAGS+=-O3
35
STATIC_MESON_ON=	-Ddefault_library=both
35
TEST_MESON_TRUE=	bin_tests
36
TEST_MESON_TRUE=	bin_tests
36
37
37
.include <bsd.port.mk>
38
.include <bsd.port.mk>
(-)b/archivers/zstd/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1618319924
1
TIMESTAMP = 1621189939
2
SHA256 (zstd-1.4.9.tar.gz) = 29ac74e19ea28659017361976240c4b5c5c24db3b89338731a6feb97c038d293
2
SHA256 (zstd-1.5.0.tar.gz) = 5194fbfa781fcf45b98c5e849651aa7b3b0a008c6b72d4a0db760f3002291e94
3
SIZE (zstd-1.4.9.tar.gz) = 1821109
3
SIZE (zstd-1.5.0.tar.gz) = 1851389
(-)b/archivers/zstd/files/patch-PR2648 (+288 lines)
Added Link Here
1
diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c
2
index b7ee298..fbf67af 100644
3
--- ../../lib/compress/zstd_compress.c
4
+++ ../../lib/compress/zstd_compress.c
5
@@ -3915,6 +3915,7 @@ static size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx,
6
         ZSTD_overflowCorrectIfNeeded(
7
             ms, &cctx->workspace, &cctx->appliedParams, ip, ip + blockSize);
8
         ZSTD_checkDictValidity(&ms->window, ip + blockSize, maxDist, &ms->loadedDictEnd, &ms->dictMatchState);
9
+        ZSTD_window_enforceMaxDist(&ms->window, ip, maxDist, &ms->loadedDictEnd, &ms->dictMatchState);
10
 
11
         /* Ensure hash/chain table insertion resumes no sooner than lowlimit */
12
         if (ms->nextToUpdate < ms->window.lowLimit) ms->nextToUpdate = ms->window.lowLimit;
13
diff --git a/lib/compress/zstd_double_fast.c b/lib/compress/zstd_double_fast.c
14
index d0d3a78..b9e3c5e 100644
15
--- ../../lib/compress/zstd_double_fast.c
16
+++ ../../lib/compress/zstd_double_fast.c
17
@@ -409,7 +409,7 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic(
18
         hashSmall[hSmall] = hashLong[hLong] = curr;   /* update hash table */
19
 
20
         if ((((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow : ensure repIndex doesn't overlap dict + prefix */
21
-            & (offset_1 < curr+1 - dictStartIndex)) /* note: we are searching at curr+1 */
22
+            & (offset_1 <= curr+1 - dictStartIndex)) /* note: we are searching at curr+1 */
23
           && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) {
24
             const BYTE* repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend;
25
             mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixStart) + 4;
26
@@ -477,7 +477,7 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic(
27
                 U32 const repIndex2 = current2 - offset_2;
28
                 const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2;
29
                 if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3)   /* intentional overflow : ensure repIndex2 doesn't overlap dict + prefix */
30
-                    & (offset_2 < current2 - dictStartIndex))
31
+                    & (offset_2 <= current2 - dictStartIndex))
32
                   && (MEM_read32(repMatch2) == MEM_read32(ip)) ) {
33
                     const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend;
34
                     size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4;
35
diff --git a/lib/compress/zstd_fast.c b/lib/compress/zstd_fast.c
36
index 4edc04d..b6a1a7e 100644
37
--- ../../lib/compress/zstd_fast.c
38
+++ ../../lib/compress/zstd_fast.c
39
@@ -418,7 +418,7 @@ static size_t ZSTD_compressBlock_fast_extDict_generic(
40
         DEBUGLOG(7, "offset_1 = %u , curr = %u", offset_1, curr);
41
 
42
         if ( ( ((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow */
43
-             & (offset_1 < curr+1 - dictStartIndex) ) /* note: we are searching at curr+1 */
44
+             & (offset_1 <= curr+1 - dictStartIndex) ) /* note: we are searching at curr+1 */
45
            && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) {
46
             const BYTE* const repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend;
47
             size_t const rLength = ZSTD_count_2segments(ip+1 +4, repMatch +4, iend, repMatchEnd, prefixStart) + 4;
48
@@ -453,7 +453,7 @@ static size_t ZSTD_compressBlock_fast_extDict_generic(
49
                 U32 const current2 = (U32)(ip-base);
50
                 U32 const repIndex2 = current2 - offset_2;
51
                 const BYTE* const repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2;
52
-                if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) & (offset_2 < curr - dictStartIndex))  /* intentional overflow */
53
+                if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) & (offset_2 <= curr - dictStartIndex))  /* intentional overflow */
54
                    && (MEM_read32(repMatch2) == MEM_read32(ip)) ) {
55
                     const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend;
56
                     size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4;
57
diff --git a/lib/compress/zstd_lazy.c b/lib/compress/zstd_lazy.c
58
index 3d523e8..0c4b49e 100644
59
--- ../../lib/compress/zstd_lazy.c
60
+++ ../../lib/compress/zstd_lazy.c
61
@@ -1995,7 +1995,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic(
62
             const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
63
             const BYTE* const repMatch = repBase + repIndex;
64
             if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow */
65
-               & (offset_1 < curr+1 - windowLow) ) /* note: we are searching at curr+1 */
66
+               & (offset_1 <= curr+1 - windowLow) ) /* note: we are searching at curr+1 */
67
             if (MEM_read32(ip+1) == MEM_read32(repMatch)) {
68
                 /* repcode detected we should take it */
69
                 const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend;
70
@@ -2027,7 +2027,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic(
71
                 const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
72
                 const BYTE* const repMatch = repBase + repIndex;
73
                 if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments  */
74
-                   & (offset_1 < curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
75
+                   & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
76
                 if (MEM_read32(ip) == MEM_read32(repMatch)) {
77
                     /* repcode detected */
78
                     const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend;
79
@@ -2059,7 +2059,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic(
80
                     const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
81
                     const BYTE* const repMatch = repBase + repIndex;
82
                     if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments  */
83
-                       & (offset_1 < curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
84
+                       & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
85
                     if (MEM_read32(ip) == MEM_read32(repMatch)) {
86
                         /* repcode detected */
87
                         const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend;
88
@@ -2106,7 +2106,7 @@ _storeSequence:
89
             const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
90
             const BYTE* const repMatch = repBase + repIndex;
91
             if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments  */
92
-               & (offset_2 < repCurrent - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
93
+               & (offset_2 <= repCurrent - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
94
             if (MEM_read32(ip) == MEM_read32(repMatch)) {
95
                 /* repcode detected we should take it */
96
                 const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend;
97
diff --git a/lib/compress/zstd_opt.c b/lib/compress/zstd_opt.c
98
index 402a7e5..a880fad 100644
99
--- ../../lib/compress/zstd_opt.c
100
+++ ../../lib/compress/zstd_opt.c
101
@@ -364,11 +364,13 @@ static U32 ZSTD_insertAndFindFirstIndexHash3 (ZSTD_matchState_t* ms,
102
 *  Binary Tree search
103
 ***************************************/
104
 /** ZSTD_insertBt1() : add one or multiple positions to tree.
105
- *  ip : assumed <= iend-8 .
106
+ * @param ip assumed <= iend-8 .
107
+ * @param target The target of ZSTD_updateTree_internal() - we are filling to this position
108
  * @return : nb of positions added */
109
 static U32 ZSTD_insertBt1(
110
                 ZSTD_matchState_t* ms,
111
                 const BYTE* const ip, const BYTE* const iend,
112
+                U32 const target,
113
                 U32 const mls, const int extDict)
114
 {
115
     const ZSTD_compressionParameters* const cParams = &ms->cParams;
116
@@ -391,7 +393,10 @@ static U32 ZSTD_insertBt1(
117
     U32* smallerPtr = bt + 2*(curr&btMask);
118
     U32* largerPtr  = smallerPtr + 1;
119
     U32 dummy32;   /* to be nullified at the end */
120
-    U32 const windowLow = ms->window.lowLimit;
121
+    /* windowLow is based on target because we're only need positions that will be
122
+     * in the window at the end of the tree update.
123
+     */
124
+    U32 const windowLow = ZSTD_getLowestMatchIndex(ms, target, cParams->windowLog);
125
     U32 matchEndIdx = curr+8+1;
126
     size_t bestLength = 8;
127
     U32 nbCompares = 1U << cParams->searchLog;
128
@@ -404,6 +409,7 @@ static U32 ZSTD_insertBt1(
129
 
130
     DEBUGLOG(8, "ZSTD_insertBt1 (%u)", curr);
131
 
132
+    assert(curr <= target);
133
     assert(ip <= iend-8);   /* required for h calculation */
134
     hashTable[h] = curr;   /* Update Hash Table */
135
 
136
@@ -492,7 +498,7 @@ void ZSTD_updateTree_internal(
137
                 idx, target, dictMode);
138
 
139
     while(idx < target) {
140
-        U32 const forward = ZSTD_insertBt1(ms, base+idx, iend, mls, dictMode == ZSTD_extDict);
141
+        U32 const forward = ZSTD_insertBt1(ms, base+idx, iend, target, mls, dictMode == ZSTD_extDict);
142
         assert(idx < (U32)(idx + forward));
143
         idx += forward;
144
     }
145
@@ -893,7 +899,7 @@ static void ZSTD_optLdm_processMatchCandidate(ZSTD_optLdm_t* optLdm, ZSTD_match_
146
              */
147
             U32 posOvershoot = currPosInBlock - optLdm->endPosInBlock;
148
             ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, posOvershoot);
149
-        } 
150
+        }
151
         ZSTD_opt_getNextMatchAndUpdateSeqStore(optLdm, currPosInBlock, remainingBytes);
152
     }
153
     ZSTD_optLdm_maybeAddMatch(matches, nbMatches, optLdm, currPosInBlock);
154
diff --git a/tests/fuzz/dictionary_round_trip.c b/tests/fuzz/dictionary_round_trip.c
155
index 7bff4bd..0b20e8d 100644
156
--- ../../tests/fuzz/dictionary_round_trip.c
157
+++ ../../tests/fuzz/dictionary_round_trip.c
158
@@ -42,8 +42,23 @@ static size_t roundTripTest(void *result, size_t resultCapacity,
159
                 src, srcSize,
160
                 dict.buff, dict.size,
161
                 cLevel);
162
+        FUZZ_ZASSERT(cSize);
163
+        // Compress a second time and check for determinism
164
+        {
165
+            size_t const cSize0 = cSize;
166
+            XXH64_hash_t const hash0 = XXH64(compressed, cSize, 0);
167
+            cSize = ZSTD_compress_usingDict(cctx,
168
+                    compressed, compressedCapacity,
169
+                    src, srcSize,
170
+                    dict.buff, dict.size,
171
+                    cLevel);
172
+            FUZZ_ASSERT(cSize == cSize0);
173
+            FUZZ_ASSERT(XXH64(compressed, cSize, 0) == hash0);
174
+        }
175
     } else {
176
+        size_t remainingBytes;
177
         dictContentType = FUZZ_dataProducer_uint32Range(producer, 0, 2);
178
+        remainingBytes = FUZZ_dataProducer_remainingBytes(producer);
179
         FUZZ_setRandomParameters(cctx, srcSize, producer);
180
         /* Disable checksum so we can use sizes smaller than compress bound. */
181
         FUZZ_ZASSERT(ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, 0));
182
@@ -51,14 +66,29 @@ static size_t roundTripTest(void *result, size_t resultCapacity,
183
             FUZZ_ZASSERT(ZSTD_CCtx_refPrefix_advanced(
184
                 cctx, dict.buff, dict.size,
185
                 dictContentType));
186
-        else 
187
+        else
188
             FUZZ_ZASSERT(ZSTD_CCtx_loadDictionary_advanced(
189
                 cctx, dict.buff, dict.size,
190
                 (ZSTD_dictLoadMethod_e)FUZZ_dataProducer_uint32Range(producer, 0, 1),
191
                 dictContentType));
192
         cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
193
+        FUZZ_ZASSERT(cSize);
194
+        // Compress a second time and check for determinism
195
+        {
196
+            size_t const cSize0 = cSize;
197
+            XXH64_hash_t const hash0 = XXH64(compressed, cSize, 0);
198
+            FUZZ_dataProducer_rollBack(producer, remainingBytes);
199
+            FUZZ_setRandomParameters(cctx, srcSize, producer);
200
+            FUZZ_ZASSERT(ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, 0));
201
+            if (refPrefix)
202
+                FUZZ_ZASSERT(ZSTD_CCtx_refPrefix_advanced(
203
+                    cctx, dict.buff, dict.size,
204
+                    dictContentType));
205
+            cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
206
+            FUZZ_ASSERT(cSize == cSize0);
207
+            FUZZ_ASSERT(XXH64(compressed, cSize, 0) == hash0);
208
+        }
209
     }
210
-    FUZZ_ZASSERT(cSize);
211
     if (refPrefix)
212
         FUZZ_ZASSERT(ZSTD_DCtx_refPrefix_advanced(
213
             dctx, dict.buff, dict.size,
214
diff --git a/tests/fuzz/fuzz_data_producer.c b/tests/fuzz/fuzz_data_producer.c
215
index beb0155..eae8ee4 100644
216
--- ../../tests/fuzz/fuzz_data_producer.c
217
+++ ../../tests/fuzz/fuzz_data_producer.c
218
@@ -66,6 +66,12 @@ size_t FUZZ_dataProducer_remainingBytes(FUZZ_dataProducer_t *producer){
219
     return producer->size;
220
 }
221
 
222
+void FUZZ_dataProducer_rollBack(FUZZ_dataProducer_t *producer, size_t remainingBytes)
223
+{
224
+    FUZZ_ASSERT(remainingBytes >= producer->size);
225
+    producer->size = remainingBytes;
226
+}
227
+
228
 int FUZZ_dataProducer_empty(FUZZ_dataProducer_t *producer) {
229
     return producer->size == 0;
230
 }
231
diff --git a/tests/fuzz/fuzz_data_producer.h b/tests/fuzz/fuzz_data_producer.h
232
index 045aaff..62771a9 100644
233
--- ../../tests/fuzz/fuzz_data_producer.h
234
+++ ../../tests/fuzz/fuzz_data_producer.h
235
@@ -49,6 +49,9 @@ int32_t FUZZ_dataProducer_int32Range(FUZZ_dataProducer_t *producer,
236
 /* Returns the size of the remaining bytes of data in the producer */
237
 size_t FUZZ_dataProducer_remainingBytes(FUZZ_dataProducer_t *producer);
238
 
239
+/* Rolls back the data producer state to have remainingBytes remaining */
240
+void FUZZ_dataProducer_rollBack(FUZZ_dataProducer_t *producer, size_t remainingBytes);
241
+
242
 /* Returns true if the data producer is out of bytes */
243
 int FUZZ_dataProducer_empty(FUZZ_dataProducer_t *producer);
244
 
245
diff --git a/tests/fuzz/simple_round_trip.c b/tests/fuzz/simple_round_trip.c
246
index c9fac26..9da986b 100644
247
--- ../../tests/fuzz/simple_round_trip.c
248
+++ ../../tests/fuzz/simple_round_trip.c
249
@@ -35,16 +35,36 @@ static size_t roundTripTest(void *result, size_t resultCapacity,
250
     size_t dSize;
251
     int targetCBlockSize = 0;
252
     if (FUZZ_dataProducer_uint32Range(producer, 0, 1)) {
253
+        size_t const remainingBytes = FUZZ_dataProducer_remainingBytes(producer);
254
         FUZZ_setRandomParameters(cctx, srcSize, producer);
255
         cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
256
+        FUZZ_ZASSERT(cSize);
257
         FUZZ_ZASSERT(ZSTD_CCtx_getParameter(cctx, ZSTD_c_targetCBlockSize, &targetCBlockSize));
258
+        // Compress a second time and check for determinism
259
+        {
260
+            size_t const cSize0 = cSize;
261
+            XXH64_hash_t const hash0 = XXH64(compressed, cSize, 0);
262
+            FUZZ_dataProducer_rollBack(producer, remainingBytes);
263
+            FUZZ_setRandomParameters(cctx, srcSize, producer);
264
+            cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
265
+            FUZZ_ASSERT(cSize == cSize0);
266
+            FUZZ_ASSERT(XXH64(compressed, cSize, 0) == hash0);
267
+        }
268
     } else {
269
-      int const cLevel = FUZZ_dataProducer_int32Range(producer, kMinClevel, kMaxClevel);
270
-
271
+        int const cLevel = FUZZ_dataProducer_int32Range(producer, kMinClevel, kMaxClevel);
272
         cSize = ZSTD_compressCCtx(
273
             cctx, compressed, compressedCapacity, src, srcSize, cLevel);
274
+        FUZZ_ZASSERT(cSize);
275
+        // Compress a second time and check for determinism
276
+        {
277
+            size_t const cSize0 = cSize;
278
+            XXH64_hash_t const hash0 = XXH64(compressed, cSize, 0);
279
+            cSize = ZSTD_compressCCtx(
280
+                cctx, compressed, compressedCapacity, src, srcSize, cLevel);
281
+            FUZZ_ASSERT(cSize == cSize0);
282
+            FUZZ_ASSERT(XXH64(compressed, cSize, 0) == hash0);
283
+        }
284
     }
285
-    FUZZ_ZASSERT(cSize);
286
     dSize = ZSTD_decompressDCtx(dctx, result, resultCapacity, compressed, cSize);
287
     FUZZ_ZASSERT(dSize);
288
     /* When superblock is enabled make sure we don't expand the block more than expected.
(-)a/archivers/zstd/files/patch-lib-meson.build (-12 lines)
Removed Link Here
1
Obtained from:	https://github.com/facebook/zstd/commit/edf2b1176df9302f6023d129e6379ffbe781885c
2
3
--- lib/meson.build.orig	2021-03-02 22:20:57 UTC
4
+++ lib/meson.build
5
@@ -22,6 +22,7 @@ libzstd_sources = [join_paths(zstd_rootdir, 'lib/commo
6
   join_paths(zstd_rootdir, 'lib/common/threading.c'),
7
   join_paths(zstd_rootdir, 'lib/common/pool.c'),
8
   join_paths(zstd_rootdir, 'lib/common/zstd_common.c'),
9
+  join_paths(zstd_rootdir, 'lib/common/zstd_trace.c'),
10
   join_paths(zstd_rootdir, 'lib/common/error_private.c'),
11
   join_paths(zstd_rootdir, 'lib/common/xxhash.c'),
12
   join_paths(zstd_rootdir, 'lib/compress/hist.c'),
(-)b/archivers/zstd/pkg-plist (-2 / +2 lines)
Lines 8-17 bin/zstdmt Link Here
8
include/zdict.h
8
include/zdict.h
9
include/zstd.h
9
include/zstd.h
10
include/zstd_errors.h
10
include/zstd_errors.h
11
lib/libzstd.a
11
%%STATIC%%lib/libzstd.a
12
lib/libzstd.so
12
lib/libzstd.so
13
lib/libzstd.so.1
13
lib/libzstd.so.1
14
lib/libzstd.so.%%PORTVERSION%%
14
lib/libzstd.so.%%DISTVERSION%%
15
libdata/pkgconfig/libzstd.pc
15
libdata/pkgconfig/libzstd.pc
16
man/man1/unzstd.1.gz
16
man/man1/unzstd.1.gz
17
man/man1/zstd.1.gz
17
man/man1/zstd.1.gz

Return to bug 255934