test: Refactor ar handling into m4 macros
[dpkg.git] / src / at / deb-format.at
blob8c1ec2781f8f30a5d7135e7f242d82864310c05e
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   DPKG_AR_EXTRACT([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 DPKG_AR_GEN([pkg-version-2x.deb], [debian-binary control.tar data.tar])
228 DPKG_AR_LIST([pkg-version-2x.deb])
229 DPKG_AR_EXTRACT([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 DPKG_AR_GEN([pkg-magic-extra.deb], [debian-binary control.tar data.tar])
250 DPKG_AR_LIST([pkg-magic-extra.deb])
251 DPKG_AR_EXTRACT([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 DPKG_AR_GEN([pkg-missing-magic.deb], [control.tar data.tar])
271 DPKG_AR_LIST([pkg-missing-magic.deb])
272 dpkg-deb -I pkg-missing-magic.deb
273 ], [2], [control.tar
274 data.tar
275 ], [dpkg-deb: error: file 'pkg-missing-magic.deb' is not a Debian binary archive (try dpkg-split?)
278 AT_CHECK([
279 # Test missing control member
280 DPKG_AR_GEN([pkg-missing-control.deb], [debian-binary data.tar])
281 DPKG_AR_LIST([pkg-missing-control.deb])
282 dpkg-deb -I pkg-missing-control.deb
283 ], [2], [debian-binary
284 data.tar
285 ], [dpkg-deb: error: archive 'pkg-missing-control.deb' has premature member 'data.tar' before 'control.tar', giving up
288 AT_CHECK([
289 # Test missing data member
290 DPKG_AR_GEN([pkg-missing-data.deb], [debian-binary control.tar])
291 DPKG_AR_LIST([pkg-missing-data.deb])
292 dpkg-deb -c pkg-missing-data.deb
293 ], [2], [debian-binary
294 control.tar
295 ], [dpkg-deb: error: unexpected end of file in archive member header in pkg-missing-data.deb
298 AT_CHECK([
299 # Test duplicate debian-binary member
300 DPKG_AR_GEN([pkg-duplicate-magic.deb], [debian-binary debian-binary control.tar data.tar])
301 DPKG_AR_LIST([pkg-duplicate-magic.deb])
302 dpkg-deb -I pkg-duplicate-magic.deb
303 ], [2], [debian-binary
304 debian-binary
305 control.tar
306 data.tar
307 ], [dpkg-deb: error: archive 'pkg-duplicate-magic.deb' has premature member 'debian-binary' before 'control.tar', giving up
310 AT_CHECK([
311 # Test duplicate control member
312 DPKG_AR_GEN([pkg-duplicate-control.deb], [debian-binary control.tar control.tar data.tar])
313 DPKG_AR_LIST([pkg-duplicate-control.deb])
314 dpkg-deb -c pkg-duplicate-control.deb
315 ], [2], [debian-binary
316 control.tar
317 control.tar
318 data.tar
319 ], [dpkg-deb: error: archive 'pkg-duplicate-control.deb' contains two control members, giving up
322 AT_CHECK([
323 # Test mixed member (index 1)
324 DPKG_AR_GEN([pkg-mixed-1-member.deb], [debian-binary unknown control.tar data.tar])
325 DPKG_AR_LIST([pkg-mixed-1-member.deb])
326 dpkg-deb -I pkg-mixed-1-member.deb
327 ], [2], [debian-binary
328 unknown
329 control.tar
330 data.tar
331 ], [dpkg-deb: error: archive 'pkg-mixed-1-member.deb' has premature member 'unknown' before 'control.tar', giving up
334 AT_CHECK([
335 # Test mixed member (index 2)
336 DPKG_AR_GEN([pkg-mixed-2-member.deb], [debian-binary control.tar unknown data.tar])
337 DPKG_AR_LIST([pkg-mixed-2-member.deb])
338 dpkg-deb -c pkg-mixed-2-member.deb
339 ], [2], [debian-binary
340 control.tar
341 unknown
342 data.tar
343 ], [dpkg-deb: error: archive 'pkg-mixed-2-member.deb' has premature member 'unknown' before 'data.tar', giving up
346 AT_CHECK([
347 # Test swapped control and data members
348 DPKG_AR_GEN([pkg-swap-members.deb], [debian-binary data.tar control.tar])
349 DPKG_AR_LIST([pkg-swap-members.deb])
350 dpkg-deb -I pkg-swap-members.deb
351 ], [2], [debian-binary
352 data.tar
353 control.tar
354 ], [dpkg-deb: error: archive 'pkg-swap-members.deb' has premature member 'data.tar' before 'control.tar', giving up
357 AT_CHECK([
358 # Test extra member
359 DPKG_AR_GEN([pkg-extra-member.deb], [debian-binary control.tar data.tar unknown])
360 DPKG_AR_LIST([pkg-extra-member.deb])
361 dpkg-deb -I pkg-extra-member.deb
362 ], [], [debian-binary
363 control.tar
364 data.tar
365 unknown
366  new Debian package, version 2.0.
367  size 655612 bytes: control archive=10240 bytes.
368      193 bytes,     7 lines      control
369  Package: pkg-deb-format
370  Version: 0.0-1
371  Section: test
372  Priority: extra
373  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
374  Architecture: all
375  Description: test package - deb format support
378 AT_DATA([_ignore], [])
379 AT_CHECK([
380 # Test _ member
381 DPKG_AR_GEN([pkg-under-member.deb], [debian-binary _ignore control.tar data.tar])
382 DPKG_AR_LIST([pkg-under-member.deb])
383 dpkg-deb -I pkg-under-member.deb
384 ], [], [debian-binary
385 _ignore
386 control.tar
387 data.tar
388  new Debian package, version 2.0.
389  size 655612 bytes: control archive=10240 bytes.
390      193 bytes,     7 lines      control
391  Package: pkg-deb-format
392  Version: 0.0-1
393  Section: test
394  Priority: extra
395  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
396  Architecture: all
397  Description: test package - deb format support
400 AT_CHECK([
401 # Test data.tar.bad member
402 $PERL -E 'print "\0" x 4096' >data.tar.bad
403 DPKG_AR_GEN([pkg-data-bad.deb], [debian-binary control.tar.gz data.tar.bad])
404 DPKG_AR_LIST([pkg-data-bad.deb])
405 dpkg-deb -c pkg-data-bad.deb
406 ], [2], [debian-binary
407 control.tar.gz
408 data.tar.bad
409 ], [dpkg-deb: error: archive 'pkg-data-bad.deb' uses unknown compression for member 'data.tar.bad', giving up
412 AT_CHECK([
413 # Test control.tar member
414 DPKG_AR_GEN([pkg-control-none.deb], [debian-binary control.tar data.tar])
415 DPKG_AR_LIST([pkg-control-none.deb])
416 dpkg-deb -I pkg-control-none.deb
417 ], [], [debian-binary
418 control.tar
419 data.tar
420  new Debian package, version 2.0.
421  size 655552 bytes: control archive=10240 bytes.
422      193 bytes,     7 lines      control
423  Package: pkg-deb-format
424  Version: 0.0-1
425  Section: test
426  Priority: extra
427  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
428  Architecture: all
429  Description: test package - deb format support
432 AT_CHECK([
433 # Test data.tar member
434 DPKG_AR_GEN([pkg-data-none.deb], [debian-binary control.tar.gz data.tar])
435 DPKG_AR_LIST([pkg-data-none.deb])
436 dpkg-deb -c pkg-data-none.deb
437 ], [], [debian-binary
438 control.tar.gz
439 data.tar
440 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
441 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
442 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
445 AT_CHECK([
446 # Test data.tar.gz member
447 DPKG_AR_GEN([pkg-data-gz.deb], [debian-binary control.tar.gz data.tar.gz])
448 DPKG_AR_LIST([pkg-data-gz.deb])
449 dpkg-deb -c pkg-data-gz.deb
450 ], [], [debian-binary
451 control.tar.gz
452 data.tar.gz
453 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
454 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
455 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
458 # Create .deb with non-uniform data.tar/control.tar member compression
459 DPKG_AR_GEN([pkg-mixed-comp.deb], [debian-binary control.tar data.tar.gz])
460 DEB_MIXED_COMP_SIZE=$(DPKG_FILE_SIZE([pkg-mixed-comp.deb]))
462 AT_CHECK_UNQUOTED([
463 # Test non-uniform data.tar/control.tar member compression
464 DPKG_AR_LIST([pkg-mixed-comp.deb])
465 dpkg-deb -I pkg-mixed-comp.deb
466 dpkg-deb -c pkg-mixed-comp.deb
467 ], [], [debian-binary
468 control.tar
469 data.tar.gz
470  new Debian package, version 2.0.
471  size $DEB_MIXED_COMP_SIZE bytes: control archive=10240 bytes.
472      193 bytes,     7 lines      control
473  Package: pkg-deb-format
474  Version: 0.0-1
475  Section: test
476  Priority: extra
477  Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
478  Architecture: all
479  Description: test package - deb format support
480 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
481 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
482 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
485 AT_CHECK([
486 # Test building and extracting none compressed archive
487 dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ pkg-comp-none.deb >/dev/null
488 dpkg-deb --ctrl-tarfile pkg-comp-none.deb >ctrl-none.tar
489 dpkg-deb --fsys-tarfile pkg-comp-none.deb >fsys-none.tar
490 cmp ctrl-none.tar control.tar
491 cmp fsys-none.tar data.tar
494 AT_CHECK([
495 # Test building and extracting gzip compressed archive
496 dpkg-deb --uniform-compression --root-owner-group -Zgzip -b pkg-templ pkg-comp-gzip.deb >/dev/null
497 dpkg-deb --ctrl-tarfile pkg-comp-gzip.deb >ctrl-gzip.tar
498 dpkg-deb --fsys-tarfile pkg-comp-gzip.deb >fsys-gzip.tar
499 cmp ctrl-gzip.tar control.tar
500 cmp fsys-gzip.tar data.tar
503 AT_CLEANUP
506 AT_SETUP([dpkg-deb .deb format 2.x (xz)])
507 AT_KEYWORDS([dpkg-deb deb])
509 AT_SKIP_IF([! command -v gzip >/dev/null])
510 AT_SKIP_IF([! command -v xz >/dev/null])
512 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
513 AT_CHECK([
514 # Extract the base members
515 xz -c control.tar >control.tar.xz
516 xz -c data.tar >data.tar.xz
519 AT_CHECK([
520 # Test control.tar.xz member
521 DPKG_AR_GEN([pkg-control-xz.deb], [debian-binary control.tar.xz data.tar.xz])
522 DPKG_AR_LIST([pkg-control-xz.deb])
523 dpkg-deb -c pkg-control-xz.deb
524 ], [], [debian-binary
525 control.tar.xz
526 data.tar.xz
527 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
528 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
529 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
532 AT_CHECK([
533 # Test data.tar.xz member
534 DPKG_AR_GEN([pkg-data-xz.deb], [debian-binary control.tar.gz data.tar.xz])
535 DPKG_AR_LIST([pkg-data-xz.deb])
536 dpkg-deb -c pkg-data-xz.deb
537 ], [], [debian-binary
538 control.tar.gz
539 data.tar.xz
540 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
541 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
542 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
545 AT_CHECK([
546 # Test building and extracting xz compressed archive
547 dpkg-deb --uniform-compression --root-owner-group -Zxz -b pkg-templ pkg-comp-xz.deb >/dev/null
548 dpkg-deb --ctrl-tarfile pkg-comp-xz.deb >ctrl-xz.tar
549 dpkg-deb --fsys-tarfile pkg-comp-xz.deb >fsys-xz.tar
550 cmp ctrl-xz.tar control.tar
551 cmp fsys-xz.tar data.tar
554 AT_CLEANUP
557 AT_SETUP([dpkg-deb .deb format 2.x (zstd)])
558 AT_KEYWORDS([dpkg-deb deb])
560 AT_SKIP_IF([! command -v gzip >/dev/null])
561 AT_SKIP_IF([! command -v zstd >/dev/null])
563 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
564 AT_CHECK([
565 # Extract the base members
566 zstd -c control.tar >control.tar.zst
567 zstd -c data.tar >data.tar.zst
570 AT_CHECK([
571 # Test control.tar.zst member
572 DPKG_AR_GEN([pkg-control-zst.deb], [debian-binary control.tar.zst data.tar.zst])
573 DPKG_AR_LIST([pkg-control-zst.deb])
574 dpkg-deb -c pkg-control-zst.deb
575 ], [], [debian-binary
576 control.tar.zst
577 data.tar.zst
578 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
579 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
580 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
583 AT_CHECK([
584 # Test data.tar.zst member
585 DPKG_AR_GEN([pkg-data-zst.deb], [debian-binary control.tar.gz data.tar.zst])
586 DPKG_AR_LIST([pkg-data-zst.deb])
587 dpkg-deb -c pkg-data-zst.deb
588 ], [], [debian-binary
589 control.tar.gz
590 data.tar.zst
591 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
592 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
593 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
596 AT_CHECK([
597 # Test building and extracting zstd compressed archive
598 dpkg-deb --uniform-compression --root-owner-group -Zzstd -b pkg-templ pkg-comp-zstd.deb >/dev/null
599 dpkg-deb --ctrl-tarfile pkg-comp-zstd.deb >ctrl-zstd.tar
600 dpkg-deb --fsys-tarfile pkg-comp-zstd.deb >fsys-zstd.tar
601 cmp ctrl-zstd.tar control.tar
602 cmp fsys-zstd.tar data.tar
605 AT_CLEANUP
608 AT_SETUP([dpkg-deb .deb format 2.x (bzip2)])
609 AT_KEYWORDS([dpkg-deb deb])
611 AT_SKIP_IF([! command -v gzip >/dev/null])
612 AT_SKIP_IF([! command -v bzip2 >/dev/null])
614 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
615 AT_CHECK([
616 # Extract the base members
617 bzip2 -c data.tar >data.tar.bz2
620 AT_CHECK([
621 # Test data.tar.bz2 member
622 DPKG_AR_GEN([pkg-data-bz2.deb], [debian-binary control.tar.gz data.tar.bz2])
623 DPKG_AR_LIST([pkg-data-bz2.deb])
624 dpkg-deb -c pkg-data-bz2.deb
625 ], [], [debian-binary
626 control.tar.gz
627 data.tar.bz2
628 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
629 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
630 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
633 AT_CLEANUP
636 AT_SETUP([dpkg-deb .deb format 2.x (lzma)])
637 AT_KEYWORDS([dpkg-deb deb])
639 AT_SKIP_IF([! command -v gzip >/dev/null])
640 AT_SKIP_IF([! command -v lzma >/dev/null])
642 DPKG_GEN_PKG_DEB_FORMAT_TEMPL()
643 AT_CHECK([
644 # Extract the base members
645 lzma -c data.tar >data.tar.lzma
648 AT_CHECK([
649 # Test data.tar.lzma member
650 DPKG_AR_GEN([pkg-data-lzma.deb], [debian-binary control.tar.gz data.tar.lzma])
651 DPKG_AR_LIST([pkg-data-lzma.deb])
652 dpkg-deb -c pkg-data-lzma.deb
653 ], [], [debian-binary
654 control.tar.gz
655 data.tar.lzma
656 drwxr-xr-x root/root         0 1970-01-01 00:00 ./
657 -rw-r--r-- root/root    641345 1970-01-01 00:00 ./ChangeLog.old
658 -rw-r--r-- root/root         5 1970-01-01 00:00 ./file-templ
661 AT_CLEANUP