gtty 0.2.5-1
Package Information
| Description | RTTY (Radio Teletype) desktop application for Amateur Radio gtty is an amateur radio RTTY terminal for the Linux and macOS desktop. It decodes Baudot RTTY from a sound card with several demodulators running in parallel, shows the band on a waterfall and an XY tuning scope, transmits by AFSK audio or true FSK keying, controls the transceiver through Hamlib, keeps a logbook, and talks to GridTracker and to loggers that know how to drive fldigi. |
|---|---|
| Maintainer | Debian Hamradio Maintainers <debian-hams@lists.debian.org> |
| Changed By | Christoph Berg <myon@debian.org> |
| Sponsor | myon@debian.org |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/debian-hamradio-team/gtty.git (browse) |
| Tracker | https://tracker.debian.org/pkg/gtty |
| Uploaded | 1 hour ago |
New Package Report
.changes
| Date | Sat, 14 Nov 2026 22:57:41 +0100 |
|---|---|
| Source | gtty |
| Version | 0.2.5-1 |
| Changed-By | Christoph Berg <myon@debian.org> |
| Architecture | source amd64 |
| Distribution | unstable |
Changelog
gtty (0.2.5-1) unstable; urgency=medium . * Initial release.
.dsc
| Priority | optional |
|---|---|
| Component | main |
| Package-List | gtty deb hamradio optional arch=any |
| Section | hamradio |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: gtty Source: https://github.com/gjyoung1974/gtty Files: * Copyright: 2026 gtty contributors Gordon Young <gjyoung1974@gmail.com> License: GPL-3+ Files: debian/* Copyright: (C) Christoph Berg License: GPL-3+ License: GPL-3+ 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, either version 3 of the License, or (at your option) any later version. . 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. . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
DFSG Assistant LLM REVIEW 0 blocker, 1 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 gtty version 0.2.5-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 1 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
debian/copyright is DEP-5 (copyright-format 1.0) with a Files: * stanza giving GPL-3+ to the whole tree and a debian/* stanza for Christoph Berg's packaging; the short name matches the project's own statements (LICENSE is verbatim GPL-3, README.md and docs/development.md say GPL-3.0-or-later, metainfo project_license is GPL-3.0-or-later), and the GPL-3 text is left to /usr/share/common-licenses/GPL-3 as copyright-format allows. No file carries its own notice or a different licence, there is no non-free wording, no built or minified file whose source is missing, and no third-party code copied in: the only file that looks like a vendored library, src/core/modem/codec2_compat/kiss_fft.h, is gtty's own two-typedef stand-in for a header libcodec2 omits. The prescan's author check found every holder named.
Packaging
The packaging is modern and close to uploadable: debhelper compat 14 with a bare dh $@, cmake buildsystem, ctest run at build time, desktop file, icon and AppStream metainfo installed, hardening and gzip -9n for reproducibility, no patches, current Standards-Version. The defect that matters is the build configuration: libcurl4-openssl-dev and libcodec2-dev are missing from Build-Depends although CMake probes both and both features are documented, so the Debian binary ships without callbook lookup (the preferences page then reads "This build has no libcurl; lookups are disabled") and without the codec2 decoder engine. Also missing an autopkgtest, and the binary reports version 0.1.0.
Issues
important packaging 1. Build-Depends omits libcurl4-openssl-dev and libcodec2-dev, so the shipped binary has no callbook lookup and no codec2 decoder ◂
- Files:
debian/control:7-17,CMakeLists.txt:29-30,src/gui/prefs_dialog.cpp:431-432,src/core/CMakeLists.txt:38-49 - Basis: checked, in the package or with a reference tool
- Evidence:
pkg_check_modules(CURL IMPORTED_TARGET libcurl) # optional: callbook lookups (QRZ, HamQTH)andpkg_check_modules(CODEC2 IMPORTED_TARGET codec2) # optional: libcodec2 FSK comparison decoder(neither REQUIRED, so neither is a build failure), withif (!Callbook::available()) adw_action_row_set_subtitle(..., "This build has no libcurl; lookups are disabled"); - Problem: Neither library is in Build-Depends and no listed build dependency drags either in (
apt-cache show libhamlib-dev: Depends: libc6-dev, libhamlib4t64, libhamlib++4t64, libusb-1.0-0-dev), so GTTY_HAVE_CURL and GTTY_HAVE_CODEC2 are never defined and the package is built without two features its own documentation promises: docs/installation.md:107-108 lists libcurl4-openssl-dev for "Callbook lookups (QRZ.com XML, HamQTH)" and libcodec2-dev for "The libcodec2 FSK comparison decoder", and README.md:69-71 advertises callbook lookup unconditionally. Users of the Debian binary get a Callbook preferences page that says lookups are disabled and a decoder bank with one engine fewer, for want of two lines. Both libraries are in the archive (libcurl4-openssl-dev8.23.0-1,libcodec2-dev1.2.0-5). - Fix: Add
libcurl4-openssl-devandlibcodec2-devto Build-Depends so that the binary carries the callbook client and the codec2 comparison decoder the code, GUI and docs provide for. The codec2 build path needs thesrc/core/modem/codec2_compat/shim already in the tree, since Debian's libcodec2 does not ship kiss_fft.h.
minor packaging 2. No debian/tests: the package's own ctest suite is never run after the build ◂
- Files:
tests/CMakeLists.txt:1-20 - Basis: checked, in the package or with a reference tool
- Evidence:
debian/has notests/directory, while tests/CMakeLists.txt registers 21 ctest tests (add_test(NAME ${t} COMMAND ${t})) thatdh_auto_testruns once during the build;debian/gitlab-ci.ymlonly pulls in the salsa-ci pipeline, which runs autopkgtests only if they exist - Problem: The tests run only inside the build that produces the upload, so nothing re-tests the package when a library it uses changes (ci.debian.net, migration, reverse-dependency checks). For a new package shipping a test suite that already builds and passes, having no autopkgtest is a gap a sponsor would flag.
- Fix: Add
debian/tests/controlwith aTests: cteststanza (Depends: @,Restrictions: allow-stderrif needed) runningctest --test-dir <builddir>; the GUI-dependent integration tests skip themselves without a display and report SKIP_RETURN_CODE 77.
minor packaging 3. The binary identifies itself as gtty 0.1.0 in a 0.2.5 package (About dialog, fldigi.version, WSJT-X heartbeat, both man pages) ◂
- Files:
CMakeLists.txt:2,src/gui/CMakeLists.txt:10,src/gui/main_window.cpp:1493,packaging/gtty.1:1,packaging/gtty-cli.1:1 - Basis: checked, in the package or with a reference tool
- Evidence:
project(gtty VERSION 0.1.0 LANGUAGES C CXX)andtarget_compile_definitions(gtty PRIVATE GTTY_VERSION="${PROJECT_VERSION}");.TH GTTY 1 "November 2026" "gtty 0.1.0" "User Commands"; GTTY_VERSION is used foradw_show_about_dialog(..., "version", GTTY_VERSION, ...), for thefldigi.versionXML-RPC reply and inwsjtx::encodeHeartbeat - Problem: Upstream did not bump the cmake project version (nor packaging/changelog, nor data/io.github.gtty.metainfo.xml
<release version="0.1.0">) for the 0.2.5 tarball, so the shipped program, its man pages and the version it reports to loggers such as TLF, Not1MM and CQRLOG all say 0.1.0. Users reporting bugs will quote the wrong version, and an AppStream consumer sees a release record that predates the package. - Fix: Set the version from the package rather than trusting the source, e.g. an
override_dh_auto_configurepassing the version in, or a small patch bumpingproject(gtty VERSION 0.2.5)and the two man pages, and forward the omission upstream.
Verified ◂
- debian/copyright read in full: DEP-5 header (
Format: .../copyright-format/1.0/, Upstream-Name, Source), oneFiles: *stanza (Copyright 2026 gtty contributors, Gordon Young; License GPL-3+), oneFiles: debian/*stanza (Christoph Berg, GPL-3+), one stand-alone GPL-3+ paragraph ending in a pointer to /usr/share/common-licenses/GPL-3; no Files-Excluded, no invalid fields. - Whole tree inventoried (152 upstream files plus debian/): no source, test, tool, doc or data file carries a per-file copyright line or SPDX/licence notice, so
Files: *leaves none unmatched and nothing is mismatched to a stanza; the only licence statements are LICENSE (verbatim GPL-3 text), README.md:306GPL-3.0-or-later, docs/development.md:91gtty is free software under the GNU General Public License, version 3 or later, docs/_config.yml:23, packaging/copyrightGPL-3.0+and data/io.github.gtty.metainfo.xml<project_license>GPL-3.0-or-later</project_license>— theGPL-3+short name in debian/copyright is correct and the GPL-3+ grant is documented by upstream, not merely assumed. - src/core/modem/codec2_compat/kiss_fft.h and kiss_fftr.h are not a copy of Mark Borgerding's KISS FFT: the file's own comment calls it a
Minimal stand-in for kiss_fft.h, which libcodec2's fsk.h includes ... but which the Debian and Homebrew packages do not ship, containing onlystruct kiss_fft_state; typedef struct kiss_fft_state* kiss_fft_cfg;— gtty's own code, covered byFiles: *GPL-3+. - No non-free terms anywhere: the only match for "noncommercially" in the tree is GPL-3 §6c inside LICENSE itself; no CC-*-NC/ND, no "personal use", "evaluation only", field-of-use or no-modification wording.
- No built artefacts, minified code, bytecode, archives or PDFs: the only binary file is docs/screenshot.png, a screenshot of the running program used in README.md and the wiki; data/io.github.gtty.svg and docs/gtty-logo.svg are plain-text SVG sources; tests/check.h is a 20-line local CHECK/CHECK_EQ macro header, not a vendored test framework.
- The prescan (dfsg-author-check) reported no file and no un-named holder for this package: every holder it found (gtty contributors, Gordon Young gjyoung1974@gmail.com, Christoph Berg) is named in debian/copyright, so there are no prescan entries to account for individually.
- There are no patches — debian/patches does not exist and .pc/applied-patches is empty — so the reviewed tree is upstream's own, and nothing in debian/copyright needs to describe a patched-in file.
- Licences combined in one binary are compatible: GPL-3+ throughout, linked against GTK4 (LGPL-2.1+), libadwaita (LGPL-2.1+), Hamlib (LGPL-2.1+/GPL), PortAudio (MIT), FFTW (GPL-2+), libsamplerate (BSD-2), libsndfile (LGPL-2.1+), SQLite (public domain) and, once enabled, libcurl (curl licence) and codec2 (LGPL-2.1) — all free and all linked as shared libraries.
- Packaging read in full: debian/control, rules, changelog, source/format (3.0 quilt), gitlab-ci.yml, copyright; there are no install/links/docs/dirs files, maintainer scripts, maintscripts or debian/tests, and debian/rules is a bare
%: dh $@. - debhelper compat 14: the absent
Depends:field in debian/control is correct, since dh_gencontrol writes every relationship substvar itself at that level;dh $@with the cmake buildsystem runsctestfor dh_auto_test (checked in /usr/share/perl5/Debian/Debhelper/Buildsystem/cmake.pm,sub test), so the 21 unit tests do run during the build and no override_dh_auto_test is needed. - Every pkg-config module the build requires is provided by a declared Build-Depends: hamlib (libhamlib-dev), portaudio-2.0 (portaudio19-dev), fftw3f (libfftw3-dev), samplerate (libsamplerate0-dev), sndfile (libsndfile1-dev), sqlite3 (libsqlite3-dev), gtk4>=4.12 (libgtk-4-dev), libadwaita-1>=1.4 (libadwaita-1-dev), glib-2.0 for test_profiles (comes with libgtk-4-dev); cmake and pkgconf are declared, the CMake minimum is 3.20.
- Standards-Version 4.7.4 against Policy 4.7.4.1 is current (first two components); the changelog entry is
unstable, version 0.2.5-1 matches the tarball, and the datestamp's weekday is right. - Desktop integration is complete: src/gui/CMakeLists.txt installs the binary to bin, data/io.github.gtty.desktop to share/applications, data/io.github.gtty.svg to share/icons/hicolor/scalable/apps and the metainfo to share/metainfo; the desktop file's Exec=gtty and Icon=io.github.gtty match, and the metainfo's launchable refers to it.
- Man pages and the upstream changelog are generated with
gzip -9n -c(reproducible) and installed to share/man/man1 and share/doc/gtty; the build sets CMAKE_INSTALL_PREFIX=/usr and Debian's flags through dpkg-buildflags, and hardening is on by default. - No
<!nocheck>Build-Depends, so there is nothing that aDEB_BUILD_OPTIONS=nocheckbuild would miss;dh_auto_configurepasses -DBUILD_TESTING=OFF in that case and the package's own GTTY_BUILD_TESTS option does not break the build. - debian/watch is outside this review and was not examined.
- uscan found upstream releases with
debian/watch; a newer upstream version is available (upstream0.2.7, packaged0.2.5), which is not a fault of the package. - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (GPL-3).
Not confirmed ◂
- data/io.github.gtty.metainfo.xml declares
<metadata_license>CC0-1.0</metadata_license>for itself while debian/copyright records the whole tree, that file included, as GPL-3+. If AppStream's metadata_license is a licence grant for the file (as the AppStream specification has it), debian/copyright should mention CC0-1.0 for it, or a dual GPL-3+/CC0. I found no AppStream specification on this system (/usr/share/doc/appstream holds only the Debian changelog and copyright), so I did not report it as an issue; both licences are free either way.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader was emailed about the review 0 hours ago.