Skip to content

New package: fcitx5-lotus-3.4.0 - #61742

Open
0353618151hao-png wants to merge 1 commit into
void-linux:masterfrom
0353618151hao-png:fcitx5-lotus
Open

New package: fcitx5-lotus-3.4.0#61742
0353618151hao-png wants to merge 1 commit into
void-linux:masterfrom
0353618151hao-png:fcitx5-lotus

Conversation

@0353618151hao-png

Copy link
Copy Markdown

Testing: Built and tested on glibc x86_64.

@0353618151hao-png

Copy link
Copy Markdown
Author

Sorry for the mess and noise in the commit history earlier! I've cleaned it all up into a single commit containing only fcitx5-lotus. Thank you for your patience!

@0353618151hao-png

0353618151hao-png commented Jul 31, 2026

Copy link
Copy Markdown
Author

Package description:
fcitx5-lotus is a Vietnamese input method for fcitx5, focusing on a non-preedit (direct typing) experience.

Technical notes:
-The package creates a '_uinput_proxy' system user. This is because the engine uses a background daemon to access '/dev/uinput' for simulating keyboard events (to achieve the 'non-preedit' typing). This follows the principle of least privilege, running the daemon under a dedicated user instead of root.
-The flag '-DINSTALL_RUNIT=ON' is used to install the runit service scripts required for Void Linux.
-Both 'acl' and 'acl-progs' are included in depends. The udev rule (99-lotus.rules) and the runit script use 'setfacl' (provided by 'acl-progs' on Void) to grant the '_uinput_proxy' user access to '/dev/uinput' at runtime. 'acl' is retained as a direct dependency because the daemon binary itself links against 'libacl' (hence 'acl-devel' in makedepends).
-'python3' is listed in hostmakedepends because the build system uses it at configure time (find_package(Python3)) and at install time (byte-compiling the settings GUI Python files).
-Upstream uses the generic username 'uinput_proxy' in its runit service and udev rules. Since Void Linux convention requires system users to have an underscore prefix, 'post_patch()' is used to sed-replace 'uinput_proxy' with '_uinput_proxy' in 'misc/fcitx5-lotus.runit' and 'misc/99-lotus.rules' before build (The 'post_patch()' sed-replacement is a temporary workaround.).
-Systemd service file and sysusers.d config are removed in 'post_install()' as they are not needed on Void.
-The settings GUI is split into a subpackage 'fcitx5-lotus-settings' to avoid pulling Python/Qt dependencies into the main package, since headless or terminal-only users may not need the GUI.
-bamboo-core is fetched as a separate distfile (Git submodule) and placed into the source tree via 'post_extract()'.
-bamboo-core is written in Golang, which is why 'go' is listed in hostmakedepends. The build process compiles bamboo-core from source before building fcitx5-lotus itself.
-The package also installs 'module-fcitx5-lotus.conf' to '/usr/lib/modules-load.d/' to automatically load the 'uinput' kernel module.

Notes from the Packager:
-If this package is merged, I plan to submit a request to upstream to make the proxy username configurable (e.g. via a CMake variable like 'UINPUT_PROXY_USER'), so that the 'post_patch()' workaround will no longer be necessary.
-Due to hardware limitations (old laptop), I could not test on musl or other architectures like aarch64. I would appreciate it if reviewers could help test these.

@0353618151hao-png
0353618151hao-png force-pushed the fcitx5-lotus branch 5 times, most recently from b15768f to c44d95c Compare July 31, 2026 10:41
@0353618151hao-png
0353618151hao-png marked this pull request as draft July 31, 2026 11:51
@0353618151hao-png
0353618151hao-png marked this pull request as ready for review July 31, 2026 12:44
Comment thread srcpkgs/fcitx5-lotus/template Outdated
makedepends="libfcitx5-devel libinput-devel eudev-libudev-devel acl-devel libX11-devel"
depends="fcitx5 acl hicolor-icon-theme"
short_desc="Vietnamese input method engine for Fcitx5"
maintainer="Leanhduc <259352926+0353618151hao-png@users.noreply.github.com>"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The emails must be real emails, not noreply emails.

Comment thread srcpkgs/fcitx5-lotus/template Outdated
configure_args="-DINSTALL_RUNIT=ON"
hostmakedepends="extra-cmake-modules pkg-config gettext go python3"
makedepends="libfcitx5-devel libinput-devel eudev-libudev-devel acl-devel libX11-devel"
depends="fcitx5 acl hicolor-icon-theme"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding hicolor-icon-theme here is wrong. The package works completely fine without using the icons, so there's no reason to add that dependency.

@0353618151hao-png
0353618151hao-png force-pushed the fcitx5-lotus branch 2 times, most recently from 07a61c5 to b164537 Compare August 2, 2026 23:06
@0353618151hao-png

Copy link
Copy Markdown
Author

Thanks for the review! I've updated the PR according to your feedback:

  • Updated the maintainer email to a valid email address.
  • Removed hicolor-icon-theme from depends.

@0353618151hao-png
0353618151hao-png force-pushed the fcitx5-lotus branch 3 times, most recently from 7eef959 to ceb27ad Compare August 3, 2026 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-package This PR adds a new package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants