Bug 2453414 - Review Request: lemonade-server - Local LLM serving with GPU and NPU acceleration
Summary: Review Request: lemonade-server - Local LLM serving with GPU and NPU acceler...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Tom.Rix
QA Contact: Fedora Extras Quality Assurance
URL: https://github.com/lemonade-sdk/lemonade
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-03-31 16:13 UTC by Kurtis
Modified: 2026-07-13 16:18 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-07-13 16:18:03 UTC
Type: ---
Embargoed:
Tom.Rix: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 10280942 to 10326544 (2.51 KB, patch)
2026-04-15 03:34 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 10426885 to 10460881 (1.60 KB, patch)
2026-05-14 19:07 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 10460881 to 10514264 (2.50 KB, patch)
2026-05-26 20:26 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 10514264 to 10551649 (2.17 KB, patch)
2026-06-03 08:40 UTC, Fedora Review Service
no flags Details | Diff

Description Kurtis 2026-03-31 16:13:36 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10279508/lemonade-server.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10279508/lemonade-server-10.0.1-1.fc45.src.rpm
Description: Lemonade helps users discover and run local AI apps by serving optimized LLMs right from their own GPUs and NPUs. It supports GGUF, FLM, and ONNX models. It operates as a local backend server.
Fedora Account System Username: kmarinos

Comment 1 Fedora Review Service 2026-04-01 04:03:47 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10280942
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2453414-lemonade-server/fedora-rawhide-x86_64/10280942-lemonade-server/fedora-review/review.txt

Found issues:

- Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/lemonade-server/diff.txt
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/
- Systemd service file(s) in lemonade-server
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_scriptlets

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Tom.Rix 2026-04-05 13:08:22 UTC
- Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/lemonade-server/diff.txt
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/

diff.txt:

diff -U2 -r /sfs/fedora-review/review-lemonade-server/upstream-unpacked/Source0/lemonade-10.0.1/.github/workflows/cpp_server_build_test_release.yml /sfs/fedora-review/review-lemonade-server/srpm-unpacked/lemonade-server-10.0.1.tar.gz-extract/lemonade-10.0.1/.github/workflows/cpp_server_build_test_release.yml
--- /sfs/fedora-review/review-lemonade-server/upstream-unpacked/Source0/lemonade-10.0.1/.github/workflows/cpp_server_build_test_release.yml	2026-03-24 10:43:14.000000000 -0700
+++ /sfs/fedora-review/review-lemonade-server/srpm-unpacked/lemonade-server-10.0.1.tar.gz-extract/lemonade-10.0.1/.github/workflows/cpp_server_build_test_release.yml	2026-03-24 10:00:21.000000000 -0700
@@ -1272,6 +1272,4 @@
       - test-rpm-package
     if: startsWith(github.ref, 'refs/tags/v')
-    env:
-      LEMONADE_VERSION: ${{ needs.build-lemonade-rpm.outputs.version }}
     steps:
       - name: Checkout for release notes action

the lemonade tarball has several hidden dirs like '.github'
It is ok to rm -rf them in the %prep stage.
I do this in several of my packages to make the license check (see below) easier, if the file or dir isn't used it is ok to remove it.

- Systemd service file(s) in lemonade-server
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_scriptlets

I believe this is catching how you are adding the lemonade user.
Review this document 
https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/
My package ollama adds the ollama user, following the dynamic user case in the doc.
I think this is what you want to do.

License:        MIT

[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "GNU General Public License, Version 2 and/or ISC License and/or MIT
     License", "*No copyright* Apache License", "MIT License", "Apache
     License 2.0", "Apache License 2.0 and/or GNU General Public License,
     Version 2 and/or ISC License and/or MIT License", "*No copyright* MIT
     License", "GNU General Public License, Version 2". 350 files have
     unknown license. Detailed output of licensecheck in /sfs/fedora-
     review/review-lemonade-server/licensecheck.txt

Review the licensecheck.txt file from fedora-review, this looks like Apache-2.0

# Restrict secrets file to be readable only by root and the lemonade service group
%attr(0660, root, lemonade) %config(noreplace) %{_sysconfdir}/lemonade/conf.d/zz-secrets.conf

     review/review-lemonade-server/licensecheck.txt
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /etc/lemonade/conf.d
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: lemonade-
     server:/etc/lemonade/conf.d

This will likely be reworked as part of adding lemonade user

URL:            https://github.com/lemonade-sdk/lemonade
Source0:        https://github.com/lemonade-sdk/lemonade/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz

should use %{url}/archives/... for source0

Summary:        Local LLM serving with GPU and NPU acceleration

Should there be some Requires: to pick up needed gpu or npu packages to run ?

rpmlint 

lemonade-server.spec:10: W: unversioned-explicit-provides user(lemonade)
lemonade-server.spec:11: W: unversioned-explicit-provides group(lemonade)
lemonade-server.x86_64: W: non-standard-gid /etc/lemonade/conf.d/zz-secrets.conf lemonade
lemonade-server.x86_64: E: non-readable /etc/lemonade/conf.d/zz-secrets.conf 660

this will change with how adding lemonade user changes. 

lemonade-server.spec: W: no-%check-section

How do we test this package ?
If if depends on a real gpu, consider adding some conditional logic like the rocblas package does.

Comment 3 Kurtis 2026-04-14 16:28:09 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10323178/lemonade-server.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10323178/lemonade-server-10.0.1-1.fc45.src.rpm

Here are the changes I made after reading your feedback:

- Removed hidden upstream directories (.github, etc.) in %prep since 
  they are not used in the build and were causing the tarball
  diff. I also updated Source0 to use %{url}.

- Systemd service scriptlets: Added %post, %preun, and %postun sections using
  %systemd_post, %systemd_preun, and %systemd_postun_with_restart macros per
  the Scriptlets guidelines.

- User/group creation: Replaced manual groupadd/useradd in %pre with sysusers.d
  allocation in accordance to the documentation for Users and Groups. This also resolves the
  rpmlint unversioned-explicit-provides warnings since the Provides are now
  auto-generated.

- Added %dir %{_sysconfdir}/lemonade/conf.d to ensure the
  package owns all directories it creates.

- Changed secrets.conf permissions from 0660 to 0640. File is intentionally not
  world-readable since it contains secrets, which rpmlint makes it appear as an error, though I 
  believe this a false-positive.

- I added a conditional %check gated behind %bcond_with check since
  tests require GPU hardware.

- As for ROCm support, lemonade-server uses the default system backend for now. My plan was to add
  ROCm support once the package has been reviewed and added to the Fedora ecosystem, where I could then update
  the package with ROCm support as optional.

- Modified the license in the SPEC. I forgot to modify that portion of the SPEC when I first auto-generated the template, my mistake. It should be okay now.

Comment 4 Fedora Review Service 2026-04-15 03:34:52 UTC
Created attachment 2137145 [details]
The .spec file difference from Copr build 10280942 to 10326544

Comment 5 Fedora Review Service 2026-04-15 03:34:54 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10326544
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2453414-lemonade-server/fedora-rawhide-x86_64/10326544-lemonade-server/fedora-review/review.txt

Found issues:

- Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/lemonade-server/diff.txt
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 6 Tom.Rix 2026-04-19 16:28:54 UTC
Trying an install
https://github.com/trixirt/rocm-distro-containers/blob/main/fedora/rawhide/lemonade-server/Dockerfile

0.130 Verifying...                          ########################################                                                                 
0.134 Preparing...                          ########################################                                                                 
0.210 <stdin>:1: '%{_sharedstatedir}/lemonade' is not a valid home directory field.                                                                  
0.211 error: %sysusers(lemonade-server-10.0.1-1.fc45.x86_64) scriptlet failed, exit status 1
0.211 error: lemonade-server-10.0.1-1.fc45.x86_64: install failed

Some problem in the install in at least containers

lemonade-server looks like a network server plugging into existing local llm applications as its backends
I would expect there to be something like

%Requires llama-cpp

for at least the cpu to work.

Though this application could build on all arches, the list of aches should be the intersection of the backends.
Ex/ llama-cpp only supports x86_64 and aarch64

https://src.fedoraproject.org/rpms/llama-cpp/blob/rawhide/f/llama-cpp.spec#_46

Which arches should also reflect what you are willing to support.
If ex/ you have no powerpc hw, I would recommend not adding that but rather reach out to someone who does and would be interested in comaintaining.

I am not sure if there is a ctest tests, it looks like tests are some python scripts here
https://github.com/lemonade-sdk/lemonade/tree/v10.0.1/test

I see the upstream has v10.2
Please review and update if you think it is worth it, generally package reviews should be updated with the latest but that may not be practical if the upstream is moving crazy fast like llama-cpp.

Comment 7 Kurtis 2026-05-05 17:14:48 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10426623/lemonade-server.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10426623/lemonade-server-10.2.0-1.fc45.src.rpm

Changes:

- Fixed sysusers.d Container Install Failure
- Changed home directory in lemonade-server.sysusers from RPM RPM macro %{_sharedstatedir}/lemonade to literal path /var/lib/lemonade

This should address the install failure in containers.

- Updated to v10.2.0. I will have to update to 10.3 shortly, but wanted to provide an update until then.
- Updated %files section: Added lemond binary and man page (new in 10.2.0), and added %{_datadir}/lemonade/ directory (also new in 10.2.0)
- Removed lemonade-router binary and lemonade.conf (removed upstream)

Fixed Licensing Field:
- Changed from "Apache-2.0" to "Apache-2.0 AND GPL-2.0-only WITH Linux-syscall-note AND MIT". Added respective License breakdown comments documenting each component.

- Added Bundled Library Declaration: aixlog is a header-only library not available as a Fedora package

- Added ExclusiveArch: x86_64. This is to match llama-cpp backend support, as well as the architecture I can support and test.

- Added Requires: llama-cpp

- Updated %check Section. Changed from %ctest to %pytest. Upstream tests are Python-based tests.
- Added conditional BuildRequires for python3-pytest and python3-requests
- Tests continue to be behind %bcond_with check to meet GPU/APU hardware requirement

There were 4 warnings provided when running rpmlint: (setlocale, non-standard-gid,
non-readable secrets file, empty-%pre on systemd 260+). These are expected.

Comment 8 Fedora Review Service 2026-05-05 17:27:50 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10426885
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2453414-lemonade-server/fedora-rawhide-x86_64/10426885-lemonade-server/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 9 Kurtis 2026-05-14 18:39:51 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10460803/lemonade-server.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10460803/lemonade-server-10.4.0-1.fc45.src.rpm

Updated package to v10.4.0

Systemd Service File Renamed:
- Renamed upstream service file from lemonade-server.service to lemond.service
- Service file was no longer being installed by cmake so I added a manual install in %install
- Updated %post, %preun, %postun scriptlets to reference lemond.service and updated %files to reference lemond.service

Fixed %check Section:
- I took a look at the --with-check option while building, and investigated the py tests. From my understanding it appears that the upstream
  tests are integration tests that require a running lemonade-server instance, the binary at the upstream dev build path (build/lemonade-server), and GPU hardware.
  I documented this in a comment within the check section of the spec file. The tests cannot run in a build environment

- Replaced %pytest macro with direct python3 -m pytest call, the %pytest macro was not expanding correctly when troubleshooting.
- Added python3-openai to conditional BuildRequires required by the tests.

Comment 10 Fedora Review Service 2026-05-14 19:07:09 UTC
Created attachment 2141302 [details]
The .spec file difference from Copr build 10426885 to 10460881

Comment 11 Fedora Review Service 2026-05-14 19:07:11 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10460881
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2453414-lemonade-server/fedora-rawhide-x86_64/10460881-lemonade-server/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 12 Kurtis 2026-05-26 20:12:43 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10513876/lemonade-server.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10513876/lemonade-server-10.6.0-1.fc45.src.rpm

Changes:

Updated version to 10.6.0

Remove Source1: lemonade-server.sysusers
- Upstream now provides its own sysusers.d config with cmake.

Removed %pre section - %sysusers_create_compat %{SOURCE1}
- Upstream's sysusers.d file is handled by systemd file triggers. This is no longer needed.

Removed manual sysusers.d and service file installs from %install
- Upstream cmake now installs both.

Added tmpfiles.d config and /var/lib/lemonade directory
- This was to address a systemctl start lemond failure.

Added tmpfiles creation to %post
- Ensures the directory exists immediately after install instead of a reboot.

Disabled web app in build
- This never worked from the start, but I thought I would include this anyways for transparency. In order to get it to work, I need to bundle npm packages, which shouldn't be a problem at first glance. However, having the back-end working and packaged is a higher priority, so I will address this UI integration sometime in the future.

Removed lemonade-server binary
- They were removed by upstream in 10.6.0

Updated %files for files provided upstream.

Comment 13 Fedora Review Service 2026-05-26 20:26:17 UTC
Created attachment 2143035 [details]
The .spec file difference from Copr build 10460881 to 10514264

Comment 14 Fedora Review Service 2026-05-26 20:26:20 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10514264
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2453414-lemonade-server/fedora-rawhide-x86_64/10514264-lemonade-server/fedora-review/review.txt

Found issues:

- Systemd user unit service file(s) in lemonade-server
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 15 Tom.Rix 2026-05-27 21:48:54 UTC
Issues:
=======
- systemd_user_post is invoked in %post and systemd_user_preun in %preun
  for Systemd user units service files.
  Note: Systemd user unit service file(s) in lemonade-server
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Scriptlets/#_user_units


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "*No copyright* Apache License", "Apache License 2.0", "MIT License",
     "Apache License 2.0 and/or ISC License and/or MIT License", "*No
     copyright* MIT License", "GNU General Public License, Version 2". 409
     files have unknown license. Detailed output of licensecheck in
     /sfs/fedora-review/review-lemonade-server/licensecheck.txt
[!]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.

Please review the licensecheck.txt file

Apache License 2.0 and/or ISC License and/or MIT License
--------------------------------------------------------
lemonade-server-10.6.0-build/lemonade-10.6.0/contrib/debian/copyright

contrib/debian is debian packaging.
If contrib/ is not used, remove it.
similar for anything else not needed.

[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries or specifies bundled libraries
     with Provides: bundled(<libname>) if unbundling is not possible.
[!]: Changelog in prescribed format.

autochangelog is fine, 
Release:        1%{?dist}
should be changed to
Release:        %autorelease


[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 18733 bytes in 1 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in lemonade-server
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[?]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: lemonade-server-10.6.0-1.fc45.x86_64.rpm
          lemonade-server-10.6.0-1.fc45.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.8.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpvmlcn5dd')]
checks: 32, packages: 2

lemonade-server.x86_64: W: non-standard-uid /var/lib/lemonade lemonade
lemonade-server.x86_64: W: non-standard-gid /etc/lemonade/conf.d/zz-secrets.conf lemonade

what is zz-secrets.conf ?

lemonade-server.x86_64: W: non-standard-gid /var/lib/lemonade lemonade

Fix these:
lemonade-server.x86_64: E: non-standard-dir-perm /var/lib/lemonade 750
lemonade-server.x86_64: E: non-readable /etc/lemonade/conf.d/zz-secrets.conf 640
 2 packages and 0 specfiles checked; 2 errors, 3 warnings, 6 filtered, 2 badness; has taken 0.3 s 




Rpmlint (debuginfo)
-------------------
Checking: lemonade-server-debuginfo-10.6.0-1.fc45.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.8.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpywy1vpfr')]
checks: 32, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 11 filtered, 0 badness; has taken 1.3 s 





Rpmlint (installed packages)
----------------------------
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
============================ rpmlint session starts ============================
rpmlint: 2.9.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 2

lemonade-server.x86_64: W: non-standard-uid /var/lib/lemonade lemonade
lemonade-server.x86_64: W: non-standard-gid /etc/lemonade/conf.d/zz-secrets.conf lemonade
lemonade-server.x86_64: W: non-standard-gid /var/lib/lemonade lemonade
lemonade-server.x86_64: E: non-standard-dir-perm /var/lib/lemonade 750
lemonade-server.x86_64: E: non-readable /etc/lemonade/conf.d/zz-secrets.conf 640
 2 packages and 0 specfiles checked; 2 errors, 3 warnings, 18 filtered, 2 badness; has taken 0.5 s 



Source checksums
----------------
https://github.com/lemonade-sdk/lemonade/archive/refs/tags/v10.6.0.tar.gz#/lemonade-server-10.6.0.tar.gz :
  CHECKSUM(SHA256) this package     : 552d4585044e482b017a2cd6522731cef42d5984673db2daf43056065643060e
  CHECKSUM(SHA256) upstream package : 552d4585044e482b017a2cd6522731cef42d5984673db2daf43056065643060e


Requires
--------
lemonade-server (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/bash
    config(lemonade-server)
    group(lemonade)
    libbrotlidec.so.1()(64bit)
    libbrotlienc.so.1()(64bit)
    libc.so.6()(64bit)
    libcrypto.so.3()(64bit)
    libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    libcurl.so.4()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libssl.so.3()(64bit)
    libssl.so.3(OPENSSL_3.0.0)(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.13)(64bit)
    libstdc++.so.6(CXXABI_1.3.15)(64bit)
    libstdc++.so.6(CXXABI_1.3.2)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.7)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libwebsockets.so.21()(64bit)
    libz.so.1()(64bit)
    llama-cpp
    rtld(GNU_HASH)
    user(lemonade)



Provides
--------
lemonade-server:
    bundled(aixlog)
    config(lemonade-server)
    group(lemonade)
    lemonade-server
    lemonade-server(x86-64)
    user(lemonade)



Generated by fedora-review 0.11.0 (05c5b26) last change: 2025-11-29
Command line :/usr/bin/fedora-review -n lemonade-server
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: R, PHP, Python, Haskell, fonts, Java, Ocaml, SugarActivity, Perl
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 16 Kurtis 2026-06-02 19:01:45 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10521528/lemonade-server.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/kmarinos/lemonade-server/srpm-builds/10521528/lemonade-server-10.6.0-1.fc45.src.rpm


Changes:

- Release tag changed from %autorelease
- Removed contrib/ directory in %prep since it was for Debian packaging
- Adjusted /var/lib/lemonade permissions from 0750 to 0755

In regards to the rpmlint items:

 non-standard-uid/gid lemonade:
- I believe this is expected. The lemonade user and group are created with sysusers.d (/usr/lib/sysusers.d/lemonade.conf). I believe Ollama does this as it's standard pattern for service users as well.

 non-readable /etc/lemonade/conf.d/zz-secrets.conf 640:
- zz-secrets.conf is where API keys, tokens, and other sensitive data would be stored. The "zz-" prefix is so that it loads last in the conf.d/ directory, overriding any other settings.

 systemd_user_post/systemd_user_preun:
- I believe this is now correct. Both the system and user unit scriptlets are present for lemond.service.

Comment 17 Fedora Review Service 2026-06-03 08:40:04 UTC
Created attachment 2143940 [details]
The .spec file difference from Copr build 10514264 to 10551649

Comment 18 Fedora Review Service 2026-06-03 08:40:10 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10551649
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2453414-lemonade-server/fedora-rawhide-x86_64/10551649-lemonade-server/fedora-review/review.txt

Found issues:

- Systemd user unit service file(s) in lemonade-server
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 19 Tom.Rix 2026-06-12 17:09:53 UTC
Approved.

Comment 20 Fedora Admin user for bugzilla script actions 2026-07-07 20:07:27 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/lemonade-server
Monitoring:
Wasn't able to create project in Anitya. You can create it manually on: `https://release-monitoring.org`

Comment 21 Fedora Admin user for bugzilla script actions 2026-07-07 20:07:59 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/lemonade-server
Monitoring:
Wasn't able to create project in Anitya. You can create it manually on: `https://release-monitoring.org`


Note You need to log in before you can comment on or make changes to this bug.