test: Pass -T+1 to xz to workaround spurious warning with xz 5.6.0
[dpkg.git] / src / at / deb-format.at
blob13654d4eb9c8fac86c2c1181d7c9bf6981679991
1 AT_SETUP([dpkg-deb options])
2 AT_KEYWORDS([dpkg-deb command-line])
4 AT_CHECK([dpkg-deb --version], [], [ignore])
5 AT_CHECK([dpkg-deb --help], [], [ignore])
7 AT_CLEANUP
10 AT_SETUP([dpkg-deb .deb format 0.93x])
11 AT_KEYWORDS([dpkg-deb deb-old])
13 AT_SKIP_IF([! command -v gzip >/dev/null])
15 AT_DATA([pkg-deb-old-bogus-only-version.deb], [0.93
17 AT_CHECK([
18 # Check truncated old deb w/ only version magic
19 dpkg-deb --info pkg-deb-old-bogus-only-version.deb
20 ], [2], [], [dpkg-deb: error: unexpected end of file in archive control member size in pkg-deb-old-bogus-only-version.deb
23 DPKG_GEN_CONTROL([pkg-deb-old-format])
24 DPKG_MOD_CONTROL([pkg-deb-old-format],
25                  [s/^Description:.*$/$& - deb old format support/])
26 AT_DATA([pkg-deb-old-format/file-templ], [test
28 AT_CHECK([
29 # Initialize the template package
30 mv pkg-deb-old-format pkg-old-templ
31 cp $top_srcdir/ChangeLog.old pkg-old-templ/
32 chmod 0644 pkg-old-templ/ChangeLog.old
33 chmod -R u+w pkg-old-templ
34 find pkg-old-templ | xargs touch -t 197001010100.00
35 dpkg-deb --deb-format=0.939000 --root-owner-group -b pkg-old-templ >/dev/null
37 dpkg-deb --ctrl-tarfile pkg-old-templ.deb >ctrl.tar
38 dpkg-deb --fsys-tarfile pkg-old-templ.deb >fsys.tar
39 gzip -n ctrl.tar
40 gzip -n fsys.tar
42 # Create deb-old 0.939
43 echo '0.939000' >pkg-old.deb
44 DPKG_FILE_SIZE([ctrl.tar.gz]) >>pkg-old.deb
45 cat ctrl.tar.gz >>pkg-old.deb
46 cat fsys.tar.gz >>pkg-old.deb
48 # Create deb-old-old-old 0.931
49 mkdir -p pkg-old-0931-templ/.DEBIAN
50 cp pkg-old-templ/DEBIAN/* pkg-old-0931-templ/.DEBIAN/
51 find pkg-old-0931-templ | xargs touch -t 197001010100.00
52 $TAR czf ctrl-0931.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0931-templ .DEBIAN
54 echo '0.931000' >pkg-old-0931.deb
55 DPKG_FILE_SIZE([ctrl-0931.tar.gz]) >>pkg-old-0931.deb
56 cat ctrl-0931.tar.gz >>pkg-old-0931.deb
57 cat fsys.tar.gz >>pkg-old-0931.deb
59 # Create deb-old-old template
60 mkdir -p pkg-old-0932-templ/DEBIAN
61 cp pkg-old-templ/DEBIAN/* pkg-old-0932-templ/DEBIAN/
62 find pkg-old-0932-templ | xargs touch -t 197001010100.00
63 $TAR czf ctrl-0932.tar.gz --format=gnu --mtime @0 --clamp-mtime --owner root:0 --group root:0 -C pkg-old-0932-templ DEBIAN
65 # Create deb-old-old 0.932
66 echo '0.932000' >pkg-old-0932.deb
67 DPKG_FILE_SIZE([ctrl-0932.tar.gz]) >>pkg-old-0932.deb
68 cat ctrl-0932.tar.gz >>pkg-old-0932.deb
69 cat fsys.tar.gz >>pkg-old-0932.deb
71 # Create deb-old-old 0.933
72 echo '0.933000' >pkg-old-0933.deb
73 DPKG_FILE_SIZE([ctrl-0932.tar.gz]) >>pkg-old-0933.deb
74 cat ctrl-0932.tar.gz >>pkg-old-0933.deb
75 cat fsys.tar.gz >>pkg-old-0933.deb
78 DEB_OLD_CTRL_SIZE=$(DPKG_FILE_SIZE([ctrl.tar.gz]))
79 DEB_OLD_FSYS_SIZE=$(DPKG_FILE_SIZE([fsys.tar.gz]))
80 DEB_OLD_SIZE=$(DPKG_FILE_SIZE([pkg-old.deb]))
82 AT_CHECK_UNQUOTED([
83 # Check old package metadata
84 dpkg-deb -I pkg-old.deb
85 ], [], [ old Debian package, version 0.939000.
86  size $DEB_OLD_SIZE bytes: control archive=$DEB_OLD_CTRL_SIZE, main archive=$DEB_OLD_FSYS_SIZE.
87      201 bytes,     7 lines      control
88  Package: pkg-deb-old-format
89  Version: 0.0-1
90  Section: test
91  Priority: extra
92  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
93  Architecture: all
94  Description: test package - deb old format support
97 DEB_OLD_0931_SIZE=$(DPKG_FILE_SIZE([pkg-old-0931.deb]))
98 DEB_OLD_0931_CTRL_SIZE=$(DPKG_FILE_SIZE([ctrl-0931.tar.gz]))
100 AT_CHECK_UNQUOTED([
101 # Check old package metadata
102 dpkg-deb -I pkg-old-0931.deb
103 ], [], [ old Debian package, version 0.931000.
104  size $DEB_OLD_0931_SIZE bytes: control archive=$DEB_OLD_0931_CTRL_SIZE, main archive=$DEB_OLD_FSYS_SIZE.
105      201 bytes,     7 lines      control
106  Package: pkg-deb-old-format
107  Version: 0.0-1
108  Section: test
109  Priority: extra
110  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
111  Architecture: all
112  Description: test package - deb old format support
115 DEB_OLD_0932_SIZE=$(DPKG_FILE_SIZE([pkg-old-0932.deb]))
116 DEB_OLD_0932_CTRL_SIZE=$(DPKG_FILE_SIZE([ctrl-0932.tar.gz]))
118 AT_CHECK_UNQUOTED([
119 # Check old package metadata
120 dpkg-deb -I pkg-old-0932.deb
121 ], [], [ old Debian package, version 0.932000.
122  size $DEB_OLD_0932_SIZE bytes: control archive=$DEB_OLD_0932_CTRL_SIZE, main archive=$DEB_OLD_FSYS_SIZE.
123      201 bytes,     7 lines      control
124  Package: pkg-deb-old-format
125  Version: 0.0-1
126  Section: test
127  Priority: extra
128  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
129  Architecture: all
130  Description: test package - deb old format support
133 DEB_OLD_0933_SIZE=$(DPKG_FILE_SIZE([pkg-old-0933.deb]))
134 DEB_OLD_0933_CTRL_SIZE=$DEB_OLD_0932_CTRL_SIZE
136 AT_CHECK_UNQUOTED([
137 # Check old package metadata
138 dpkg-deb -I pkg-old-0933.deb
139 ], [], [ old Debian package, version 0.933000.
140  size $DEB_OLD_0933_SIZE bytes: control archive=$DEB_OLD_0933_CTRL_SIZE, main archive=$DEB_OLD_FSYS_SIZE.
141      201 bytes,     7 lines      control
142  Package: pkg-deb-old-format
143  Version: 0.0-1
144  Section: test
145  Priority: extra
146  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
147  Architecture: all
148  Description: test package - deb old format support
151 AT_CHECK([
152 # Check old package contents
153 dpkg-deb -c pkg-old.deb
154 ], [], [drwxr-xr-x root/root         0 1970-01-01 00:00 ./
155 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
156 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
159 AT_CHECK([
160 # Check old package contents
161 dpkg-deb -c pkg-old-0931.deb
162 ], [], [drwxr-xr-x root/root         0 1970-01-01 00:00 ./
163 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
164 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
167 AT_CHECK([
168 # Check old package contents
169 dpkg-deb -c pkg-old-0932.deb
170 ], [], [drwxr-xr-x root/root         0 1970-01-01 00:00 ./
171 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
172 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
175 AT_CHECK([
176 # Check old package contents
177 dpkg-deb -c pkg-old-0933.deb
178 ], [], [drwxr-xr-x root/root         0 1970-01-01 00:00 ./
179 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
180 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
183 AT_CLEANUP
185 m4_define([DPKG_GEN_PKG_DEB_FORMAT_TEMPL], [
186   DPKG_GEN_CONTROL([pkg-deb-format])
187   DPKG_MOD_CONTROL([pkg-deb-format],
188                    [s/^Description:.*$/$& - deb format support/])
189   AT_DATA([pkg-deb-format/file-templ], [test
191   AT_CHECK([
192   # Initialize the template package
193   mv pkg-deb-format pkg-templ
194   cp $top_srcdir/ChangeLog.old pkg-templ/
195   chmod 0644 pkg-templ/ChangeLog.old
196   chmod -R u+w pkg-templ
197   find pkg-templ | xargs touch -t 197001010100.00
198   dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ >/dev/null
200   # Extract the base members
201   ar x pkg-templ.deb
202   gzip -cn control.tar >control.tar.gz
203   gzip -cn data.tar >data.tar.gz
204   ])
208 AT_SETUP([dpkg-deb .deb format 2.x (core)])
209 AT_KEYWORDS([dpkg-deb deb])
211 AT_SKIP_IF([! command -v gzip >/dev/null])
213 AT_DATA([pkg-deb-bogus-empty.deb], [])
214 AT_CHECK([
215 # Check truncated deb w/ 0 size
216 dpkg-deb --info pkg-deb-bogus-empty.deb
217 ], [2], [], [dpkg-deb: error: unexpected end of file in archive magic version number in pkg-deb-bogus-empty.deb
220 AT_DATA([unknown], [])
222 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
224 AT_CHECK([
225 # Test debian-binary with 2.x versions
226 echo 2.999 >debian-binary
227 ar qSc pkg-version-2x.deb debian-binary control.tar data.tar
228 ar t pkg-version-2x.deb
229 ar x pkg-templ.deb debian-binary
230 dpkg-deb -I pkg-version-2x.deb
231 ], [], [debian-binary
232 control.tar
233 data.tar
234  new Debian package, version 2.999.
235  size 655554 bytes: control archive=10240 bytes.
236      193 bytes,     7 lines      control
237  Package: pkg-deb-format
238  Version: 0.0-1
239  Section: test
240  Priority: extra
241  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
242  Architecture: all
243  Description: test package - deb format support
246 AT_CHECK([
247 # Test debian-binary with extra lines
248 echo "extra line" >>debian-binary
249 ar qSc pkg-magic-extra.deb debian-binary control.tar data.tar
250 ar t pkg-magic-extra.deb
251 ar x pkg-templ.deb debian-binary
252 dpkg-deb -I pkg-magic-extra.deb
253 ], [], [debian-binary
254 control.tar
255 data.tar
256  new Debian package, version 2.0.
257  size 655564 bytes: control archive=10240 bytes.
258      193 bytes,     7 lines      control
259  Package: pkg-deb-format
260  Version: 0.0-1
261  Section: test
262  Priority: extra
263  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
264  Architecture: all
265  Description: test package - deb format support
268 AT_CHECK([
269 # Test missing debian-binary member
270 cp pkg-templ.deb pkg-missing-magic.deb
271 ar d pkg-missing-magic.deb debian-binary
272 ar t pkg-missing-magic.deb
273 dpkg-deb -I pkg-missing-magic.deb
274 ], [2], [control.tar
275 data.tar
276 ], [dpkg-deb: error: file 'pkg-missing-magic.deb' is not a Debian binary archive (try dpkg-split?)
279 AT_CHECK([
280 # Test missing control member
281 cp pkg-templ.deb pkg-missing-control.deb
282 ar d pkg-missing-control.deb control.tar
283 ar t pkg-missing-control.deb
284 dpkg-deb -I pkg-missing-control.deb
285 ], [2], [debian-binary
286 data.tar
287 ], [dpkg-deb: error: archive 'pkg-missing-control.deb' has premature member 'data.tar' before 'control.tar', giving up
290 AT_CHECK([
291 # Test missing data member
292 cp pkg-templ.deb pkg-missing-data.deb
293 ar d pkg-missing-data.deb data.tar
294 ar t pkg-missing-data.deb
295 dpkg-deb -c pkg-missing-data.deb
296 ], [2], [debian-binary
297 control.tar
298 ], [dpkg-deb: error: unexpected end of file in archive member header in pkg-missing-data.deb
301 AT_CHECK([
302 # Test duplicate debian-binary member
303 ar qSc pkg-duplicate-magic.deb debian-binary debian-binary control.tar data.tar
304 ar t pkg-duplicate-magic.deb
305 dpkg-deb -I pkg-duplicate-magic.deb
306 ], [2], [debian-binary
307 debian-binary
308 control.tar
309 data.tar
310 ], [dpkg-deb: error: archive 'pkg-duplicate-magic.deb' has premature member 'debian-binary' before 'control.tar', giving up
313 AT_CHECK([
314 # Test duplicate control member
315 ar qSc pkg-duplicate-control.deb debian-binary control.tar control.tar data.tar
316 ar t pkg-duplicate-control.deb
317 dpkg-deb -c pkg-duplicate-control.deb
318 ], [2], [debian-binary
319 control.tar
320 control.tar
321 data.tar
322 ], [dpkg-deb: error: archive 'pkg-duplicate-control.deb' contains two control members, giving up
325 AT_CHECK([
326 # Test mixed member (index 1)
327 ar qSc pkg-mixed-1-member.deb debian-binary unknown control.tar data.tar
328 ar t pkg-mixed-1-member.deb
329 dpkg-deb -I pkg-mixed-1-member.deb
330 ], [2], [debian-binary
331 unknown
332 control.tar
333 data.tar
334 ], [dpkg-deb: error: archive 'pkg-mixed-1-member.deb' has premature member 'unknown' before 'control.tar', giving up
337 AT_CHECK([
338 # Test mixed member (index 2)
339 ar qSc pkg-mixed-2-member.deb debian-binary control.tar unknown data.tar
340 ar t pkg-mixed-2-member.deb
341 dpkg-deb -c pkg-mixed-2-member.deb
342 ], [2], [debian-binary
343 control.tar
344 unknown
345 data.tar
346 ], [dpkg-deb: error: archive 'pkg-mixed-2-member.deb' has premature member 'unknown' before 'data.tar', giving up
349 AT_CHECK([
350 # Test swapped control and data members
351 cp pkg-templ.deb pkg-swap-members.deb
352 ar ma data.tar pkg-swap-members.deb control.tar
353 ar t pkg-swap-members.deb
354 dpkg-deb -I pkg-swap-members.deb
355 ], [2], [debian-binary
356 data.tar
357 control.tar
358 ], [dpkg-deb: error: archive 'pkg-swap-members.deb' has premature member 'data.tar' before 'control.tar', giving up
361 AT_CHECK([
362 # Test extra member
363 cp pkg-templ.deb pkg-extra-member.deb
364 ar qS pkg-extra-member.deb unknown
365 ar t pkg-extra-member.deb
366 dpkg-deb -I pkg-extra-member.deb
367 ], [], [debian-binary
368 control.tar
369 data.tar
370 unknown
371  new Debian package, version 2.0.
372  size 655612 bytes: control archive=10240 bytes.
373      193 bytes,     7 lines      control
374  Package: pkg-deb-format
375  Version: 0.0-1
376  Section: test
377  Priority: extra
378  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
379  Architecture: all
380  Description: test package - deb format support
383 AT_DATA([_ignore], [])
384 AT_CHECK([
385 # Test _ member
386 ar qSc pkg-under-member.deb debian-binary _ignore control.tar data.tar
387 ar t pkg-under-member.deb
388 dpkg-deb -I pkg-under-member.deb
389 ], [], [debian-binary
390 _ignore
391 control.tar
392 data.tar
393  new Debian package, version 2.0.
394  size 655612 bytes: control archive=10240 bytes.
395      193 bytes,     7 lines      control
396  Package: pkg-deb-format
397  Version: 0.0-1
398  Section: test
399  Priority: extra
400  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
401  Architecture: all
402  Description: test package - deb format support
405 AT_CHECK([
406 # Test data.tar.bad member
407 $PERL -E 'print "\0" x 4096' >data.tar.bad
408 ar qSc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad
409 ar t pkg-data-bad.deb
410 dpkg-deb -c pkg-data-bad.deb
411 ], [2], [debian-binary
412 control.tar.gz
413 data.tar.bad
414 ], [dpkg-deb: error: archive 'pkg-data-bad.deb' uses unknown compression for member 'data.tar.bad', giving up
417 AT_CHECK([
418 # Test control.tar member
419 ar qSc pkg-control-none.deb debian-binary control.tar data.tar
420 ar t pkg-control-none.deb
421 dpkg-deb -I pkg-control-none.deb
422 ], [], [debian-binary
423 control.tar
424 data.tar
425  new Debian package, version 2.0.
426  size 655552 bytes: control archive=10240 bytes.
427      193 bytes,     7 lines      control
428  Package: pkg-deb-format
429  Version: 0.0-1
430  Section: test
431  Priority: extra
432  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
433  Architecture: all
434  Description: test package - deb format support
437 AT_CHECK([
438 # Test data.tar member
439 ar qSc pkg-data-none.deb debian-binary control.tar.gz data.tar
440 ar t pkg-data-none.deb
441 dpkg-deb -c pkg-data-none.deb
442 ], [], [debian-binary
443 control.tar.gz
444 data.tar
445 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
446 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
447 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
450 AT_CHECK([
451 # Test data.tar.gz member
452 ar qSc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz
453 ar t pkg-data-gz.deb
454 dpkg-deb -c pkg-data-gz.deb
455 ], [], [debian-binary
456 control.tar.gz
457 data.tar.gz
458 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
459 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
460 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
463 # Create .deb with non-uniform data.tar/control.tar member compression
464 ar qSc pkg-mixed-comp.deb debian-binary control.tar data.tar.gz
465 DEB_MIXED_COMP_SIZE=$(DPKG_FILE_SIZE([pkg-mixed-comp.deb]))
467 AT_CHECK_UNQUOTED([
468 # Test non-uniform data.tar/control.tar member compression
469 ar t pkg-mixed-comp.deb
470 dpkg-deb -I pkg-mixed-comp.deb
471 dpkg-deb -c pkg-mixed-comp.deb
472 ], [], [debian-binary
473 control.tar
474 data.tar.gz
475  new Debian package, version 2.0.
476  size $DEB_MIXED_COMP_SIZE bytes: control archive=10240 bytes.
477      193 bytes,     7 lines      control
478  Package: pkg-deb-format
479  Version: 0.0-1
480  Section: test
481  Priority: extra
482  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
483  Architecture: all
484  Description: test package - deb format support
485 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
486 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
487 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
490 AT_CHECK([
491 # Test building and extracting none compressed archive
492 dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ pkg-comp-none.deb >/dev/null
493 dpkg-deb --ctrl-tarfile pkg-comp-none.deb >ctrl-none.tar
494 dpkg-deb --fsys-tarfile pkg-comp-none.deb >fsys-none.tar
495 cmp ctrl-none.tar control.tar
496 cmp fsys-none.tar data.tar
499 AT_CHECK([
500 # Test building and extracting gzip compressed archive
501 dpkg-deb --uniform-compression --root-owner-group -Zgzip -b pkg-templ pkg-comp-gzip.deb >/dev/null
502 dpkg-deb --ctrl-tarfile pkg-comp-gzip.deb >ctrl-gzip.tar
503 dpkg-deb --fsys-tarfile pkg-comp-gzip.deb >fsys-gzip.tar
504 cmp ctrl-gzip.tar control.tar
505 cmp fsys-gzip.tar data.tar
508 AT_CLEANUP
511 AT_SETUP([dpkg-deb .deb format 2.x (xz)])
512 AT_KEYWORDS([dpkg-deb deb])
514 AT_SKIP_IF([! command -v gzip >/dev/null])
515 AT_SKIP_IF([! command -v xz >/dev/null])
517 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
518 AT_CHECK([
519 # Extract the base members
520 # XXX: Due to a new behavior in xz 5.6.0, when it automatically reduces the
521 # amount of threads it prints a warning on stderr, even w/o -T. We pass an
522 # explicit -T+1 to force parallel mode but only use one thread as a workaround.
523 xz -T+1 -c control.tar >control.tar.xz
524 xz -T+1 -c data.tar >data.tar.xz
527 AT_CHECK([
528 # Test control.tar.xz member
529 ar qSc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz
530 ar t pkg-control-xz.deb
531 dpkg-deb -c pkg-control-xz.deb
532 ], [], [debian-binary
533 control.tar.xz
534 data.tar.xz
535 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
536 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
537 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
540 AT_CHECK([
541 # Test data.tar.xz member
542 ar qSc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz
543 ar t pkg-data-xz.deb
544 dpkg-deb -c pkg-data-xz.deb
545 ], [], [debian-binary
546 control.tar.gz
547 data.tar.xz
548 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
549 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
550 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
553 AT_CHECK([
554 # Test building and extracting xz compressed archive
555 dpkg-deb --uniform-compression --root-owner-group -Zxz -b pkg-templ pkg-comp-xz.deb >/dev/null
556 dpkg-deb --ctrl-tarfile pkg-comp-xz.deb >ctrl-xz.tar
557 dpkg-deb --fsys-tarfile pkg-comp-xz.deb >fsys-xz.tar
558 cmp ctrl-xz.tar control.tar
559 cmp fsys-xz.tar data.tar
562 AT_CLEANUP
565 AT_SETUP([dpkg-deb .deb format 2.x (zstd)])
566 AT_KEYWORDS([dpkg-deb deb])
568 AT_SKIP_IF([! command -v gzip >/dev/null])
569 AT_SKIP_IF([! command -v zstd >/dev/null])
571 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
572 AT_CHECK([
573 # Extract the base members
574 zstd -c control.tar >control.tar.zst
575 zstd -c data.tar >data.tar.zst
578 AT_CHECK([
579 # Test control.tar.zst member
580 ar qSc pkg-control-zst.deb debian-binary control.tar.zst data.tar.zst
581 ar t pkg-control-zst.deb
582 dpkg-deb -c pkg-control-zst.deb
583 ], [], [debian-binary
584 control.tar.zst
585 data.tar.zst
586 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
587 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
588 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
591 AT_CHECK([
592 # Test data.tar.zst member
593 ar qSc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst
594 ar t pkg-data-zst.deb
595 dpkg-deb -c pkg-data-zst.deb
596 ], [], [debian-binary
597 control.tar.gz
598 data.tar.zst
599 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
600 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
601 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
604 AT_CHECK([
605 # Test building and extracting zstd compressed archive
606 dpkg-deb --uniform-compression --root-owner-group -Zzstd -b pkg-templ pkg-comp-zstd.deb >/dev/null
607 dpkg-deb --ctrl-tarfile pkg-comp-zstd.deb >ctrl-zstd.tar
608 dpkg-deb --fsys-tarfile pkg-comp-zstd.deb >fsys-zstd.tar
609 cmp ctrl-zstd.tar control.tar
610 cmp fsys-zstd.tar data.tar
613 AT_CLEANUP
616 AT_SETUP([dpkg-deb .deb format 2.x (bzip2)])
617 AT_KEYWORDS([dpkg-deb deb])
619 AT_SKIP_IF([! command -v gzip >/dev/null])
620 AT_SKIP_IF([! command -v bzip2 >/dev/null])
622 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
623 AT_CHECK([
624 # Extract the base members
625 bzip2 -c data.tar >data.tar.bz2
628 AT_CHECK([
629 # Test data.tar.bz2 member
630 ar qSc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2
631 ar t pkg-data-bz2.deb
632 dpkg-deb -c pkg-data-bz2.deb
633 ], [], [debian-binary
634 control.tar.gz
635 data.tar.bz2
636 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
637 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
638 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
641 AT_CLEANUP
644 AT_SETUP([dpkg-deb .deb format 2.x (lzma)])
645 AT_KEYWORDS([dpkg-deb deb])
647 AT_SKIP_IF([! command -v gzip >/dev/null])
648 AT_SKIP_IF([! command -v lzma >/dev/null])
650 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
651 AT_CHECK([
652 # Extract the base members
653 lzma -c data.tar >data.tar.lzma
656 AT_CHECK([
657 # Test data.tar.lzma member
658 ar qSc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma
659 ar t pkg-data-lzma.deb
660 dpkg-deb -c pkg-data-lzma.deb
661 ], [], [debian-binary
662 control.tar.gz
663 data.tar.lzma
664 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
665 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
666 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
669 AT_CLEANUP