Review: dae-py-relay-controller 1.5.2-1
Package Information
| Description | Library for controlling Denkovi DAE USB relay boards This is a library that uses libftdi to direct access Denkovi USB relay controller boards such as the DAE-CB series (4, 8 or 16 relay). Known Limitations and Assumptions: * 4 and 8 relay boards do not handle connection to multiple devices. Connects to first found Denkovi. * Not thread safe. * Possible race conditions with device plugging. * Uses a VCP delay of 50ms. Documentation specifies 5ms but was still seeing corruption at 20ms. Could be improved for the gets by doing an initial sync and then keeping track of the states in the class. |
|---|---|
| Maintainer | Debian Python Team <team+python@tracker.debian.org> |
| Changed By | Hans-Christoph Steiner <hans@eds.org> |
| Sponsor | hans@guardianproject.info |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/python-team/packages/dae-py-relay-controller.git (browse) |
| Closes | #1150565 |
| Tracker | https://tracker.debian.org/pkg/dae-py-relay-controller |
| Uploaded | 12 days ago |
New Package Report
.changes
| Changed-By | Hans-Christoph Steiner <hans@eds.org> |
|---|---|
| Architecture | source all |
| Distribution | unstable |
| Date | Sat, 10 Oct 2026 22:49:50 +0200 |
| Source | dae-py-relay-controller |
| Version | 1.5.2-1 |
Changelog
dae-py-relay-controller (1.5.2-1) unstable; urgency=medium . * Initial release (Closes: #1150565)
.dsc
| Component | main |
|---|---|
| Package-List | python3-dae-relayboard deb python optional arch=all |
| Section | python |
| Priority | optional |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: dae-py-relay-controller Upstream-Contact: Peter Bingham <petersbingham@hotmail.co.uk> Source: https://github.com/petersbingham/dae-py-relay-controller.git Files: * Copyright: 2014-2018, 2020, Peter Bingham <petersbingham@hotmail.co.uk> 2018, Dirck Blaskey <dirckb@gmail.com> License: dae-py-relay-controller Files: debian/* Copyright: 2026, Hans-Christoph Steiner <hans@eds.org> License: dae-py-relay-controller Comment: Debian packaging is licensed under the same terms as upstream License: dae-py-relay-controller 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.
Review Information
rejected — allocated to awm 10 days ago, started 10 days ago, completed 10 days ago.
Final Comment
Hi,
Some issues, notably the license is not fully present in debian/copyright.
- [important] [packaging] Missing runtime dependency on python3-serial for the VCP (16-relay) transport
- Files:
debian/control,dae_RelayBoard/dae_RelayBoard_VCP.py:23 - Evidence:
dae_RelayBoard_VCP.py:23hasimport serial;Depends: ${python3:Depends}, ${misc:Depends}, python3-pylibftdilists no serial provider. - Problem: The DAECB-16 board is driven through
dae_RelayBoard_VCP(documented in README viaexample16.py/test16.py), which imports theserialmodule at module level. Without pyserial installed the call fails at runtime withModuleNotFoundError: No module named 'serial'. Policy 7.2 requires Depends for anything needed to provide significant functionality. The import is lazy so the package installs and the import smoke test passes regardless, which masks the gap. - Fix: Add
python3-serialto the binary package Depends.
- [important] [licensing] Reproduced licence text in debian/copyright omits the warranty-disclaimer paragraph and is incorrectly named
- Files:
debian/copyright - Evidence: The
License: dae-py-relay-controllerparagraph ends at "included in all copies or substantial portions of the Software.", while every source header and README.md continue with "THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY ... OUT OF OR IN CONNECTION WITH THE SOFTWARE." - Problem: Policy 12.5 requires a verbatim copy of the distribution licence in the copyright file, and copyright-format 1.0 section 6.7 says the License field "should include all text needed ... to fulfill ... any license requirements to include warranty disclaimers". The text as shipped is a truncated Expat/MIT notice; the non-standard short name
dae-py-relay-controlleris used for a licence that copyright-format section 7.1 says to callExpatwhen it matches. - Fix: Complete the License paragraph with the disclaimer and use the standard short name
Expat.
- [minor] [packaging] Patches lack complete DEP-3 headers
- Files:
debian/patches/setuptools-instead-of-distutils.patch,debian/patches/pylibftdi-0.23-returns-strings-now-not-bytes.patch - Evidence:
setuptools-instead-of-distutils.patchis a bare diff with no DEP-3 metadata;pylibftdi-0.23-returns-strings-now-not-bytes.patchhas From/Subject/Forwarded but noDescription:(or Origin/Last-Update). - Problem: This is not a build failure, but the DEP-3 tagging spec (BTS 979632) asks every patch to carry at least a Description so its purpose and origin are traceable without reading the diff; here the setuptools patch's purpose is only inferable from the filename.
- Fix: Add DEP-3 headers (Description, Last-Update, and Forwarded/Origin) to both patches.
- [minor] [packaging] debian/watch is in the old version 3 format
- Files:
debian/watch - Evidence:
version=3 - Problem: Version 5 is the current format of
debian/watch. - Fix: Convert it to version 5; a mechanical conversion is suggested below.
==============================================
Version: 5
Run the "uscan" command to check for upstream updates and more.
Template: Github
Dist: https://github.com/petersbingham/dae-py-relay-controller
Thanks!
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 1.5.2-2 | cc339ebb… | 2026-10-21 00:53 | 2026-10-21 00:54 | awm | accepted | VIEW |