rar-rs 0.12.0+dfsg-1
Package Information
| Description | Pure-Rust RAR archive toolkit A command-line tool for creating, reading, extracting, and modifying RAR 1.5-4.x, RAR5, and RAR7 archives without an external RAR binary. |
|---|---|
| Maintainer | Debian Commons <rar-rs@packages.debian.org> |
| Changed By | Bastian Germann <bage@debian.org> |
| Sponsor | bage@debian.org |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/debian/rar-rs.git (browse) |
| Closes | #1153236 |
| Tracker | https://tracker.debian.org/pkg/rar-rs |
| Uploaded | 2 hours ago |
New Package Report
.changes
| Version | 0.12.0+dfsg-1 |
|---|---|
| Changed-By | Bastian Germann <bage@debian.org> |
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Fri, 06 Nov 2026 19:30:21 +0100 |
| Source | rar-rs |
Changelog
rar-rs (0.12.0+dfsg-1) unstable; urgency=medium . * Initial release. (Closes: #1153236)
.dsc
| Component | main |
|---|---|
| Package-List | rar-rs deb utils optional arch=any unrar-rs deb utils optional arch=any |
| Section | utils |
| Priority | optional |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/yjdyamv/rar-rs
Upstream-Name: rar-rs
Upstream-Contact: https://github.com/yjdyamv/rar-rs/issues
Files-Excluded:
.github
crates/rar/tests/fixtures/rar13
crates/rar/tests/fixtures/x86
crates/rar/tests/fixtures/rar40/rarvm/filter_bsdcat_exe.rar
crates/rar/tests/fixtures/rar40/rarvm/vm_encoded_u32_filter.rar
crates/rar/tests/rar13_read.rs
crates/rar-cli/tests/winrar_interop/rar13.rs
crates/rar-napi
Comment:
Exclude binary files that have propietary provenance or undocumented licenses.
Exclude files that are not built and reference JavaScript libraries.
Files:
*
Copyright:
Copyright (c) 2025, librar contributors
Copyright (c) 2026, yjdyamv
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:
.
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
.
2. 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 HOLDER 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.
Comment:
crates/rar/src/codec/modern/lzss_huff/mod.rs:
Clean-room implementation for software conservation and educational
purposes. Bitstream format derived from analysis of libarchive's
archive_read_support_format_rar5.c by Grzegorz Antoniak (2018),
an independent BSD-2-Clause licensed implementation.
Files:
crates/rar/tests/fixtures/rar50/winrar5_multiple_files.rar
Comment: RAR5 archive created by WinRAR, vendored from
the libarchive test suite (`test_read_format_rar5_multiple_files.rar`,
BSD-2-Clause licensed, <https://github.com/libarchive/libarchive>).
Copyright: Tim Kientzle
All rights reserved.
License: BSD-2-Clause-pos-unchanged
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer
in this position and unchanged.
2. 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 AUTHOR(S) ``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 AUTHOR(S) 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.
Files:
crates/rar/src/crypto/rar50.rs
crates/rar/src/crypto/rar13.rs
crates/rar/src/format/rar13/mod.rs
crates/rar/src/format/rar13/write.rs
crates/rar/src/format/rar5/blake2sp.rs
crates/rar/src/codec/legacy/ppmd.rs
crates/rar/src/codec/legacy/rar15.rs
crates/rar/src/codec/legacy/rar15_encoder.rs
crates/rar/src/codec/legacy/rar20_encoder.rs
crates/rar/src/codec/legacy/rar20.rs
crates/rar/src/codec/legacy/rar29_encoder.rs
crates/rar/src/codec/legacy/rar29.rs
crates/rar/src/codec/legacy/rarvm.rs
crates/rar/src/codec/common/filters.rs
crates/rar/src/codec/common/match_finder.rs
crates/rar/src/codec/modern/lzss_huff/encoder/parse/*
crates/rar/src/recovery/rar50/*
crates/rar/src/recovery/rev3/rs8.rs
crates/rar/src/recovery/rev3/mod.rs
crates/rar/src/recovery/legacy.rs
crates/rar/tests/rar_vm_filters.rs
crates/rar/tests/fixtures/rar40/*
Copyright: Gareth Davidson @bitplane
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comment:
On Debian systems, the full text of the License can be found in the file
`/usr/share/common-licenses/Apache-2.0'.
.
A rars COPYING file read "WTFPL with 1 extra clause" for a few weeks
in 2026; it never appeared in that project's workspace metadata or in a
release, and was replaced by Apache-2.0. No file here claims WTFPL.
Also, the alternative MIT license was removed later, so it is assumed
that rars mistakenly referenced MIT in Cargo.toml.
Files:
debian/*
Copyright:
2000-2004 Petr Cech <cech@debian.org>
2026 Bastian Germann <bage@debian.org>
License: public-domain
Put under public domain. Feel free to do whatever you want with it.
DFSG Assistant LLM REVIEW 0 blocker, 0 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 0 hours ago.
Report
DFSG NEW review for rar-rs version 0.12.0+dfsg-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 83 found (38 not listed by the scan, so not checked)
Licensing
The licensing itself is DFSG-compliant: the tree is BSD-2-Clause by default (LICENSE, matching the Files: * text), the rars-derived files are Apache-2.0 (their headers offer MIT OR Apache-2.0, and choosing Apache-2.0 is allowed), everything combined in the binaries is permissive, and there are no non-free terms anywhere. Every holder that appears in the tree or in the per-file notices (librar contributors, yjdyamv, Gareth Davidson, Tim Kientzle) is named, the proprietary-provenance fixtures are excluded, and the file is DEP-5. It does not describe one file accurately, however: the libarchive test fixture's licence paragraph has been altered from libarchive's BSD-2-Clause by adding "in this position and unchanged" to condition 1, and given an invented short name to match.
Packaging
Careful, current packaging: debhelper compat 14 with dh-rust (dh-sequence-rust), Build-Depends that all resolve in unstable (librust-aes 0.9.3, hmac 0.13.0, sha2 0.11.1, sha1 0.11.0, rand 0.10.3, clap 4.6.7, wide 1.7.1, zeroize 1.9.0), and the dev-dependencies correctly in Build-Depends because dh-rust runs cargo test at build time. 3.0 (quilt) with DEP-3 patches that document why the fixtures of unclear provenance are excluded and fix genuine 32-bit overflows, tests touching excluded fixtures marked #[ignore] (the remaining path reference is a runtime fs::read, so nothing fails to compile), a correct alternatives entry taking over /usr/bin/unrar alongside unrar-nonfree and unrar-free, Standards-Version 4.7.4 (current), sane changelog and Vcs fields. The only real gap is that the release profile strips debug info during the build, so the archive gets no useful -dbgsym packages.
Issues
minor licensing 1. debian/copyright misquotes libarchive's BSD-2-Clause by adding "in this position and unchanged" ◂
- Files:
debian/copyright:58-64 - Basis: checked, in the package or with a reference tool
- Evidence:
License: BSD-2-Clause-pos-unchanged...1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer in this position and unchanged. - Problem: The stanza's own Comment says the file is "BSD-2-Clause licensed", and libarchive's BSD-2-Clause text (compare /usr/share/doc/libarchive13t64/copyright, whose
License: BSD-2-clauseparagraph is otherwise character-for-character the same) has no such clause. The copyright file therefore states a licence forcrates/rar/tests/fixtures/rar50/winrar5_multiple_files.rarthat the file is not under: it invents a retention-in-position condition and a matching short name (BSD-2-Clause-pos-unchanged) that does not exist. The licences are all free, so this is not a DFSG problem, but the file is not an accurate description of that file's licence (copyright-format 6.7, 7.1). - Fix: Drop
in this position and unchangedand use the plainBSD-2-Clauseparagraph already present in theFiles: *stanza (or setLicense: BSD-2-Clauseand point at that paragraph) so the text matches libarchive's.
minor packaging 2. Release profile strips debug information, so the archive gets no useful -dbgsym packages ◂
-
Files:
Cargo.toml:68-70 -
Basis: checked, in the package or with a reference tool
-
Evidence:
[profile.release] lto = true strip = "symbols" -
Problem: cargo passes
-C strip=symbols, which removes debug info as well as symbols from the binaries beforedh_stripsees them. Policy 10.1 says binaries should be built with debugging information and warns that stripping at build time "prevents the automatic creation of dbgsym binary packages by tools like dh_strip"; the same text notes that stripping in the build instead of leaving it to dh_strip is not recommended. dh_strip therefore finds nothing to keep, sorar-rs-dbgsym/unrar-rs-dbgsymcarry no useful symbols. -
Fix: Do not strip in the build: drop
stripfrom[profile.release]in a patch (or setexport CARGO_PROFILE_RELEASE_STRIP = nonein debian/rules, or add-C strip=nonetoRUSTFLAGS) and let dh_strip strip and split the symbols.
Verified ◂
debian/copyrightis DEP-5 with the correctFormat:URL,Upstream-Name,Source,Files-Excludedand standalone licence paragraphs; theFiles: *BSD-2-Clause text is verbatim the upstreamLICENSE, and the Apache-2 paragraph refers to/usr/share/common-licenses/Apache-2.0.- Licence evidence collected by grepping the whole tree for SPDX tags, Copyright/(C)/©, BSD/MIT/Apache/GNU/WTFPL/All rights reserved/public domain/non-commercial wording: the only hits are
LICENSE,NOTICE,LICENSES/,THIRD_PARTY_LICENSES.mdand per-file doc comments saying "MIT OR Apache-2.0" (rars ports) or "BSD-2-Clause". No non-free or no-modification wording anywhere. - The rars-derived files listed in the Apache-2 stanza each state
MIT OR Apache-2.0and the upstream revision (c08a17b) in their module headers (e.g.crates/rar/src/crypto/rar50.rs:1-5,crates/rar/src/codec/legacy/rar15.rs:1-13), so restricting them to Apache-2.0 is a permitted choice; Apache-2.0 and BSD-2-Clause combine in the one binary without conflict. crates/rar/src/codec/mod.rs:5-9andcrates/rar/src/codec/modern/lzss_huff/mod.rs:5-8credit libarchive'sarchive_read_support_format_rar5.c(Grzegorz Antoniak, BSD-2-Clause) as the analysis basis rather than as copied code, anddebian/copyright's Comment records this; the project's own holders stay correct for those files.- All 78 archives/compressed files and the 4 unrecognised binary files the scan listed are test inputs under
crates/rar/tests/fixtures/rar40/**andrar50/**: RAR archives, multi-volume sets (.rar/.r00/.r01/...),.revrecovery volumes andtail-match-362.bin. They are read by the tests, not built; therar40/*ones fall under the Apache-2.0 stanza andrar50underFiles: *, andcrates/rar/tests/fixtures/rar50/README.mddocuments each of the latter (including thatwinrar5_multiple_files.rarcomes from libarchive). crates/rar/tests/fixtures/rar40/rarvm/solid_e8_filter_payload.exeis the expected payload of the solid-filter regression test (crates/rar/tests/rar_vm_filters.rs:46-47,69-74) and is covered bydebian/source/lintian-overrides, which states it is a manually constructed file. It was not opened (binary); it is stored insolid_e8_filter_member_offset.rarat 295 bytes for 5884 bytes, a ratio only repetitive synthetic data reaches, and its companionsolid_e8_filter_lead.txtis likewise typed filler.Files-Excludedwas checked against the tree:crates/rar/tests/fixtures/rar13,.../fixtures/x86,.../rarvm/filter_bsdcat_exe.rar,.../rarvm/vm_encoded_u32_filter.rar,crates/rar-napi,crates/rar/tests/rar13_read.rs,crates/rar-cli/tests/winrar_interop/rar13.rsand.githubare all absent, anddebian/patches/exclude-fixtures.patchremoves or ignores the tests that used them (thentoskrnl_dense_prefix.bintest is#[ignore]d and reads its path withstd::fs::read, so it still compiles).docs/FORMAT_RAR5_RAR7.htmlis the project's own HTML documentation, covered byFiles: *; it loads Tailwind CSS and Mermaid from CDNs at view time (<script src="https://cdn.tailwindcss.com">) but ships no JavaScript, so no third-party code is embedded and no preferred form is missing.- Packaging read in full:
control,rules, both.docs,unrar-rs.1,unrar-rs.alternatives,unrar-rs.manpages,changelog,source/format,source/lintian-overrides,salsa-ci.yml,patches/seriesand every patch. Patch headers carryFrom/Date/Subject(two alsoOrigin), the 32-bit patches fix realusizeoverflows, anddrop-rar-napi.patch/drop-windows-sys.patchexplain why unpackaged crates are removed. - The alternatives stanza uses the dh_installdeb format correctly and takes over
/usr/bin/unrarwith its man page;unrarin the archive shipsunrar-nonfree, andunrar-freedeclaresConflicts: unrar-nonfree (<< 1:3.7.8-1), so the link is the established interface and coexists with those packages. dh-rust0.1.4 (provider ofdh-sequence-rust) was read at/usr/share/perl5/Debian/Debhelper/Buildsystem/rust.pm:X-Cargo-Crates: rar-cliresolves to therarandunrarbinaries,cargo installputs both underdebian/rar-rs, so themvinexecute_after_dh_auto_installis what givesunrar-rsits binary;unrar-rsneeds no field of its own because dh-rust only falls back per crate when no package has been tied yet.dh-rust-built-usingwritesBuilt-Using/Statically-Built-Usingonly into the substvars of the package the crate is tied to (rar-rs), so the movedunrar-rsbinary has no such field; Policy 7.8 requiresBuilt-Usingonly where the licence of the incorporated source requires it, and every Rust crate here is permissive, so this is not a fault.crates/rar-cli/src/common.rsparses-dh,-ver,-vp,-cfg-,-sc,-om,-ow,-kb,-oland~/.rarrc, sodebian/unrar-rs.1describes options the tool actually has.- uscan found upstream releases with
debian/watch; a newer upstream version is available (upstream0.14.0, packaged0.12.0+dfsg), which is not a fault of the package. - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed ◂
- The fixtures taken from the
rarstest corpus could not be traced to their origin: the package's ownTHIRD_PARTY_LICENSES.mdsays ofcrates/rar/tests/fixtures/rar40/that "their own redistribution review is still outstanding" andNOTICEsays they "remain subject to the terms of that corpus", whiledebian/copyrightattributes the whole directory to Gareth Davidson under Apache-2.0. Without network access to bitplane/rars at revisionc08a17bI cannot check whether every archive in that corpus originates with rars or with a third party. - The rars licensing history recorded in the Apache-2.0 stanza's Comment (a COPYING that read "WTFPL with 1 extra clause" for a few weeks, an MIT option later removed) could not be checked against the upstream repository; it rests on the maintainer's assertion.
crates/rar/tests/fixtures/rar40/rarvm/solid_e8_filter_payload.exewas not inspected (binary). If it were a compiled Windows program rather than the synthetic payload the lintian override describes, its source would be missing from the package.debian/copyrightattributes that same.exeto Gareth Davidson under therar40/*Apache-2.0 stanza, whiledebian/source/lintian-overridescalls it manually constructed; one of the two attributions is presumably wrong (harmless, both permissive).
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader was emailed about the review 0 hours ago.
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 0.12.0+dfsg-1 | 0dc15442… | 2026-11-06 23:28 | 2026-11-06 23:28 | dfsg-uploader | rejected | VIEW |