hackermail 1.6.8-1
Package Information
| Description | mails management tool for hackers collaborating via mailing lists HacKerMaiL (hkml) is a mails management tool for hackers who collaborate using mailing lists. It requires no complicated setup but just git. Using it, you can fetch mailing list archives, read mails in those, and post replies or new mails. It supports public-inbox managed mailing list archives, such as the Linux kernel mailing lists hosted on lore.kernel.org, as well as manually exported mbox files. It also provides helpers for applying patches from mails, tagging, monitoring and formatting patch series. |
|---|---|
| Maintainer | Han Gao <rabenda.cn@gmail.com> |
| Changed By | Han Gao <rabenda.cn@gmail.com> |
| Sponsor | vimer@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/Revy/hackermail.git (browse) |
| Closes | #1152330 |
| Tracker | https://tracker.debian.org/pkg/hackermail |
| Uploaded | 4 hours ago |
New Package Report
.changes
| Source | hackermail |
|---|---|
| Version | 1.6.8-1 |
| Changed-By | Han Gao <rabenda.cn@gmail.com> |
| Architecture | source all |
| Distribution | unstable |
| Date | Wed, 28 Oct 2026 13:51:52 +0800 |
Changelog
hackermail (1.6.8-1) unstable; urgency=medium . * Initial release. (Closes: #1152330)
.dsc
| Priority | optional |
|---|---|
| Component | main |
| Package-List | hackermail deb mail optional arch=all |
| Section |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: hackermail
Upstream-Contact: SeongJae Park <sj@kernel.org>
Source: https://github.com/sjp38/hackermail
Files: *
Copyright: 2019-2026 SeongJae Park <sj@kernel.org>
2019-2026 hackermail contributors
License: GPL-2
Files: debian/*
Copyright: 2026 Han Gao <rabenda.cn@gmail.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 version 2 as
published by the Free Software Foundation.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General Public License
version 2 can be found in "/usr/share/common-licenses/GPL-2".
DFSG Assistant LLM REVIEW 0 blocker, 1 important, 1 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 2 hours ago.
Report
DFSG NEW review for hackermail version 1.6.8-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 1 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 1 found
Licensing
All upstream code carries SPDX GPL-2.0 headers, LICENSE is the verbatim GPL-2 text, and pyproject.toml declares GPL-2.0-only, matching the License: GPL-2 in debian/copyright (version 2 only, no "or later"). The DEP-5 copyright file names SeongJae Park, the hackermail contributors and Han Gao for debian/*, and the scan found no holder it does not name. No non-free or extra licence terms exist anywhere in the tree; the generated manifests/lore.js and the demo GIF are covered and their provenance is documented.
Packaging
The package is otherwise clean and conventional: one arch:all binary, compat 13, dh sequences for python3 and bash completion, quilt format with no patches, an installed man page, bash completion, /usr/bin/hkml symlink, upstream changelog installed, and autopkgtests exercising the unit tests and the version output. However it misses a runtime dependency: hkml init (the documented first-run step, also triggered from any command when .hkm is absent) calls wget, which nothing in Depends provides. It also fails to declare upstream's requests dependency, leaving the documented sashiko.dev feature non-functional.
Issues
1. [important] [packaging] Depends lacks wget, which hkml init requires and every first run triggers
- Files:
debian/control,src/hkml_manifest.py:49-61,src/hkml_init.py:48,src/hkml_list.py:1122,src/_hkml.py:435-445 - Basis: checked, in the package or with a reference tool
- Evidence: debian/control:
Depends: ${misc:Depends}, ${python3:Depends}, curl, git; hkml_manifest.py:if not _hkml_subproc.cmd_available('wget'): return 'wget is unavailable'andsubprocess.call(['wget', 'https://lore.kernel.org/manifest.js.gz']); hkml_init.py:err = hkml_manifest.fetch_lore(); hkml_list.py:1122 also callswgetforhkml thread <msgid>. - Problem: Policy 7.2: Depends should be used for packages required for a significant amount of functionality.
hkml initis the documented first step and is also invoked by_hkml.set_hkml_dir()when any command runs without a.hkmdirectory; without wget it aborts with 'Fetching lore manifest failed (wget is unavailable)'.curlis depended on but does not install wget, and wget is only Priority: standard (not Essential), so a minimal installation can reach this state. The same call powers fetching a thread from the web. - Fix: Add
wgetto the binary package's Depends (or change the calls in hkml_manifest.py and hkml_list.py to use curl, which is already a dependency).
2. [minor] [packaging] Upstream's python3-requests dependency is not declared, so the documented sashiko.dev feature is dead
- Files:
debian/control,pyproject.toml,src/_hkml_sashiko_dev.py:9-13,USAGE.md:894 - Basis: checked, in the package or with a reference tool
- Evidence: pyproject.toml:
dependencies = ["requests"];_hkml_sashiko_dev.py:try: import requests ... except: pass, thenreturn None, 'requests python module import fail'; USAGE.md documentshkml patch sashiko_dev. - Problem: The sashiko.dev review and forwarding commands are documented and exposed in the interactive menu, but the package ships no dependency (not even Suggests) on python3-requests, so they always fail at runtime with 'requests python module import fail' on a normal installation. dh_python3 does not translate
project.dependenciesfrom pyproject.toml, so nothing pulls it in automatically. - Fix: Add
python3-requeststo Suggests (or Recommends, if the feature is considered strongly expected) in debian/control.
Verified
- Read every file under debian/ in full, apart from debian/watch (out of scope) and the binary PGP key. No debian/patches directory; source format 3.0 (quilt).
- All 39 upstream Python files under src/ and scripts/ carry
# SPDX-License-Identifier: GPL-2.0; LICENSE is the full GPL-2 text of June 1991 with no 'or later' clause, and pyproject.toml declareslicense = "GPL-2.0-only", so the copyright file'sLicense: GPL-2is correct. - debian/copyright is DEP-5:
Files: *(SeongJae Park, hackermail contributors, GPL-2) followed byFiles: debian/*(Han Gao, GPL-2), with a stand-aloneLicense: GPL-2paragraph pointing at /usr/share/common-licenses/GPL-2. The prescan's holder check found every holder named. - Grep of the whole upstream tree for GPL-3, LGPL, MIT, BSD, Apache, MPL, public domain, CC-BY, non-commercial and all-rights-reserved wording found no hits: no other licence, no non-free terms.
- manifests/lore.js is the scan's 'minified code' hit: a single-line JSON manifest of public-inbox mailing lists, generated from https://lore.kernel.org/manifest.js.gz by scripts/update_lore_manifest.sh (and documented in debian/source/lintian-overrides). It contains no code or licence text, its source is regenerable with the shipped script, and it is not installed in the binary package.
- images/hkml_interactive_list_demo.gif is a 3.2 MB demo animation referenced from README.md, upstream-authored and covered by the
Files: *stanza; not opened (binary). - Test fixtures in tests/test_hkml_view_text.py and tests/test_hkml_view_mails.py quote Linux kernel code and MAINTAINERS data, which are GPL-2 and compatible.
- src/hkml_version.py reads pyproject.toml; pyproject.toml is installed to /usr/share/hackermail/, so
hkml versionprints 1.6.8 and the debian/tests/control Test-Command comparing it with${source:Upstream-Version}is consistent with the package contents. - Read /usr/bin/dh_python3 and /usr/share/dh-python/dhpython/depends.py: dh_python3 scans the private dir /usr/share/hackermail, byte-compiles its files in postinst and adds python3:any to ${python3:Depends} from the
#!/usr/bin/env python3shebang, so the missing explicit python3 dependency is not a fault. - dh_compress compresses files in usr/share/doc larger than 4 KB, so the man page's reference to /usr/share/doc/hackermail/USAGE.md.gz matches the installed documentation; README.md (2.7 KB) stays uncompressed and is not referenced as .gz.
- dh_bash-completion's list format (
source name) matches debian/hackermail.bash-completion, installing scripts/hkml-completion.sh as completions/hkml; both dh-sequence Build-Depends exist (provided by bash-completion and dh-python). - debian/tests/unittests runs with cwd at the source root per the autopkgtest specification, so its
cp -a testsworks; it links the installed /usr/share/hackermail/src and the tests import from ../src. The version test uses Test-Command correctly. - Packaging checks: Standards-Version 4.7.4 against Policy 4.7.4.1 is current; changelog version 1.6.8-1, distribution unstable, closes the ITP; the upstream release_note is installed as the upstream changelog; the installed man page (debian/hkml.1), symlink /usr/bin/hkml -> /usr/share/hackermail/src/hkml.py, and debian/clean (src/pycache/) are consistent with how dh_install and dh_python3 work.
- uscan found the packaged version as the newest upstream release (upstream
1.6.8, packaged1.6.8). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (GPL-2).
Not confirmed
- File permission bits could not be inspected with the available tools; executing /usr/bin/hkml (a symlink to /usr/share/hackermail/src/hkml.py) requires that source file to be executable. Upstream's own README runs
./hkmlas a symlink to the same file, so it is most likely 0755 in the tarball.
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 2 hours ago.