DFSG NEW Queue

DFSG, Licensing & New Packages Team

rar-rs 0.12.0+dfsg-1

Package Information

DescriptionPure-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.

MaintainerDebian Commons <rar-rs@packages.debian.org>
Changed ByBastian Germann <bage@debian.org>
Sponsorbage@debian.org
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/debian/rar-rs.git (browse)
Closes#1153236
Trackerhttps://tracker.debian.org/pkg/rar-rs
Uploaded2 hours ago

New Package Report

.changes◂
Version0.12.0+dfsg-1
Changed-ByBastian Germann <bage@debian.org>
Architecturesource amd64
Distributionunstable
DateFri, 06 Nov 2026 19:30:21 +0100
Sourcerar-rs
Changelog◂
rar-rs (0.12.0+dfsg-1) unstable; urgency=medium
 .
   * Initial release. (Closes: #1153236)
.dsc◂
Componentmain
Package-Listrar-rs deb utils optional arch=any
unrar-rs deb utils optional arch=any
Sectionutils
Priorityoptional
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/copyright is 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-clause paragraph is otherwise character-for-character the same) has no such clause. The copyright file therefore states a licence for crates/rar/tests/fixtures/rar50/winrar5_multiple_files.rar that 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 unchanged and use the plain BSD-2-Clause paragraph already present in the Files: * stanza (or set License: BSD-2-Clause and 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 before dh_strip sees 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, so rar-rs-dbgsym/unrar-rs-dbgsym carry no useful symbols.

  • Fix: Do not strip in the build: drop strip from [profile.release] in a patch (or set export CARGO_PROFILE_RELEASE_STRIP = none in debian/rules, or add -C strip=none to RUSTFLAGS) and let dh_strip strip and split the symbols.

Verified ◂
  • debian/copyright is DEP-5 with the correct Format: URL, Upstream-Name, Source, Files-Excluded and standalone licence paragraphs; the Files: * BSD-2-Clause text is verbatim the upstream LICENSE, 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.md and 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.0 and 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-9 and crates/rar/src/codec/modern/lzss_huff/mod.rs:5-8 credit libarchive's archive_read_support_format_rar5.c (Grzegorz Antoniak, BSD-2-Clause) as the analysis basis rather than as copied code, and debian/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/** and rar50/**: RAR archives, multi-volume sets (.rar/.r00/.r01/...), .rev recovery volumes and tail-match-362.bin. They are read by the tests, not built; the rar40/* ones fall under the Apache-2.0 stanza and rar50 under Files: *, and crates/rar/tests/fixtures/rar50/README.md documents each of the latter (including that winrar5_multiple_files.rar comes from libarchive).
  • crates/rar/tests/fixtures/rar40/rarvm/solid_e8_filter_payload.exe is the expected payload of the solid-filter regression test (crates/rar/tests/rar_vm_filters.rs:46-47,69-74) and is covered by debian/source/lintian-overrides, which states it is a manually constructed file. It was not opened (binary); it is stored in solid_e8_filter_member_offset.rar at 295 bytes for 5884 bytes, a ratio only repetitive synthetic data reaches, and its companion solid_e8_filter_lead.txt is likewise typed filler.
  • Files-Excluded was 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.rs and .github are all absent, and debian/patches/exclude-fixtures.patch removes or ignores the tests that used them (the ntoskrnl_dense_prefix.bin test is #[ignore]d and reads its path with std::fs::read, so it still compiles).
  • docs/FORMAT_RAR5_RAR7.html is the project's own HTML documentation, covered by Files: *; 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/series and every patch. Patch headers carry From/Date/Subject (two also Origin), the 32-bit patches fix real usize overflows, and drop-rar-napi.patch/drop-windows-sys.patch explain why unpackaged crates are removed.
  • The alternatives stanza uses the dh_installdeb format correctly and takes over /usr/bin/unrar with its man page; unrar in the archive ships unrar-nonfree, and unrar-free declares Conflicts: unrar-nonfree (<< 1:3.7.8-1), so the link is the established interface and coexists with those packages.
  • dh-rust 0.1.4 (provider of dh-sequence-rust) was read at /usr/share/perl5/Debian/Debhelper/Buildsystem/rust.pm: X-Cargo-Crates: rar-cli resolves to the rar and unrar binaries, cargo install puts both under debian/rar-rs, so the mv in execute_after_dh_auto_install is what gives unrar-rs its binary; unrar-rs needs no field of its own because dh-rust only falls back per crate when no package has been tied yet.
  • dh-rust-built-using writes Built-Using/Statically-Built-Using only into the substvars of the package the crate is tied to (rar-rs), so the moved unrar-rs binary has no such field; Policy 7.8 requires Built-Using only 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.rs parses -dh, -ver, -vp, -cfg-, -sc, -om, -ow, -kb, -ol and ~/.rarrc, so debian/unrar-rs.1 describes options the tool actually has.
  • uscan found upstream releases with debian/watch; a newer upstream version is available (upstream 0.14.0, packaged 0.12.0+dfsg), which is not a fault of the package.
  • Every pointer of debian/copyright to /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed ◂
  • The fixtures taken from the rars test corpus could not be traced to their origin: the package's own THIRD_PARTY_LICENSES.md says of crates/rar/tests/fixtures/rar40/ that "their own redistribution review is still outstanding" and NOTICE says they "remain subject to the terms of that corpus", while debian/copyright attributes the whole directory to Gareth Davidson under Apache-2.0. Without network access to bitplane/rars at revision c08a17b I 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.exe was 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/copyright attributes that same .exe to Gareth Davidson under the rar40/* Apache-2.0 stanza, while debian/source/lintian-overrides calls 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

VersionHashAllocatedCompletedReviewerStatusDetails
0.12.0+dfsg-1 0dc15442… 2026-11-06 23:28 2026-11-06 23:28 dfsg-uploader rejected VIEW

Back to Dashboard | View all reviews for this package