Hi Mario,

This is meant as an intent-to-reject, see https://dfsg-new- queue.debian.org/reviews/lemonade <https://dfsg-new-queue.debian.org/ reviews/lemonade> for the full conversation. I'm writing this mail in the interest of transparency and engage in a more visible conversation about this package.


Thank you, this has been a long road to /try/ to get this package in good shape, including a lot of work upstream.

I believe the lemonade package is currently UNACCEPTABLE for inclusion in any section of the Debian archive (main, contrib, or non-free).>
1. Runtime Download of Executable Binaries
The most critical blocker is the implementation of the "Backend Manager" in src/cpp/server/backends/backend_utils.cpp. The software contains logic to automatically download, extract, and execute pre-compiled binaries from GitHub (specifically from github.com/ggml-org/ <http:// github.com/ggml-org/> and github.com/lemonade-sdk/ <http://github.com/ lemonade-sdk/>).

Policy Violation: Debian requires all software to be built from source within the Debian infrastructure to ensure auditability and security. Security Risk: The BackendUtils::install_from_github function fetches executables (llama-server, whisper-server, etc.) at runtime. This bypasses APT, prevents security patching by the Debian Security Team, and introduces a significant attack vector (remote execution of untrusted third-party binaries).


I will note I have worked out a 'system' llama-server backend implementation upstream that will use llama.cpp from apt. It's one possible source. The new fastflowlm backend will ONLY use system provided binaries.

I plan to do the same for whisper and stable diffusion, but will need more ITPs along the way. I wanted to prove it can work with llama.cpp first.

This will take some time though to work out upstream and get those ITPs in shape, so I want to ask what can be acceptable in the short term knowing that's the north star?

Would a patch to disable all download functionality be good in your mind for now? It will limit lemonade's usability (It would pretty much only work with llama.cpp and FLM if installed), but it will then improve with time as I do a system backend implementation for other backends upstream.


2. Copyright and Licensing Failures
The debian/copyright file is incomplete and contains factual inaccuracies:

License Incompatibility and Mislabeling: The file src/cpp/include/lemon/ amdxdna_accel.h is licensed under GPL-2.0 WITH Linux-syscall-note, but debian/copyright incorrectly labels it (via a wildcard) as Apache-2.0. Apache-2.0 is generally considered incompatible with GPL-2.0. While the Linux-syscall-note exception is designed to allow linking with userspace, misrepresenting the license of a core header file is a critical failure in the copyright review process.

Are you sure? I did add this:

Files: src/cpp/include/lemon/amdxdna_accel.h
Copyright: 2022-2024, Advanced Micro Devices, Inc.
License: GPL-2.0

Missing Attributions: The vendored ixwebsocket library (included in debian/ixwebsocket) contains code from numerous authors not listed in debian/copyright (e.g., Alex Hultman, Bjoern Hoehrmann, Salvatore Sanfilippo).

I will double check the authors on this. Actually for the next version I'm pushing upstream to switch to libwebsockets (which is packaged for Debian already).

Inaccurate Claims: debian/copyright attributes IXBase64.h to Machine Zone, Inc., but the file header clearly states Copyright (c) 2016 tomykaira. Wildcard Over-reach: The Files: * declaration claiming Apache-2.0 for the entire tree is invalidated by the presence of GPL-2.0, MIT, ISC, and BSD-3-Clause files throughout the src/ and debian/ directories that are not properly scoped.

Hmm, I do have clauses for all of files that didn't match and had an explicit license. The NOTICE.md (upstream's LICENSE) and package.json (upstream's list of packages needed to build the web-app) didn't have epxlicit licenses.

$ licenserecon
en: Versions: licenserecon '12.0'  licensecheck '3.3.9-1'

Parsing Source Tree  ....
Reading d/copyright  ....
Running licensecheck ....

d/copyright      | licensecheck

Apache-2.0       | Expat and/or GPL-2 and/or ISC NOTICE.md
Apache-2.0       | Expat             src/web-app/package.json





3. Missing Source for Generated Files (DFSG 2)
The source tarball contains several Windows-specific bitmap files used for installers:

src/cpp/installer/installer_banner_wix.bmp
src/cpp/installer/top_banner.bmp
These files are provided without their "preferred form for modification" (e.g., GIMP/Photoshop source files or SVG templates). Under DFSG 2, every component of the source package must include its source code. These are currently "sourceless blobs.".

It's unfortunate these were missed before by you and me in previous reviews. I'll repack in the future to exclude them.

Reply via email to