Review: kazv 0.7.0-2
New Package Report
.changes
| Changed-By | Yifei Zhan <debian@zhan.science> |
|---|---|
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Fri, 16 Oct 2026 02:48:38 +0000 |
| Source | kazv |
| Version | 0.7.0-2 |
Changelog
kazv (0.7.0-2) unstable; urgency=medium . * Bump debhelper-compat to 14 * Switch to dh-sequence-qmldeps * Fix and sort d/copyright * Bump Standards-Version
.dsc
| Priority | optional |
|---|---|
| Component | main |
| Package-List | kazv deb net optional arch=any |
| Section | net |
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: src/js/transformed-libs/fluent-*.js Copyright: 2016 Zibi Braniecki <zbraniecki@mozilla.com> 2016 Staś Małolepszy <stas@mozilla.com> License: Apache-2.0 Comment: Source available from https://registry.npmjs.org/@fluent/ Files: src/js/transformed-libs/bundled-deps.js Copyright: 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 Transpiled from Intl.js/dist/Intl.complete.js 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, 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 9 days ago.
Report
DFSG NEW review for kazv version 0.7.0-2
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: No
- Issues: 1 blocker, 2 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 1 found
Licensing
Licensing and attribution are almost entirely in order: the tree is AGPL-3.0-or-later as debian/copyright says, with a handful of correctly identified permissive files (Expat for src/qfunctionutils.hpp and src/js/transformed-libs/bundled-deps.js, Apache-2.0 for the fluent-*.js, FSFAP for the AppStream file), all text present or referenced to /usr/share/common-licenses, and all holders seen in the file headers are named in the copyright file. The file is DEP-5 with the correct Format URL. It is not DFSG-clean as shipped, however: src/js/transformed-libs/ holds generated JavaScript whose preferred form is not in the package. bundled-deps.js is a 741 KB minified single-line bundle, and its input (src/js/Intl.js/, an empty git submodule) is absent, so neither the file nor its sources can be modified here; the fluent-*.js files are Babel output of the @fluent npm packages, whose sources are also absent although Debian ships node-fluent-bundle. No debian/missing-sources exists.
Packaging
The packaging is close to uploadable: 3.0 (quilt), debhelper-compat 14 with dh sequences, hardening=+all, Standards-Version 4.7.4.1 which is current, sane changelog, Vcs-* fields, a tidy single binary package, and every Build-Depends I checked resolves in the archive. Two things a sponsor would send back: the binary's Depends field omits ${shlibs:Depends} and ${misc:Depends} (and the substvar dh-sequence-qmldeps provides), so the package declares no dependency on the libraries it links nor on the QML modules it imports; and there is no autopkgtest while the build disables upstream's test suite entirely. Minor: an unused cmark build dependency.
Issues
1. [blocker] [licensing] src/js/transformed-libs/bundled-deps.js is a minified bundle whose source is not in the package
- Files:
src/js/transformed-libs/bundled-deps.js (whole file, one 741.6 KB line); src/js/transform.bash:6; src/js/Intl.js/ (empty directory); .gitmodules - Evidence: The file starts
!function(e,t){"object"==typeof exports&&...and consists of one minified line.src/js/transform.bashline 6:npx babel Intl.js/dist/Intl.complete.js > transformed-libs/bundled-deps.js.debian/copyright:Files: src/js/transformed-libs/bundled-deps.js/Copyright: 2013 Andy Earnshaw/License: Expat/Comment: Source available from https://r.lily-is.land/the-kazv-project/Intl.js-fork ... Transpiled from Intl.js/dist/Intl.complete.js..gitmoduleslistssrc/js/Intl.js, and that directory is empty in the tarball. - Problem: The source package ships only the generated, minified form of this code. Its generator input (the Intl.js fork) is not present anywhere in the tree -
src/js/Intl.jsis an unpopulated git submodule, sotransform.bashcannot be run - and there is nodebian/missing-sources. DFSG #2 and Policy 4.16 require the preferred form for modification to be distributed; a minified JS file isn't it. The file is also the only copyright holder entry not backed by a notice in the file itself, since the minified bundle carries none. - Fix: Repack the upstream tarball to include the Intl.js fork sources, or place them under
debian/missing-sources/following the convention in Policy 4.16 (e.g.debian/missing-sources/src/js/Intl.js/...); alternatively drop the pre-built bundle and generate it at build time from packaged sources. Add the fork's own copyright holders to the stanza once the fork's sources are available, and note the repack indebian/README.source.
2. [important] [licensing] fluent-.js are Babel output of @fluent/ whose sources are not in the package, and Debian already ships those libraries
- Files:
src/js/transformed-libs/fluent-bundle.js, src/js/transformed-libs/fluent-langneg.js, src/js/transformed-libs/fluent-sequence.js; src/js/transform.bash:3-5 - Evidence: Each file's first line is a version banner:
/* @fluent/bundle@0.16.1 */,/* @fluent/langneg@0.5.2 */,/* @fluent/sequence@0.6.0 */.transform.bashlines 3-5:npx babel node_modules/@fluent/bundle/index.js > transformed-libs/fluent-bundle.js(and the same for sequence and langneg).debian/copyright:Comment: Source available from https://registry.npmjs.org/@fluent/withLicense: Apache-2.0. Debian shipsnode-fluent-bundle0.19.1, which provides node-fluent-bundle, node-fluent-langneg and node-fluent-sequence. - Problem: Same Policy 4.16 problem as the minified bundle: these are transpiled files shipped without their sources -
node_modules/is not in the tarball and.gitignoreexcludes it - so the shipped form is not the preferred form for modification and the files cannot be regenerated from the source package. Additionally, Policy 4.13 discourages convenience copies of code Debian already packages, and these are copies of a library (Project Fluent) that Debian has innode-fluent-bundle. - Fix: Ship the corresponding npm sources (the 0.16.1/0.5.2/0.6.0 tarballs' sources) under
debian/missing-sources/, or repack, so the bundles can be regenerated at build time; where Debian'snode-fluent-*versions are usable, build against those instead of carrying convenience copies. Keep the version banners and the Apache-2.0 stanza.
3. [important] [packaging] kazv binary package Depends omits ${shlibs:Depends} and ${misc:Depends}
-
Files:
debian/control:39 (kazv stanza) -
Evidence:
Package: kazv Architecture: any Depends: libqt6sql6-sqlite Description: ... ``` - the only dependency is the SQLite driver plugin; the variable placeholders are absent. -
Problem: dh_shlibdeps computes the shared-library dependencies and dh_gencontrol substitutes them only into a
${shlibs:Depends}placeholder; with no such placeholder the whole computed list is dropped, so the package declares no dependency on the Qt 6, KF 6 or system libraries it links against (Policy 8.6.1).${misc:Depends}is likewise unused.dh-sequence-qmldepsis enabled (debian/control:6), but the QML runtime modules it adds also reach the binary only through a substvar the control file does not carry - the QML files importorg.kde.kirigami,org.kde.kirigamiaddons.formcard/.components,org.kde.coreaddonsand QtMultimedia, so those runtime modules are currently not pulled in either. -
Fix: Write the field as
Depends: libqt6sql6-sqlite, ${shlibs:Depends}, ${misc:Depends}plus the placeholder that the enabled qmldeps sequence provides (as generated packages using that sequence do), and re-check the resulting binary's Depends withdpkg-deb -f ... Depends.
4. [minor] [packaging] No autopkgtest, and the upstream test suite is disabled in the build
-
Files:
debian/rules:10-12; no debian/tests/ directory -
Evidence:
override_dh_auto_test: # Slow and flaky, disable for now. #xvfb-run dh_auto_test ``` and `-Dkazv_BUILD_TESTS=OFF` in `override_dh_auto_configure`; upstream has ~25 unit tests in `src/tests/CMakeLists.txt` and 40 Qt Quick tests. -
Problem: Nothing verifies the package in the archive: no autopkgtest, and the build compiles and runs no tests at all. For a new package the maintainer should give at least one smoke test, even if the full suite stays off.
-
Fix: Add a minimal
debian/tests/control(for example akazv --help/--versionsmoke test) and, if feasible, an autopkgtest that runs a subset of the upstream tests; or explain indebian/rules/README.source why the suite must remain disabled.
5. [minor] [packaging] Unused 'cmark' build dependency
- Files:
debian/control:9 - Evidence:
Build-Depends: ... cmake, cmark, extra-cmake-modules, ...; the only use of cmark isfind_package(cmark)/pkg_search_module(cmark libcmark ...)inCMakeLists.txt:79-87and#include <cmark.h>insrc/kazv-markdown.cpp, i.e. the library; nothing in the tree, includingdebian/rules, invokes acmarkexecutable. - Problem: The
cmarkbinary package is pulled into the build environment for nothing; the C library comes fromlibcmark-dev, which is already listed. - Fix: Drop
cmarkfrom Build-Depends (keeplibcmark-dev).
Verified
debian/copyrightis DEP-5 (Format URL is the current one) and its stanzas match what I found:Files: *AGPL-3+ for the bulk of the tree,debian/*for the packaging, and separate stanzas for the fluent bundles (Apache-2.0), bundled-deps.js (Expat), the AppStream file (FSFAP),src/l10n/hi/100-ui.ftl(xploreinfinity),src/qfunctionutils.hpp(Expat) and the nannanko/April Simone files.- Every copyright holder named in a file header is represented:
tusooa <tusooa@kazv.moe>/Tusooa Zhu,nannanko <nannanko@kazv.moe>(27 named files plus the grouped stanza),April Simone <apr3vau@outlook.com>(src/tests/quick-tests/tst_ReactToEventPopup.qml,tools/emoji.lisp),xploreinfinity(src/l10n/hi/100-ui.ftl) andjuangburgos(src/qfunctionutils.hpp); the prescan's author check agrees. src/qfunctionutils.hppcarriesSPDX-License-Identifier: MITfor juangburgos; debian/copyright gives itLicense: Expatwith the full Expat text - same licence, correctly reproduced (the only MIT-less-than-full-text case, and it is present).moe.kazv.mxc.kazv.appdata.xmldeclares<metadata_license>FSFAP</metadata_license>/<project_license>AGPL-3.0-or-later</project_license>, matching its FSFAP stanza and the tree's AGPL; the FSFAP text is reproduced in full.src/js/transformed-libs/bundled-deps.jsis the minified/generated file the prescan flagged; it is reported above as an issue, not waved through.- Generated files whose generators and inputs are present and readable were checked and are fine:
src/contents/ui/emoji/*.qmlare emitted bytools/emoji.lisp(present, AGPL-3.0-or-later, header says so), andsrc/js/sas-emoji-defs.jsis emitted bysrc/js/scripts/update-sas-emojis.mjs(present) as plain readable JS holding the emoji list. - Binary files recorded, not opened:
icons/kazv.ico,icons/kazvlogo-256.png,src/android/res/drawable/kazv.png. They fall underFiles: *(AGPL-3+) and I found no notice or other terms for them; no provenance problem is visible in the package. COPYINGis the AGPL-3 text (the tree's declared licence) andREADME.mdstates AGPL; no other LICENSE/COPYING/NOTICE file exists anywhere in the tree, per a full glob.src/l10n/zh-Hansis a zero-byte, unused file in the tarball;src/l10n/translations.qrcmapszh-Hans/*tocmn-Hans/*by alias, so it is not referenced and has no licensing significance.- Build dependencies spot-checked against the archive:
libkazv-dev1.0.0-1,kirigami-addons-dev1.14.2-2,libqt6sql6-sqlite6.11.2+dfsg-5 anddh-sequence-single-binary(provided by debhelper 14.5) all exist;dh-sequence-kf6anddh-sequence-qmldepscome from packages already in Build-Depends. Standards-Version: 4.7.4.1equals the reviewing system's Policy version 4.7.4.1, so it is current;hardening=+allis set in debian/rules and the package builds with dh.debian/changelog: version 0.7.0-2,unstable, maintainer consistent withdebian/control, initial release closes an ITP bug number;gbp.conf,debian/source/format(3.0 quilt),debian/upstream/metadataanddebian/qmldeps.overridesare all well-formed; there are no patches, no maintainer scripts and nodebian/missing-sources.- uscan found the packaged version as the newest upstream release (upstream
0.7.0, packaged0.7.0).
Not confirmed
- The Intl.js fork (
https://r.lily-is.land/the-kazv-project/Intl.js-fork) and the @fluent npm sources are outside what I may read, so I could not check whether the2013 Andy Earnshaw/2016 Zibi Braniecki, Stas Malolepszyattributions in debian/copyright are complete for those files, nor whether the fork carries additional holders. - I could not read
dh_qmldeps(no manual page and no installed copy on the reviewing system), so the exact substvar the enabled qmldeps sequence expects is stated from the packaging convention rather than from the tool's own documentation; a build would show it. - No build or test was run and I did not check that the QtMultiMedia/QtQuick libraries are pulled in by the remaining dependencies.
Proposed changes
None.
Review Information
accepted — allocated to awm 8 days ago, started 8 days ago, completed 8 days ago.
Final Comment
Superseded by review of later version