lomiri-keepassrx-app 1.0.0-1
Package Information
| Description | Password manager compatible with KeePass for Lomiri KeePassRX is a password manager compatible with KeePass (.kdbx / .kdb) databases. Read-only access to entries, groups, TOTP/Steam codes, key files and attachments. This app is built for Ubuntu Touch's shell Lomiri. Ubuntu Touch is a mobile OS developed by the UBports Foundation. Lomiri is its operating environment optimized for touch based human-machine interaction, but also supports convergence (i.e. switching between tablet/phone and desktop mode). |
|---|---|
| Maintainer | Debian UBports Team <team+ubports@tracker.debian.org> |
| Changed By | Jeremy Bícha <jbicha@ubuntu.com> |
| Sponsor | jbicha@debian.org |
| Distribution | experimental |
| Architecture | any |
| VCS | git: https://salsa.debian.org/ubports-team/lomiri-keepassrx-app.git (browse) |
| Tracker | https://tracker.debian.org/pkg/lomiri-keepassrx-app |
| Uploaded | 3 hours ago |
New Package Report
.changes
| Architecture | source amd64 |
|---|---|
| Distribution | experimental |
| Date | Fri, 23 Oct 2026 13:34:54 +0200 |
| Source | lomiri-keepassrx-app |
| Version | 1.0.0-1 |
| Changed-By | Jeremy Bícha <jbicha@ubuntu.com> |
Changelog
lomiri-keepassrx-app (1.0.0-1) experimental; urgency=medium . * Initial release
.dsc
| Section | x11 |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | lomiri-keepassrx-app deb x11 optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://git.agnos.is/projectmoon/keepass-rx Upstream-Name: keepass-rx Files: * Copyright: 2025 projectmoon License: AGPL-3.0+ Files: actor-macro/src/lib.rs keepass-rx/src/actor/mod.rs Copyright: 2019-2025 Ruben De Smet, Markus Törnqvist 2025 projectmoon License: AGPL-3.0+ Comment: from whisperfish Files: debian/* Copyright: 2026 Jeremy Bícha <jbicha@ubuntu.com> License: AGPL-3.0+ Files: debian/missing-sources/qmeta-async/* Copyright: 2022 Ruben De Smet License: Expat Comment: Direct copy of https://gitlab.com/rubdos/qmeta-async Files: keepass-rx/src/build.rs Copyright: 2018 Olivier Goffart License: Expat Files: keepass-rx/src/main.rs Copyright: 2025 projectmoon License: AGPL-3.0 Files: keepass-rx/qml/Main.qml Copyright: 2021 David Ventura License: GPL-3 Files: keepass-rx/src/zxcvbn/zxcvbn.* Copyright: 2015-2017 Tony Evans License: Expat Files: keepass-rx/qml/components/ConfigurationGroup.qml keepass-rx/qml/components/DetailField.qml Copyright: 2025 Brenno Flávio de Almeida License: GPL-3 Comment: from https://github.com/brennoflavio/sealed/blob/master/qml/lib/DetailField.qml https://github.com/brennoflavio/sealed/blob/master/qml/ut_components/ConfigurationGroup.qml Files: keepass-rx/assets/icons/C00_Password.svg keepass-rx/assets/icons/C01_Package_Network.svg keepass-rx/assets/icons/C02_MessageBox_Warning.svg keepass-rx/assets/icons/C03_Server.svg keepass-rx/assets/icons/C04_Klipper.svg keepass-rx/assets/icons/C05_Edu_Languages.svg keepass-rx/assets/icons/C06_KCMDF.svg keepass-rx/assets/icons/C08_Socket.svg keepass-rx/assets/icons/C09_Identity.svg keepass-rx/assets/icons/C10_Kontact.svg keepass-rx/assets/icons/C11_Camera.svg keepass-rx/assets/icons/C12_IRKickFlash.svg keepass-rx/assets/icons/C13_KGPG_Key3.svg keepass-rx/assets/icons/C14_Laptop_Power.svg keepass-rx/assets/icons/C15_Scanner.svg keepass-rx/assets/icons/C16_Mozilla_Firebird.svg keepass-rx/assets/icons/C19_Mail_Generic.svg keepass-rx/assets/icons/C20_Misc.svg keepass-rx/assets/icons/C21_KOrganizer.svg keepass-rx/assets/icons/C22_ASCII.svg keepass-rx/assets/icons/C23_Icons.svg keepass-rx/assets/icons/C24_Connect_Established.svg keepass-rx/assets/icons/C25_Folder_Mail.svg keepass-rx/assets/icons/C28_QuickTime.svg keepass-rx/assets/icons/C29_KGPG_Term.svg keepass-rx/assets/icons/C30_Konsole.svg keepass-rx/assets/icons/C31_FilePrint.svg keepass-rx/assets/icons/C32_FSView.svg keepass-rx/assets/icons/C33_Run.svg keepass-rx/assets/icons/C34_Configure.svg keepass-rx/assets/icons/C36_Ark.svg keepass-rx/assets/icons/C39_History.svg keepass-rx/assets/icons/C40_Mail_Find.svg keepass-rx/assets/icons/C41_VectorGfx.svg keepass-rx/assets/icons/C42_KCMMemory.svg keepass-rx/assets/icons/C43_EditTrash.svg keepass-rx/assets/icons/C47_KPackage.svg keepass-rx/assets/icons/C48_Folder.svg keepass-rx/assets/icons/C49_Folder_Blue_Open.svg keepass-rx/assets/icons/C50_Folder_Tar.svg keepass-rx/assets/icons/C55_Thumbnail.svg keepass-rx/assets/icons/C56_KAddressBook.svg keepass-rx/assets/icons/C57_View_Text.svg keepass-rx/assets/icons/C58_KGPG.svg keepass-rx/assets/icons/C59_Package_Development.svg keepass-rx/assets/icons/C60_KFM_Home.svg keepass-rx/assets/icons/C62_Tux.svg keepass-rx/assets/icons/C63_Feather.svg keepass-rx/assets/icons/C65_W.svg keepass-rx/assets/icons/C67_Certificate.svg keepass-rx/assets/icons/C68_BlackBerry.svg Copyright: icons8 License: Expat Comment: Taken from https://github.com/icons8/flat-color-icons via KeePassXC share/icons/database These are dual-licensed under Expat and the Good Boy License which is non-free so its license isn't copied here Files: keepass-rx/assets/icons/C07_Kate.svg keepass-rx/assets/icons/C17_CDROM_Unmount.svg keepass-rx/assets/icons/C18_Display.svg keepass-rx/assets/icons/C26_FileSave.svg keepass-rx/assets/icons/C27_NFS_Unmount.svg keepass-rx/assets/icons/C35_KRFB.svg keepass-rx/assets/icons/C38_Samba_Unmount.svg keepass-rx/assets/icons/C44_KNotes.svg keepass-rx/assets/icons/C51_Decrypted.svg keepass-rx/assets/icons/C52_Encrypted.svg keepass-rx/assets/icons/C54_Signature.svg keepass-rx/assets/icons/C66_Money.svg Copyright: paomedia License: CC0-1.0 Comment: Taken from https://github.com/paomedia/small-n-flat via KeePassXC share/icons/database Files: keepass-rx/assets/icons/C37_KPercentage.svg keepass-rx/assets/icons/C45_Cancel.svg keepass-rx/assets/icons/C46_Help.svg keepass-rx/assets/icons/C53_Apply.svg keepass-rx/assets/icons/C61_Services.svg Copyright: 2022 KeePassXC Team <team@keepassxc.org> License: Expat Comment: Taken from https://github.com/keepassxreboot/keepassxc via KeePassXC share/icons/database Files: keepass-rx/assets/icons/C64_Apple.svg Copyright: Simple Icons License: CC0-1.0 Comment: from the Simple Icons repo (https://github.com/simple-icons/simple-icons/) via KeePassXC share/icons/database License: AGPL-3.0 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License. . 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 Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Comment: 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.0'. License: AGPL-3.0+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero 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. . You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Comment: 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.0'. License: CC0-1.0 On Debian systems, a copy of the Creative Commons Zero license, version 1.0 can be found in /usr/share/common-licenses/CC0-1.0. 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: GPL-3 This package 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 3 of the License. . This package 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 <http://www.gnu.org/licenses/>. . On Debian systems, the complete text of the GNU General Public License can be found in "/usr/share/common-licenses/GPL-3".
DFSG Assistant LLM REVIEW 0 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 1 hour ago.
Report
DFSG NEW review for lomiri-keepassrx-app version 1.0.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: No
- Issues: 0 blocker, 1 important, 4 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 6 found
Licensing
Everything in the tree is free: the application is AGPL-3.0-or-later, with GPL-3-only Main.qml, Expat (zxcvvn, build.rs, qmeta-async, the icons8 and KeePassXC icons) and CC0 (paomedia, Simple Icons) parts, and these combine into one AGPLv3 work under GPLv3 section 13, as upstream's COPYING states. debian/copyright is DEP-5 with full licence texts and correct common-licenses pointers, but it is not fully accurate: it gives keepass-rx/assets/icons/C64_Apple.svg as CC0-1.0/Simple Icons while the package's own assets/COPYING calls it GPL-2+ (and ships assets/LICENSE.GPL-2), it attributes the keepass-rs test databases to projectmoon alone, and keepass-rx/src/zxcvbn/dict-src.h is a generated table whose generator input is not shipped.
Packaging
The packaging is mostly sound: compat 13 with dh and the cargo buildsystem, hardening by default, DEP-3 headers on the patches, a correct changelog for an initial upload, Vcs-* and a current Standards-Version. Two real problems remain. The binary package does not depend on the QML modules the application imports (Lomiri.Components, Lomiri.Content, QtQuick.Controls, Qt.labs.settings), so it starts and immediately fails to load Main.qml; and the gettext lookup is done relative to the current working directory, so the 15 translations the build generates into /usr/share/locale are never used when the app is launched from the desktop.
Issues
1. [important] [packaging] Depends omits the QML modules the app imports (Lomiri.Components, Lomiri.Content, QtQuick.Controls, Qt.labs.settings)
- Files:
debian/control,keepass-rx/qml/Main.qml:18-22,keepass-rx/qml/pages/AttachmentPage.qml:1-6,keepass-rx/qml/pages/DBList.qml:1-7,keepass-rx/qml/components/EntryItem.qml:1-6 - Basis: checked, in the package or with a reference tool
- Evidence:
import Lomiri.Components 1.3,import Lomiri.Content 1.3,import QtQuick.Controls 2.12,import Qt.labs.settings 1.0; debian/control has onlyDepends: ${misc:Depends}, ${shlibs:Depends}. - Problem: QML modules are loaded at run time from the Qt import path and are not recorded by dh_shlibdeps, so ${shlibs:Depends} names the Qt libraries only. Nothing in the dependency chain pulls in qml-module-lomiri-components (the apt-cache entry for it shows it brings qml-module-qtquick2, -layouts, -graphicaleffects and -window2, but it is not a dependency of anything here), qml-module-lomiri-content, qml-module-qtquick-controls2 or qml-module-qt-labs-settings. Policy 3.5 requires the dependencies needed for the package to work; the installed app dies with "module "Lomiri.Components" is not installed" and
view.set_source("qrc:/qml/Main.qml")never succeeds. - Fix: Add
qml-module-lomiri-components, qml-module-lomiri-content, qml-module-qtquick-controls2, qml-module-qt-labs-settings(and, explicitly, qml-module-qtquick2 and qml-module-qtquick-layouts if you do not want to rely on the lomiri-components chain) to the binary package's Depends.
2. [minor] [licensing] keepass-rx/assets/icons/C64_Apple.svg is documented as CC0-1.0 but the package's own assets/COPYING calls it GPL-2+
- Files:
debian/copyright:134-136,keepass-rx/assets/COPYING:87-90,keepass-rx/assets/LICENSE.GPL-2 - Basis: checked, in the package or with a reference tool
- Evidence: debian/copyright:
Copyright: Simple Icons/License: CC0-1.0; keepass-rx/assets/COPYING:Files: assets/icons/C64_Apple.svg/Copyright: GPL-2+(with no License field), and the tarball shipskeepass-rx/assets/LICENSE.GPL-2for it. - Problem: Two statements in the same source package disagree about the licence of one file, and debian/copyright asserts that nobody holds copyright on it. Both licences are free, so the DFSG is not at risk, but the copyright file is not an accurate description of the file as the package itself documents it, and a licence reviewer or downstream reuser cannot tell which applies.
- Fix: Establish which licence KeePassXC/the Simple Icons repo actually applies to that icon and make the single stanza in debian/copyright (and, ideally, assets/COPYING upstream) say the same thing; if it is GPL-2+, name the holder and use License: GPL-2+.
3. [minor] [licensing] Files: * names projectmoon as the copyright holder of the keepass-rs test databases
- Files:
debian/copyright:5-7,keepass-rx/tests/fixtures/README.md,keepass-rx/tests/fixtures/test_db_kdb_with_password.kdb,keepass-rx/tests/fixtures/test_db_with_password.kdbx,keepass-rx/tests/fixtures/test_db_kdbx4_with_password_argon2.kdbx,keepass-rx/tests/fixtures/test_db_kdbx41_with_password_aes.kdbx - Basis: checked, in the package or with a reference tool
- Evidence: keepass-rx/tests/fixtures/README.md:
These four files were copied from the locally cached keepass-rs test resources at commit 0e924b43...; debian/copyright'sFiles: *stanza saysCopyright: 2025 projectmoon. - Problem: The four test databases are not projectmoon's work; they come from the keepass-rs project, whose authors hold the copyright on them. No stanza names that holder, so the statement in Files: * is wrong for those files. They are test data and are not installed, but debian/copyright must still describe them accurately (Policy 12.5, copyright-format 1.0 section 5).
- Fix: Add a
Files: keepass-rx/tests/fixtures/test_db_kdb*stanza naming the keepass-rs authors (with the upstream URL), or ask upstream to drop them from the tarball if they are only needed by the ignored test.
4. [minor] [licensing] keepass-rx/src/zxcvbn/dict-src.h is a generated dictionary table with neither generator nor input shipped
- Files:
keepass-rx/src/zxcvbn/dict-src.h:1-6,keepass-rx/src/zxcvbn/zxcvbn.c - Basis: inferred from what was read, not seen directly
- Evidence: The file is 24,868 lines of packed integer arrays (
static const unsigned int DictNodes[84251],EndCountSml[84251]) ending instatic const char CharSet[60], with no comment, no licence and no readable word list; zxcvbn.c includes it and has no way to regenerate it. - Problem: This is generated data (the zxcvbn word-frequency trie) rather than a form a programmer would edit, so it is not the preferred form for modification; nothing in the package produces it or says where it came from, which is the source-completeness question DFSG section 2 and Policy 2.2.1 raise for generated files. It carries no licence notice of its own either.
- Fix: Ship the dictionary generator and word lists from zxcvbn-c (or point at a stable URL for them), and record the file's provenance and licence in the debian/copyright stanza for keepass-rx/src/zxcvbn/.
5. [minor] [packaging] gettext bindtextdomain uses the current working directory, so the installed translations are never found
- Files:
keepass-rx/src/main.rs:235-247,keepass-rx/src/build.rs - Basis: checked, in the package or with a reference tool
- Evidence:
let mut app_dir_path = env::current_dir().expect("Failed to get the app working directory"); if !app_dir_path.is_absolute() { app_dir_path = PathBuf::from("/usr"); } let path = app_dir_path.join("share/locale"); - Problem: env::current_dir() always returns an absolute path, so the /usr fallback is dead code and the locale directory is always $PWD/share/locale. build.rs (update_language_files()) writes the 15 compiled .mo files to $INSTALL_DIR/share/locale, i.e. /usr/share/locale in the package, where this code never looks when the app is started from Lomiri or any other session (cwd is the user's home). All the work in po/ is shipped but unused.
- Fix: Patch init_gettext() to bind /usr/share/locale (or the install prefix derived at build time), and forward the patch upstream.
Verified
- The six files the scan listed are KeePass test databases, not built artefacts: keepass-rx/test.kdbx is the project's own fixture (patch 0001 copies it to tests/fixtures/test_saved_searches.kdbx), and keepass-rx/tests/fixtures/test_db_kdb_with_password.kdb, test_db_with_password.kdbx, test_db_kdbx4_with_password_argon2.kdbx, test_db_kdbx41_with_password_aes.kdbx and test_saved_searches.kdbx are the inputs of keepass-rx/tests/load_fixtures.rs. Provenance and passwords are in tests/fixtures/README.md; the only test using them is marked
#[ignore = "broken in debian"]by patch 2004. None is installed in the binary package. - All four holders the author check matched in README.md (projectmoon, Brenno Flávio de Almeida, David Ventura, Ruben De Smet with Markus Törnqvist) are named in debian/copyright; the check's suffix differences are its own matching artefacts.
- File headers agree with the stanzas: Main.qml
GNU General Public License ... version 3(GPL-3, no "or later") matches License: GPL-3; main.rsversion 3matches AGPL-3.0; actor/mod.rs and actor-macro/src/lib.rs carry the Whisperfish AGPL-3+ text with Ruben De Smet/Markus Törnqvist and projectmoon, matching their stanza; build.rs is Olivier Goffart's Expat notice (projectmoon's later additions are covered by Files: *); zxcvbn.c/.h are Tony Evans' Expat. - All 69 keepass-rx/assets/icons/*.svg files (C00 to C68, no gaps; build.rs asserts the count) are matched by one of the four icon stanzas plus the catch-all: 51 icons8/Expat, 12 paomedia/CC0-1.0, 5 KeePassXC/Expat, C64_Apple/Simple Icons.
- debian/missing-sources/qmeta-async (Cargo.toml, LICENSE, src/, qmeta-async-macros/, tests/) is Ruben De Smet's MIT code, used through the path dependency patch 2001 puts in keepass-rx/Cargo.toml; its stanza and the Expat text in debian/copyright match its LICENSE.
- No non-free terms in the tree: the only mention of the non-free Good Boy License is debian/copyright's note that it was not chosen; deny.toml's allow-list and the licence texts present (AGPL-3, GPL-3, GPL-2, Expat, CC0) contain no field-of-use or no-modification clauses beyond upstream's own AGPL.
- debian/copyright is DEP-5 with the correct Format: URL, a stand-alone License paragraph for each short name it uses, and /usr/share/common-licenses pointers for AGPL-3.0 and GPL-3; it needs no replacement.
- The xgettext/msgmerge/msgfmt calls build.rs makes are covered without an explicit Build-Depends: debhelper depends on po-debconf, which depends on gettext (apt-cache).
- qtwebengine5-dev is needed: build.rs emits
cargo:rustc-link-lib=Qt5WebEngineon every platform, not only in the macOS branch; qtchooser is present (66-2) and qmake comes with qtbase5-dev. - override_dh_auto_test-arch / override_dh_auto_test-indep are valid targets (dh(1): "targets with names like override_dh_command-arch"); at compat 13 dh skips them under DEB_BUILD_OPTIONS=nocheck, so no nocheck check is needed in them.
- patch 0001 is a 102 KB backport of upstream's post-1.0.0 keepass-rs update (Origin: upstream, untagged 1.0.1) that also adds tests/load_fixtures.rs, the fixtures and the mirror_from_macro workspace crate; patches 1001/2001/2002/2004 carry DEP-3 headers, 2001 and 2004 without a Forwarded field, which is the only thing missing there.
- The empty override_dh_install and the duplicate
cargo prepare-debianin execute_before_dh_auto_configure are unexplained but harmless: dh_install has nothing to move and dh-cargo's configure runs prepare-debian again. - cargo-about is not in Debian, so build.rs's fallback (
pub static LICENSES: &[License] = &[];) leaves the in-app Licenses page empty; not something the packager can fix here. - I read all of debian/ and sampled the upstream tree directory by directory (Rust sources, all QML files, every licence and COPYING file, patches, Cargo.toml/lock); I did not read the .kdb/.kdbx or .png files, or all 24,868 lines of dict-src.h.
- uscan found the packaged version as the newest upstream release (upstream
1.0.0, packaged1.0.0). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (AGPL-3.0,CC0-1.0,GPL-3).
Not confirmed
- Build-Depends names librust-libsodium-rs-0.2+default-dev (>= 0.2.1) (Cargo.lock pins libsodium-rs 0.2.4), but apt-cache finds neither that name nor librust-libsodium-rs-dev in the package lists or in the NEW queues. If it is genuinely not in the archive the build cannot start; it may have been accepted after the lists were downloaded.
- Whether the other keepass-rx/qml/pages/*.qml and components are derived from David Ventura's original Keepass app: upstream's COPYING says
The code of the original UI is Copyright (C) 2021 David Ventura under the GNU GPLv3 (no later versions), but only Main.qml keeps his notice and debian/copyright names him for Main.qml only, so a GPL-3-only portion may be described as AGPL-3.0+. - override_dh_auto_install duplicates dh-cargo's install but drops its dh-cargo-built-using call, and debian/control names neither Built-Using nor Static-Built-Using; option-ext 0.2.0 (MPL-2.0, via dirs-sys) is statically linked, which the Rust team's tooling would normally record in Built-Using.
- I could not verify the claim in debian/copyright that the icons8 flat-color-icons are dual-licensed under Expat and the non-free Good Boy License; the decision to ship them rests on that claim.
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 1 hour ago.