Review: zoitechat-otr 0.2.2~git20260225-1
Package Information
| Description | ZoiteChat plugin to support Off The Record (OTR) A plugin for the IRC client ZoiteChat to support Off The Record (OTR) conversations. OTR allows you to have private conversations over IM by providing: - Encryption - No one else can read your instant messages. - Authentication - You are assured the correspondent is who you think it is. - Deniability - The messages you send do _not_ have digital signatures that are checkable by a third party. Anyone can forge messages after a conversation to make them look like they came from you. However, _during_ a conversation, your correspondent is assured the messages they see are authentic and unmodified. - Perfect forward secrecy - If you lose control of your private keys, no previous conversation is compromised. |
|---|---|
| Maintainer | Debian Commons <zoitechat-otr@packages.debian.org> |
| Changed By | Bastian Germann <bage@debian.org> |
| Sponsor | bage@debian.org |
| Distribution | unstable |
| Architecture | any |
| Closes | #1137179 |
| Tracker | https://tracker.debian.org/pkg/zoitechat-otr |
| Uploaded | 9 days ago |
New Package Report
.changes
| Changed-By | Bastian Germann <bage@debian.org> |
|---|---|
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Mon, 12 Oct 2026 17:53:16 +0200 |
| Source | zoitechat-otr |
| Version | 0.2.2~git20260225-1 |
Changelog
zoitechat-otr (0.2.2~git20260225-1) unstable; urgency=medium . * Initial release (Closes: #1137179)
.dsc
| Package-List | zoitechat-otr deb net optional arch=any |
|---|---|
| Section | net |
| Priority | optional |
| Component | main |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ZoiteChat OTR
Source: https://github.com/ZoiteChat/zoitechat-otr
Files: *
Copyright: 2014 <adhux@lelantos.org>
2014-2016 Patrick Griffis <tingping@tingping.se>
License: GPL-2+
Files: data/io.github.zoitechat.Plugin.OTR.metainfo.xml
Copyright: deepend_AT_zoite.net
License: CC0-1.0
On Debian systems, the complete text of CC0 1.0 Universal
can be found in '/usr/share/common-licenses/CC0-1.0'.
Files: src/otr.h
src/otr_key.c
src/otr_ops.c
src/otr_util.c
Copyright: 2008 Uli Meis <a.sporto+bee@gmail.com>
License: GPL-2+
Files: debian/*
Copyright: 2016 Petter Reinholdtsen <pere@hungry.com>
License: GPL-2+
License: GPL-2+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991, or (at your
option) any later version.
.
On Debian systems, the complete text of version 2 of the GNU General
Public License can be found in '/usr/share/common-licenses/GPL-2'.
DFSG Assistant LLM REVIEW 1 blocker, 1 important, 4 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 3 days ago.
Report
DFSG NEW review for zoitechat-otr version 0.2.2~git20260225-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: Yes
- Issues: 1 blocker, 1 important, 4 minor
- debian/watch: absent
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The code itself is DFSG-free: all C sources and headers are GPL-2+, the metadata file is CC0-1.0 (a licence file is in /usr/share/common-licenses), there is no non-free wording, no vendored third-party code and no built binary. debian/copyright is however inaccurate: it omits Uli Meis as a copyright holder for src/makeformats.py (which carries his name and a GPL-2+ notice), and src/zoitechat_otr.c/.h carry the GPL boilerplate with the copyright line absent while the copyright file attributes them to other people.
Packaging
Packaging is simple and correct in the main: 3.0 (quilt), compat 14, meson build, hardening enabled, Rules-Requires-Root, single arch-dependent binary, shlibs dependencies added by debhelper itself. Issues found are minor: an outdated Standards-Version and a Build-Depends list that neither names the libraries/interpreters the build uses directly nor drops the one it does not need.
Issues
1. [blocker] [licensing] Copyright holder Uli Meis missing for src/makeformats.py
- Files:
debian/copyright:5-8,debian/copyright:16-21,src/makeformats.py:1-20 - Basis: checked, in the package or with a reference tool
- Evidence:
src/makeformats.pybegins with# Uli Meis <a.sporto+bee@gmail.com>followed by the GPL-2+ boilerplate, but the only Uli Meis stanza coverssrc/otr.h,src/otr_key.c,src/otr_ops.c,src/otr_util.c; makeformats.py therefore falls underFiles: *(Copyright: 2014 <adhux@lelantos.org> 2014-2016 Patrick Griffis), which does not name him. - Problem: debian/copyright does not record the copyright holder of a file whose own header states it, so the copyright information is inaccurate and incomplete (a required part of DFSG review). Later Files stanzas override earlier ones, so the wrong stanza is what applies.
- Fix: Add
src/makeformats.pyto the Uli Meis, GPL-2+ stanza, and checksrc/formats.txt(the input it generates from, which appears to be the irssi-otr work) for the same attribution.
2. [important] [licensing] src/zoitechat_otr.c and .h have no copyright holder line, and the copyright file's attribution is unsupported
- Files:
src/zoitechat_otr.c:1-15,src/zoitechat_otr.h:1-15,debian/copyright:5-8 - Basis: inferred from what was read, not seen directly
- Evidence: Both files open with the same GPL-2+ boilerplate as the four Uli Meis files, but with the
Copyright (C) 2008 Uli Meisline removed;Readme.md:6says the code isOriginally forked from irssi-otr.debian/copyrightattributes them to adhux (2014) and Patrick Griffis (2014-2016) underFiles: *. - Problem: A derived file should retain its upstream copyright notice (GPL-2 section 1 requires keeping notices intact). Nothing in the tree supports the adhux/Griffis attribution for these two files, while the identical boilerplate and the fork statement point to irssi-otr's author. As written the copyright file is likely wrong for them.
- Fix: Ask upstream and/or check the git history, then name the actual author(s) (probably Uli Meis, plus later contributors) for these files in debian/copyright.
3. [minor] [licensing] debian/* stanza names only the 2016 maintainer, not the author of the 2026 packaging
- Files:
debian/copyright:23-25,debian/changelog:1-5,debian/control:6-7 - Basis: inferred from what was read, not seen directly
- Evidence:
Files: debian/*/Copyright: 2016 Petter Reinholdtsen <pere@hungry.com>, while the changelog records a 2026 initial release by Bastian Germann and the control/rules were written for it. - Problem: The packaging files are not all Petter Reinholdtsen's 2016 work (the copyright file itself appears to be carried over from the irssi-otr packaging), so the debian/* stanza is incomplete.
- Fix: Add Bastian Germann (and any other authors of the current debian/ files) to the debian/* stanza, keeping Petter Reinholdtsen for the inherited parts.
4. [minor] [packaging] Standards-Version 4.6.0 is older than current Policy
- Files:
debian/control:8 - Basis: checked, in the package or with a reference tool
- Evidence:
Standards-Version: 4.6.0; the reviewing system's Policy is 4.7.4.1. - Problem: The first two components are older than the current Policy's, which is a (minor) packaging-currency issue.
- Fix: Bump to 4.7.4 (or 4.7.4.1) after checking the upgrading checklist (Policy A10).
5. [minor] [packaging] Build-Depends does not match what the build uses
- Files:
debian/control:9-16,meson.build:47-49,src/makeformats.py:1,debian/rules:8-9 - Basis: checked, in the package or with a reference tool
- Evidence: meson calls
dependency('libgcrypt', required: true)and compiles against<gcrypt.h>, butlibgcrypt20-devis not in Build-Depends;src/makeformats.pyis run by acustom_targetwith#!/usr/bin/env python3, butpython3is not in Build-Depends;zoitechatis depended on though the only use of thezoitechatbinary is inside theif get_option('local_install')branch, and debian/rules passes-Dlocal_install=false. - Problem: The build works today only because
libotr5-devDepends onlibgcrypt20-devandmesonDepends onpython3(checked with apt-cache), i.e. through transitive dependencies that Policy does not guarantee; and one build-dependency is unnecessary weight. - Fix: Add
libgcrypt20-devandpython3to Build-Depends and dropzoitechat(keep it only if it is wanted deliberately).
6. [minor] [packaging] There is no debian/watch
- Files:
debian/watch - Basis: found by the review tooling's own checks
- Problem: Without a watch file new upstream releases are not noticed by uscan, the tracker or the maintainer's tools.
- Fix: Add a
debian/watchin version 5 format, or, if upstream has no usable release channel, one holding a comment that says so.
Verified
- Full tree read: 18 upstream files (.clang-format, .editorconfig, .gitignore, LICENSE, Readme.md, meson.build, meson_options.txt, data/ 2 files, src/ 9 files) and 5 debian/ files; .pc/ ignored throughout.
- No compiled objects, libraries, archives, minified code, PDFs, fonts, images or vendored third-party code are present. The only generated files are zoitechat-formats.c and otr-formats.h, produced at build time by src/meson.build from src/formats.txt via src/makeformats.py, which are both in the source.
- LICENSE is the verbatim GPL-2 text; every C source/header carries GPL-2+ ('either version 2 ... or any later version'); the metainfo file is CC0-1.0 and /usr/share/common-licenses/CC0-1.0 exists, so debian/copyright's pointer is valid. No non-free terms, no 'All rights reserved', no field-of-use or no-modification clauses.
- Prescan author check: all 17 scanned files' holders matched debian/copyright. The only in-file holders are Uli Meis (src/otr.h, otr_key.c, otr_ops.c, otr_util.c) and the metainfo contact deepend_AT_zoite.net; both are named, though Uli Meis is missing from the stanza that in fact covers src/makeformats.py (reported above).
- debian/copyright is DEP-5 (correct Format URL), so no replacement was proposed; stanzas are ordered correctly and later stanzas override Files: * as intended.
- Compat 14: dh_gencontrol adds ${misc:Depends}/${shlibs:Depends} itself, so their absence from debian/control is not a fault.
- debian/rules sets hardening=+all, uses dh with --buildsystem=meson, and overrides dh_auto_configure harmlessly (local_install defaults to false). No patches, no maintainer scripts, no .install/.links/.docs files are needed.
- Build-Depends names exist in the archive: libotr5-dev 4.1.1-7, zoitechat 2.19.1-1, zoitechat-dev 2.19.1-1, meson 1.12.1-2 (apt-cache); pkgconf provides the pkg-config program the build looks up.
- Changelog version 0.2.2~git20260225-1, distribution unstable, initial release closing #1137179; debian/source/format is 3.0 (quilt); section net, priority optional, Multi-Arch: same, Rules-Requires-Root: no.
- Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (CC0-1.0,GPL-2).
Not confirmed
- Whether src/makeformats.py is executable in the source archive: meson's find_program is used on it, and grep/read do not expose file modes. A meson configure would show it immediately.
- The provenance of the 2014 adhux / 2014-2016 Patrick Griffis attribution for src/zoitechat_otr.c and .h: the tarball has no VCS history, so the file headers alone cannot confirm or refute it.
- Whether zoitechat-plugin.pc defines the zoitechatlibdir variable and whether that install path is architecture-specific, which matters for the correctness of Multi-Arch: same; zoitechat-dev is not installed on this system.
Proposed changes
None.
Uploader's response to the LLM review
The uploader rejected this upload in response to the review.
Review Information
rejected — allocated to dfsg-uploader 1 day ago, started 1 day ago, completed 1 day ago.
Final Comment
The uploader rejected this upload in response to the automated (LLM) review of it, so that they can fix the problems it found and upload again.