php-archive-tar 1.6.1-1
Package Information
| Description | ${phppear:summary} ${phppear:description} |
|---|---|
| Maintainer | Debian PHP PEAR Maintainers <pkg-php-pear@lists.alioth.debian.org> |
| Changed By | David Prévot <taffit@debian.org> |
| Sponsor | taffit@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/php-team/pear/php-archive-tar.git (browse) |
| Tracker | https://tracker.debian.org/pkg/php-archive-tar |
| Uploaded | 3 hours ago |
New Package Report
.changes
| Source | php-archive-tar |
|---|---|
| Version | 1.6.1-1 |
| Changed-By | David Prévot <taffit@debian.org> |
| Architecture | source all |
| Distribution | unstable |
| Date | Sat, 31 Oct 2026 21:04:41 +0100 |
Changelog
php-archive-tar (1.6.1-1) unstable; urgency=medium . * Initial release (php-pear dependency, cf. #1152703)
.dsc
| Package-List | php-archive-tar deb php optional arch=all |
|---|---|
| Section | php |
| Priority | optional |
| Component | main |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Archive_Tar
Upstream-Contact: Vincent Blavet <vincent@phpconcept.net>
Source: https://github.com/pear/Archive_Tar
Files: *
Copyright: 1997-2008 Vincent Blavet <vincent@phpconcept.net>
License: BSD-2-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
DFSG Assistant LLM REVIEW 0 blocker, 2 important, 2 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 2 hours ago.
Report
DFSG NEW review for php-archive-tar version 1.6.1-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: No
- Issues: 0 blocker, 2 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 10 found
Licensing
The only licence in the tree is 2-clause BSD (Archive/Tar.php:8-29, package.xml's New BSD License, composer.json's BSD-2-Clause), which is DFSG-free; debian/copyright is DEP-5, reproduces the licence text in full, and there are no non-free terms, no licence-less files and no vendored third-party code. The one defect is accuracy: Archive/Tar.php:36 credits 1997-2010 The Authors in addition to 1997-2008 Vincent Blavet, and only Blavet is recorded in the Files: * Copyright field, so the contributors the source itself names as holders are not represented.
Packaging
Modern, mostly conventional PHP packaging: 3.0 (quilt) with a single DEP-3 patch, debhelper compat 14 with %: dh $@, working dh_installchangelogs and execute_before_dh_computeautosubstvars hooks, Vcs-*, Homepage, gbp.conf, a README.source explaining the pregenerated files, and an autopkgtest. Three defects: the binary declares no dependency on anything that provides the PEAR base class Archive_Tar extends, while its Breaks/Replaces make the archive's php-pear (the PEAR.php provider) uninstallable alongside it; both the build and the autopkgtest run phpunit tests, which cannot execute the PHPT suite in tests/ (upstream CI uses pear run-tests), so no test runs at all; and the hand-maintained substvars-static has drifted from debian/control.
Issues
important
licensing
1. Files: * omits the copyright holder 1997-2010 The Authors credited in Archive/Tar.php
◂
- Files:
debian/copyright:6-7,Archive/Tar.php:9-11,Archive/Tar.php:36 - Basis: checked, in the package or with a reference tool
- Evidence: Archive/Tar.php:36:
* @copyright 1997-2010 The Authors; the file's own grant at Archive/Tar.php:9-11:Copyright (c) 1997-2008,/Vincent Blavet <vincent@phpconcept.net>; debian/copyright:Files: */Copyright: 1997-2008 Vincent Blavet <vincent@phpconcept.net>. - Problem: The source names two copyright lines for its only implementation file, but debian/copyright records one holder and the shorter year range. The authors listed in composer.json and package.xml (Greg Beaver, Michiel Rook, Drew Webber) are precisely the contributors the file's
The Authorstag refers to, so a holder the file asserts is missing from the copyright file; the review's own author check flags the same line. - Fix: Add
1997-2010 The Authorsto theCopyrightfield of theFiles: *stanza (or add aFiles: Archive/Tar.phpstanza after it, which then wins for that file).
important packaging 2. Depends brings in php-common only, but Archive_Tar extends PEAR and loads PEAR.php from php-pear, which this package also Breaks ◂
- Files:
debian/control,debian/php-archive-tar.substvars-static,debian/patches/0001-Break-circular-dependency.patch,debian/tests/control,Archive/Tar.php:44-45,Archive/Tar.php:59 - Basis: inferred from what was read, not seen directly
- Evidence: Archive/Tar.php:44-45
if (!class_exists('PEAR')) {/require_once 'PEAR.php';and:59 class Archive_Tar extends PEAR; substvars-staticphpcomposer:Debian-require=php-common, php-common(i.e.Depends: php-common); the patch removes"pear/pear-core-minimal": "^1.10.0alpha2"from composer.jsonrequire;debian/tests/controlitself addsphp-pear.apt-cache show php-commongivesDepends: psmisc (>= 22.15-1~)only, whilephp-pearships the PEAR base class andPeovides: php-archive-tar, php-console-getopt, php-structures-graph, php-xml-util;php-net-smtp, whose classes also need the PEAR base class, hasDepends: php-pear, php-common. - Problem: Nothing in the binary's Depends provides
/usr/share/php/PEAR.php, sophp-archive-tarcannot be loaded on a system without php-pear (PHP dies declaringclass Archive_Tar extends PEAR), contrary to Policy 3.5 (each package must depend on the packages it needs). TheBreaks: php-pear (<< 1:1.10.18+t)/Replacesmake this worse: the only php-pear in the archive is1:1.10.18+submodules+notgz-1, which sorts below1:1.10.18+t, so installing this package today forces php-pear (the PEAR.php provider) off the system. The dependency that upstream declares for this,pear/pear-core-minimal(Debian's php-pear), was removed by the patch to break the php-pear cycle, but the package it excuses is still needed. - Fix: Depend on the package that ships the PEAR base class (php-pear) and break the planned cycle on php-pear's side instead (e.g. keep the transitional php-pear free of a dependency on php-archive-tar, or move PEAR.php into a separate base package both can depend on). If a php-pear version at or above
1:1.10.18+tthat still ships PEAR.php is uploaded at the same time, dropphp-pearfrom Depends only together with that upload and say so in README.source.
minor
packaging
3. phpunit tests cannot run the PHPT suite in tests/, so neither the build test nor the autopkgtest executes any test
◂
- Files:
debian/rules,debian/tests/control,tests/big.phpt,tests/dirtraversal.phpt,.github/workflows/build.yml - Basis: inferred from what was read, not seen directly
- Evidence: Every test in
tests/is a PEAR PHPT file starting with--TEST--(18 of them) and needs a PHPT runner; there is nophpunit.xmland no PHPUnit test class anywhere in the tree; upstream's own CI runspear run-tests -qr tests/.debian/rules:override_dh_auto_test:/phpunit tests;debian/tests/control:Test-Command: phpunit tests. - Problem: PHPUnit only collects PHPUnit test cases, and
tests/contains none, so pointing it at that directory finds nothing to run (PHPUnit's default is not to fail on an empty suite). The 18 PEAR tests, which are the only coverage of extraction, symlink attacks, path traversal and >8G handling, are therefore never executed, and the autopkgtest reports success while testing nothing. - Fix: Run the suite with its own runner in both places, e.g.
pear run-tests -qr tests/(php-pear is already in Build-Depends and in tests/control), or install the .phpt files and run them with php-src's run-tests.php; dropphpunitfrom Build-Depends/tests Depends if nothing else uses it.
minor packaging 4. debian/php-archive-tar.substvars-static has drifted from debian/control: four referenced ${phpcomposer:...} variables are undefined and php-common is listed twice ◂
- Files:
debian/control,debian/php-archive-tar.substvars-static - Basis: checked, in the package or with a reference tool
- Evidence:
debian/controluses${phpcomposer:Debian-recommend},${phpcomposer:Debian-provide},${phpcomposer:Debian-replace}and${phpcomposer:Debian-conflict}; the static file defines none of them and only hasphpcomposer:Debian-require=php-common, php-common. - Problem: dpkg-gencontrol warns
substitution variable ${...} used, but is not definedfor each and substitutes nothing (/usr/share/perl5/Dpkg/Substvars.pm,substvars()), soRecommendsandProvidescome out empty andBreaks/Replacesare left with dangling empty entries; the duplicatedphp-commoninDependsshows the file no longer matches composer.json after the patch and that the pregenerated data can silently disagree with the packaging. - Fix: Regenerate the file with the
debian/rules updatetarget (or add the four assignments, empty as appropriate, and drop the four references fromdebian/control), and remove the duplicatephp-common.
Verified ◂
- Read all of debian/ (control, rules, copyright, changelog, install, docs, clean, gbp.conf, README.source, source/format, source/lintian-overrides, lintian-overrides, tests/control, patches/series and the one patch, upstream/{changelog,metadata}, autoload.php, autoload.php.tpl, archive_tar.reg, php-archive-tar.substvars-static, autoloaders/php-archive-tar, overrides/php-archive-tar) and the whole upstream tree (Archive/Tar.php, docs/Archive_Tar.txt, scripts/phptar.in, all of tests/, package.xml, composer.json, README.md, SECURITY.md, sync-php4, .gitignore, .github/).
- Licence sweep with grep for
Copyright,(C),©,SPDX-License-Identifier,All rights reserved,BSD/New BSD,Licen[cs]e,GNU,Apache,Mozilla,public domain,Permission is hereby granted,non-commercial,Good, not Evil,Creative Commonsover the tree (excluding .pc/ and debian/cargo-checksum.json): notices only in Archive/Tar.php, package.xml (New BSD License) and composer.json (BSD-2-Clause); theGNUhits are the wordsGNU TAR/GNU ZIPin docs/Archive_Tar.txt. No other holder, no vendored third-party code, no non-free clause. - debian/copyright is DEP-5 with the required Format/Upstream-Name/Source header; its BSD-2-clause text is complete (both clauses and the disclaimer) and matches the grant in Archive/Tar.php; the licence is DFSG-free, so no replacement copyright file is proposed.
tests/big.tar.bz2is the >8G-member fixture used by tests/big.phpt;tests/dir_permissions.tarby tests/dir_permissions.phpt;tests/evil_symlink_win.tarby tests/evil_symlink_win.phpt;tests/out_of_path_relative.tarby tests/out_of_path_relative.phpt;tests/out_of_path_symlink.tarby tests/out_of_path_fnames.phpt;tests/relativesymlink.tarby tests/relativesymlink.phpt;tests/testpax.tarby tests/pax.phpt;tests/testperms.tarby tests/permissions.phpt;tests/testsymlink.tarby tests/symlink.phpt and tests/symlink_disallow.phpt. All are required test data, not built artefacts.tests/hamidTARtester2.tar, which the scan could not identify, is the crafted../../..-traversal archive read by tests/dirtraversal.phpt; it is test data (a tar with an atypical header), not a built program or library.- Other test data: tests/testblock1/a.txt and tests/testblock1/bugTriggeringPng.png, tests/testblock2/.gitignore, tests/testblock3/1024bytes.txt and 1024bytes.txt/randombytes.txt, tests/text-0.txt (used by tests/512nbytesfile.phpt and tests/invalidblock.phpt); tests/phpt_test.php.inc and tests/setup.php.inc are the PEAR test harness and its loader, carrying no separate notice.
- Pregenerated files in debian/ all have their generator and input in the package: debian/archive_tar.reg from
pear install package.xml(rulesupdate), debian/autoload.php from phpab over Archive/Tar.php with debian/autoload.php.tpl, debian/upstream/changelog from package.xml; nothing lacks its preferred form for modification. - Packaging mechanics checked:
debian/source/format3.0 (quilt); the single patch has DEP-3 headers (From/Date/Subject/Forwarded/Description) and does what its name says; debhelper compat 14 with%: dh $@, anddh_computeautosubstvars(used by theexecute_before_hook) is a real debhelper command (/usr/bin/dh_computeautosubstvars);dh_installchangelogsuses debian/upstream/changelog correctly; changelog is a valid initialunstableupload; Standards-Version 4.7.4 against Policy 4.7.4.1 (first two components equal, not an issue); Vcs-Git/Vcs-Browser/Homepage consistent with gbp.conf; README.source documents the pregenerated-file workflow. - debian/autoloaders/php-archive-tar and debian/overrides/php-archive-tar use the same three-field format as the pkg-php-tools data installed on the reviewing system (/usr/share/pkg-php-tools/{autoloaders,overrides}/jsonlint), so installing them under usr/share/pkg-php-tools matches existing practice.
- Dependency fields for the finding above were checked with apt-cache:
php-common2:102~ (Depends: psmisc (>= 22.15-1~)),php-pear1:1.10.18+submodules+notgz-1 (Provides: php-archive-tar, php-console-getopt, php-structures-graph, php-xml-util),php-net-smtp(Depends: php-pear, php-common),php-bz2,phpunit. - uscan found the packaged version as the newest upstream release (upstream
1.6.1, packaged1.6.1).
Not confirmed ◂
- php-common's file list is not available to this review: the missing-dependency finding assumes it does not ship /usr/share/php/PEAR.php. Its control depends only on psmisc and describes itself as
common utilities, and php-net-smtp, which likewise needs the PEAR base class, depends on php-pear; if php-common did ship PEAR.php, the issue would reduce to the Breaks/Replaces point. - PHPUnit is not installed on the reviewing system, so its handling of tests/ (finding no test case files and exiting with success) was not observed; only the package facts (PHPT-only suite, no phpunit.xml, no PHPUnit test class, upstream CI using
pear run-tests) were checked.
Proposed changes ◂
None.
Uploader's response to the LLM review
Waiting for the uploader's response until , because the review found serious issues.