Bug 2432624 - Review Request: lidm - A really light unix login manager made in C
Summary: Review Request: lidm - A really light unix login manager made in C
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Aleksei Bavshin
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-01-25 05:02 UTC by Benson Muite
Modified: 2026-01-27 06:21 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:
alebastr89: fedora-review?


Attachments (Terms of Use)

Description Benson Muite 2026-01-25 05:02:06 UTC
spec: https://fed500.fedorapeople.org/lidm.spec
srpm: https://fed500.fedorapeople.org/lidm-1.2.3-1.fc44.src.rpm

description:
LiDM is a really light unix login manager made in C, highly customizable and
held together by hopes and prayers.

LiDM is like any Display Manager you have seen but without using any X.org
graphics at all. Instead being a purely text based interface inside your
terminal/TTY.

Features:
- Simple as C, meant to depend only on standard libc and basic unix system
  headers.
- Fully customizable: ALL strings, colors (with its ANSI keys) and most
  behavior.
- Xorg* and wayland sessions, while supporting the default user shell (if
  enabled in config)
- Init agnostinc (systemd, dinit, runit, openrc and s6).
- Supports fido yubikeys (via pam_u2f).

fas: fed500

Some work is still needed for the service files, see:
https://github.com/javalsai/lidm/discussions/92

Reproducible: Always

Comment 1 Fedora Review Service 2026-01-25 05:06:08 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10055521
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2432624-lidm/fedora-rawhide-x86_64/10055521-lidm/fedora-review/review.txt

Found issues:

- Systemd service file(s) in lidm
  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 Aleksei Bavshin 2026-01-27 06:21:13 UTC
The main issue with this package is that it does not quite work in Fedora:
 - it does not prepare the expected environment for pam_systemd.
   At least XDG_SESSION_CLASS, XDG_SEAT and XDG_VTNR are required and should be set with pam_putenv before calling pam_open_session. GNOME will also require XDG_SESSION_TYPE.

 - it is blocked by SELinux.
   A possible solution is to label lidm as a display manager. This could be done as a policy module[1][2] or in the main policy[3].

[1]: https://fedoraproject.org/wiki/SELinux/IndependentPolicy
[2]: https://src.fedoraproject.org/rpms/greetd/blob/rawhide/f/greetd.fc
[3]: https://github.com/fedora-selinux/selinux-policy/pull/2977

Some less important issues:

- v2.0.0 is available: https://github.com/javalsai/lidm/releases/tag/v2.0.0

- LDFLAGS are not applied: lidm.x86_64: W: position-independent-executable-suggested /usr/bin/lidm
Should be already fixed in v2.0.0 Makefile.

- Makefile embeds the current date into the executable, resulting in a non-reproducible build:

> #define LIDM_BUILD_TS '$$(date +%s)

Consider patching it to use $SOURCE_DATE_EPOCH (or passing INFO_BUILD_TS=$SOURCE_DATE_EPOCH to %make_build with v2.0.0).

> %forgemeta

IMO, the spec is too simple to require forge macros. Not going to block the review on that though.

> BuildRequires:  pam_yubico
> Requires:  pam_yubico

Nothing in this project depends on or uses pam_yubico.

> install -Dm644 themes/cherry.ini %{buildroot}%{_datadir}/lidm/themes/cherry.ini

I'd suggest `install -Dm644 -t %{buildroot}%{_datadir}/lidm/themes themes/*.ini`, unless you have a reason to list the themes explicitly.

> %preun
> %systemd_preun lidm.service

%post scriptlet with %systemd_post is missing.

> %{_sysconfdir}/lidm.ini

Missing %config(noreplace).

> /%{_unitdir}/lidm.service

Unnecessary leading slash.


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