DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: kazv 0.7.0-3

Package Information

Descriptionlightweight, convergent Matrix client and secure messaging app

Kazv is a lightweight, convergent Matrix client and secure messaging app

MaintainerYifei Zhan <debian@zhan.science>
Changed ByYifei Zhan <debian@zhan.science>
Distributionunstable
Architectureany
VCSgit: https://salsa.debian.org/yifei/kazv.git (browse)
Trackerhttps://tracker.debian.org/pkg/kazv
Uploaded8 days ago
Supersedes0.7.0-2

New Package Report

.changes◂
Version0.7.0-3
Changed-ByYifei Zhan <debian@zhan.science>
Architecturesource amd64
Distributionunstable
DateSat, 17 Oct 2026 00:49:27 +0000
Sourcekazv
Changelog◂
kazv (0.7.0-3) unstable; urgency=medium
 .
   * Add d/missing-sources for transpiled JS, refine d/copyright
.dsc◂
Package-Listkazv deb net optional arch=any
Sectionnet
Priorityoptional
Componentmain
debian/copyright◂
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: the Kazv Project <https://kazv.chat>
Upstream-Contact: https://matrix.to/#/#kazv:tusooa.xyz
Source: https://r.lily-is.land/the-kazv-project/kazv.git

Files: *
Copyright:
 2020-2026 Tusooa Zhu <tusooa@kazv.moe>
 2020-2026 The Kazv Project
License: AGPL-3+

Files: debian/*
Copyright: 2026 Yifei Zhan <yifei@zhan.science>
License: AGPL-3+

Files: 
 debian/missing-sources/src/js/Intl.js/*
 src/js/transformed-libs/bundled-deps.js
Copyright:
 1991-2013, Unicode, Inc.
 2013 Andy Earnshaw
License: Expat
Comment:
 Source available from https://r.lily-is.land/the-kazv-project/Intl.js-fork
 Forked from https://github.com/andyearnshaw/Intl.js

Files:
 debian/missing-sources/src/js/fluent/*
 src/js/transformed-libs/fluent-*.js
Copyright:
 2016 Zibi Braniecki <zbraniecki@mozilla.com>
 2016 Staś Małolepszy <stas@mozilla.com>
 2013-2019 Mozilla Foundation and others
License: Apache-2.0

Files:
 src/contents/ui/AcceptRejectNoopOverlay.qml
 src/contents/ui/FileHandler.qml
 src/contents/ui/KazvAction.qml
 src/contents/ui/KazvIOMenu.qml
 src/contents/ui/MediaFileMenu.qml
 src/contents/ui/actions/AllActions.qml
 src/contents/ui/actions/BubbleActions.qml
 src/contents/ui/actions/DialogActions.qml
 src/contents/ui/actions/GlobalDrawerActions.qml
 src/contents/ui/actions/RoomListActions.qml
 src/contents/ui/actions/RoomPageActions.qml
 src/contents/ui/actions/SettingsActions.qml
 src/contents/ui/event-types/MediaBubble.qml
 src/kazv-file.hpp
 src/kazv-io-job.cpp
 src/kazv-io-job.hpp
 src/kazv-io-manager.cpp
 src/kazv-io-manager.hpp
 src/tests/kazv-config-test.cpp
 src/tests/kazv-file-test.cpp
 src/tests/kazv-io-job-test.cpp
 src/tests/kazv-io-manager-test.cpp
 src/tests/quick-tests/tst_FileHandler.qml
 src/tests/quick-tests/tst_KazvIOMenu.qml
 src/tests/quick-tests/tst_MatrixLink.qml
 src/upload-job-model.cpp
 src/upload-job-model.hpp
Copyright:
 2020-2026, The Kazv Project
 2026 nannanko <nannanko@kazv.moe>
License: AGPL-3+

Files:
 src/contents/ui/settings/CacheSettings.qml
 src/tests/sso-login-process-test.cpp
 src/kazv-file.cpp
 src/l10n/en/100-ui.ftl
 src/contents/ui/emoji/Symbols.qml
 src/l10n/cmn-Hans/100-ui.ftl
 src/js/package-lock.json
Copyright:
 2024-2036 The Kazv Project
 2020-2026 nannanko <nannanko@kazv.moe>
 2020-2026 Tusooa Zhu <tusooa@kazv.moe>
License: AGPL-3+

Files:
 src/tests/quick-tests/tst_ReactToEventPopup.qml
 tools/emoji.lisp
Copyright:
 2024 April Simone <apr3vau@outlook.com>
 2024 The Kazv Project
License: AGPL-3+

Files:  moe.kazv.mxc.kazv.appdata.xml
Copyright: 2024-2026 The Kazv Project
License: FSFAP

Files: src/l10n/hi/100-ui.ftl
Copyright: 2022, xploreinfinity
License: AGPL-3+

Files: src/qfunctionutils.hpp
Copyright: 2019, juangburgos <https://github.com/juangburgos/>
License: Expat

License: FSFAP
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
 notice and this notice are preserved. This file is offered as-is,
 without any warranty.

License: AGPL-3+
 On Debian systems, the complete text of the GNU Affero General Public License
 version 3 can be found in `/usr/share/common-licenses/AGPL-3'.

License: Expat
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
 files (the "Software"), to deal in the Software without
 restriction, including without limitation the rights to use, copy,
 modify, merge, publish, distribute, sublicense, and/or sell copies
 of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 .
 The above copyright notice and this permission notice shall be
 included in all copies or substantial portions of the Software.
 .
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 DEALINGS IN THE SOFTWARE.

License: Apache-2.0
 On Debian systems the full text of the Apache-2.0 license can be found in
 /usr/share/common-licenses/Apache-2.0.

DFSG Assistant LLM REVIEW 1 blocker, 1 important, 3 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 8 days ago.

Report◂

DFSG NEW review for kazv version 0.7.0-3

Summary

  • Licensing is DFSG-compliant and debian/copyright is accurate: No
  • Packaging is of good quality: Yes
  • Issues: 1 blocker, 1 important, 3 minor
  • debian/watch: version 5
  • debian/copyright: machine-readable
  • Scan before the review: 823 found (783 not listed by the scan, so not checked)

Licensing

Every licence in the tree is free (AGPL-3+, Apache-2.0, Expat/MIT, FSFAP) and the transpiled JavaScript has its sources properly supplied under debian/missing-sources, so there is no DFSG problem with the software itself. debian/copyright is nevertheless inaccurate: the Intl.js/CLDR data is under the Unicode Terms of Use, not plain Expat, and its permission notice is not reproduced; and the AGPL-3+ paragraph points at a file under /usr/share/common-licenses that does not exist on the reviewing system, so the binary package carries no AGPL text. A further stanza carries an impossible copyright year.

Packaging

Control, rules, changelog, gbp.conf, qmldeps.overrides and upstream/metadata are conventional and correct for a Qt6/KF6 package built with debhelper 14 and the pkg-kde-tools dh sequences; all Build-Depends names exist in the archive, there are no patches to review, and the single binary package needs no explicit substvars at compat 14. Remaining gaps are minor: nothing runs the upstream test suite (and there is no autopkgtest), and the Qt image-format plugins that upstream calls a recommended runtime dependency are not in Recommends.

Issues

1. [blocker] [licensing] Unicode licence of the Intl.js/CLDR data is misdescribed as Expat and its notice is missing

  • Files: debian/copyright:16-22, debian/copyright:113-131, debian/missing-sources/src/js/Intl.js/LICENSE.txt:29-64, debian/missing-sources/src/js/Intl.js/locale-data/, src/js/transformed-libs/bundled-deps.js
  • Basis: checked, in the package or with a reference tool
  • Evidence: LICENSE.txt: Copyright (c) 1991-2013 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. and provided that ... (c) there is clear notice in each modified Data File or in the Software ... that the data or software has been modified.; the same file's debian/copyright stanza says License: Expat and the Expat paragraph (lines 113-131) contains only the MIT text.
  • Problem: The locale data under debian/missing-sources/src/js/Intl.js/locale-data/ and the copy compiled into src/js/transformed-libs/bundled-deps.js are under the Unicode Terms of Use, which is the Expat permission with added conditions (modification marking, trademark clause). DEP-5 section 7.1 says a licence that differs from a common one by added restrictions needs a distinct short name (Expat must not be used for it), and section 6.7 requires the full text and notices. The Unicode permission notice is not reproduced anywhere in debian/copyright, so the installed copyright file does not carry the notice the licence requires to appear in associated documentation.
  • Fix: Add a stand-alone License stanza containing the full Unicode notice under a distinct short name (for example Unicode-DFS-2016), and apply it to the Unicode data - alone, or as Expat and Unicode-DFS-2016 for files such as bundled-deps.js that mix Intl.js code with CLDR data.

2. [important] [licensing] AGPL-3+ paragraph points at a non-existent file under /usr/share/common-licenses

  • Files: debian/copyright:109-111
  • Basis: checked, in the package or with a reference tool
  • Evidence: version 3 can be found in /usr/share/common-licenses/AGPL-3'.; the reviewing system's /usr/share/common-licenses contains AGPL-3.0and noAGPL-3`.
  • Problem: Policy 12.5 requires a verbatim copy of the distribution licence in /usr/share/doc/kazv/copyright. The package relies on a common-licenses pointer, but the pointer is dangling, so the binary package ships no AGPL text at all - the licence covers nearly every file.
  • Fix: Reference /usr/share/common-licenses/AGPL-3.0 instead, or include the full AGPL-3 text in the License stanza.

3. [minor] [licensing] Impossible copyright year 2024-2036 in a Files stanza

  • Files: debian/copyright:78
  • Basis: checked, in the package or with a reference tool
  • Evidence: 2024-2036 The Kazv Project
  • Problem: The end year is in the future and matches no file notice; the files listed in that stanza carry years such as 2020-2023 (nannanko) and 2024 (tusooa), so the copyright information is wrong.
  • Fix: Replace with the years actually present in the files (apparently 2024-2026 or 2020-2026).

4. [minor] [packaging] No autopkgtest, and the upstream test suite is disabled at build time

  • Files: debian/rules:10, debian/rules:13-15
  • Basis: inferred from what was read, not seen directly
  • Evidence: -Dkazv_BUILD_TESTS=OFF (line 10) and override_dh_auto_test: followed by # Slow and flaky, disable for now. / #xvfb-run dh_auto_test (lines 13-15); there is no debian/tests/control.
  • Problem: Neither the build nor autopkgtest exercises anything, although the source contains a sizeable test suite in src/tests/ and a working upstream dh_auto_test invocation is commented out. For a new package this leaves the archive with no automated check of the binary at all.
  • Fix: Add a debian/tests/control with at least a smoke test of the installed binary (e.g. under xvfb-run), and re-enable the unit tests at build time where they are not prohibitively slow or flaky.

5. [minor] [packaging] Missing Recommends for the Qt image-format plugins upstream calls a recommended runtime dependency

  • Files: debian/control:40, README.md:76
  • Basis: inferred from what was read, not seen directly
  • Evidence: README.md: (ImageFormats is a recommended runtime dependency, without which formats like webp cannot be displayed); the binary stanza has only Depends: libqt6sql6-sqlite.
  • Problem: Without the image-format plugins the client cannot render webp (and similar) images received in Matrix messages, although upstream documents the plugin package as recommended for normal operation.
  • Fix: Add Recommends: qt6-image-formats-plugins to the kazv binary package.

Verified

  • The scan's minified-code list, file by file: each of debian/missing-sources/src/js/Intl.js/dist/Intl.complete.js, debian/missing-sources/src/js/Intl.js/dist/Intl.min.js, debian/missing-sources/src/js/Intl.js/locale-data/complete.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/af-NA.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/af-ZA.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/af.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/agq-CM.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/agq.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ak-GH.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ak.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/am-ET.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/am.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-001.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-AE.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-BH.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-DJ.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-DZ.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-EG.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-EH.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-ER.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-IL.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-IQ.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-JO.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-KM.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-KW.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-LB.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-LY.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-MA.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-MR.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-OM.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-PS.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-QA.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-SA.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-SD.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-SO.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-SS.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-SY.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-TD.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-TN.js, debian/missing-sources/src/js/Intl.js/locale-data/jsonp/ar-YE.js is a build product of the Intl.js fork (dist bundles from src/ + Gruntfile.js, complete.js/jsonp from locale-data/json/*.json), and all of those inputs are present in the same missing-sources tree; the third kind of file on the list is src/js/transformed-libs/bundled-deps.js, Babel output of Intl.js/dist/Intl.complete.js per src/js/transform.bash. None is an unsourced or non-free file; all are accounted for by Policy 4.16 option 2.
  • debian/missing-sources is actually part of the source package: it is present in kazv_0.7.0-3.debian.tar.xz and no debian/*.install file installs it into the binary.
  • src/js/transformed-libs/fluent-bundle.js, fluent-sequence.js and fluent-langneg.js are Babel output of the @fluent/bundle, @fluent/sequence and @fluent/langneg sources retained under debian/missing-sources/src/js/fluent/ (per src/js/transform.bash), so they are not unsourced build products either.
  • Other generated files have their generators in the tree: src/js/sas-emoji-defs.js from src/js/scripts/update-sas-emojis.mjs, and src/contents/ui/emoji/*.qml from tools/emoji.lisp; those generators fetch data over the network at run time but are not used by the build, and they are upstream tools, not instructions to the reviewer.
  • Binary assets icons/kazv.ico, icons/kazvlogo-256.png and src/android/res/drawable/kazv.png are images under the Files: * AGPL-3+ stanza; no separate licence notice for them was found in the tree.
  • Copyright holders: nannanko, xploreinfinity, April Simone, juangburgos, Unicode, Inc., Andy Earnshaw, Zibi Braniecki, Stas Malolepszy and the Mozilla Foundation all have a matching Files stanza; the prescan's author check reported no holder missing from debian/copyright, and I re-checked nannanko's files against the two stanzas that name that holder.
  • debian/copyright is DEP-5 with the current Format: URI; the Files: lists are applied last-match-wins, the debian/* stanza is correctly overridden by the later missing-sources/fluent stanzas, and the empty first line after Files: is the form the copyright-format specification itself uses in its examples.
  • No non-free terms: the only matches for non-commercial/NoDerivatives/field-of-use wording are inside the AGPL text in COPYING; no JSON Good, not Evil, CC-*-NC or -ND, or no-modification clause exists in the tree.
  • No compiled artifacts in the tree: no .so, .a, .jar, .class, .pyc, .dll, .exe, firmware or PDF; the only binary files are the three images named above.
  • Packaging files read in full: debian/control, rules, changelog, source/format, gbp.conf, qmldeps.overrides, upstream/metadata; there is no debian/patches directory, which is consistent with 3.0 (quilt).
  • Build-Depends names checked against the archive: dh-sequence-single-binary is provided by debhelper, dh-sequence-kf6 and dh-sequence-qmldeps by pkg-kde-tools, and libkazv-dev, qcoro-qt6-dev, kirigami-addons-dev, libkirigami-dev, libkf6kio-dev, liblager-dev, cmark and libqt6sql6-sqlite all exist.
  • At debhelper compat 14, dh_gencontrol adds relationship substvars itself, so the binary stanza's bare Depends: libqt6sql6-sqlite without ${shlibs:Depends}/${misc:Depends} is not a defect and is not reported.
  • Standards-Version: 4.7.4 matches the reviewing system's Policy 4.7.4.1 under the first-two-components rule; the changelog's version, distribution and bug closure are sane and Vcs-*/Homepage are filled in.
  • Coverage: I read all of debian/ except debian/watch (out of scope) and inventoried src/, tools/, packaging/ and icons/; the 300+ file missing-sources tree was covered through its LICENSE, package.json files and complete file listing rather than every file's contents. .pc/ was ignored throughout.
  • uscan found the packaged version as the newest upstream release (upstream 0.7.0, packaged 0.7.0).

Not confirmed

  • src/js/sas-emoji-defs.js is generated from matrix-org/matrix-spec's data-definitions/sas-emoji.json; I could not check that data's licence offline, so I cannot confirm that the Files: * AGPL-3+ claim is right for it.
  • I could not run a build or the JavaScript toolchain, so I did not verify that src/js/transformed-libs/*.js are reproducible from the sources kept in debian/missing-sources - only that the sources are present.
  • The CLDR data in debian/missing-sources/src/js/Intl.js/locale-data/ is described as a modified form of CLDR; whether the fork marks the modifications as the Unicode Terms of Use, clause (c), requires is not determinable from the tree alone.
  • Why the model asked for what a review has no use for. During this review it asked once for something outside the package and the reviewing system (another file of the sandbox, or a URL), or was given part of the review tooling's own configuration, and that was refused or withheld. A model does this when something it has read tells it to, so look in the package for text addressed to a reviewing program, and treat this report with suspicion. Refused: grep: "/var/lib/dpkg/info/base-files.list" is not a file of the package or of the reviewing system.

Proposed changes

None.

Review Information

accepted — allocated to awm 8 days ago, started 8 days ago, completed 8 days ago.

Final Comment

Still some gotchas with the missing files now needing a debian/copyright stanza, but I'll let you address these last ones after accepting into Debian.

Thanks!

Other Reviews of this Package

VersionHashAllocatedCompletedReviewerStatusDetails
0.7.0-2 5f3f7373… 2026-10-17 03:31 2026-10-17 03:31 awm accepted VIEW
0.7.0-1 f007d864… 2026-10-13 04:03 2026-10-13 04:14 awm rejected VIEW

Back to Dashboard | View all reviews for this package