%global debug_package %{nil} URL: https://github.com/MCC45TR/uke-linux-hardware-support Source0: uke-control-2.3.5.tar.xz ExclusiveArch: aarch64 BuildRequires: dbus-daemon jq BuildRequires: e2fsprogs dosfstools f2fs-tools BuildRequires: gcc-c++ make pkgconfig(libdrm) pkgconfig(libsystemd) >= 257 BuildRequires: libdnf5-devel >= 5.4.6.0 pkgconfig(rpm) BuildRequires: pkgconfig(jsoncpp) pkgconfig(blkid) pkgconfig(openssl) BuildRequires: pkgconfig(libselinux) systemd-rpm-macros BuildRequires: pkgconfig(wayland-client) wayland-devel wayland-protocols-devel BuildRequires: selinux-policy-devel BuildRequires: valgrind BuildRequires: xfsprogs-devel Name: uke-control Version: 2.3.5 Release: 2.fc46 License: MIT AND Apache-2.0 Summary: Native Uke settings backend and command-line client Requires: util-linux-core util-linux systemd procps-ng Requires: coreutils findutils rpm Requires: ethtool >= 7.1 Requires: systemd-udev Requires: dracut >= 111 Requires: f2fs-tools >= 1.16.0 Requires: policycoreutils Requires: polkit selinux-policy-targeted Requires: kmod Requires: dialog e2fsprogs device-mapper dosfstools Requires: libdnf5 >= 5.4.6.0 Requires: uke-kernel-update >= 1.8.7 Requires: uke-kernel-update(transaction-v1) >= 1 Recommends: uke-battery-observer Provides: uke-control(channel-api) = 1 Conflicts: uke-plasma-controls < 1.0.0-23 Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n uke-control C++ backend and terminal client for Uke device settings. A systemd service records the partition layout and prefers an existing linux_swap partition; otherwise it creates a swap file using half RAM by default. Unattended policy never formats partitions. The explicit terminal boot-layout wizard is limited to proven original userdata, with two approvals for data loss. Charge and USB controls follow real driver capabilities. %package -n uke-control-tests Version: 2.3.5 Release: 2.fc46 License: MIT AND Apache-2.0 Summary: Development-only Uke display, touch and sensor diagnostics Requires: uke-control(aarch-64) = 2.3.5-2.fc46 Requires: sysstat drm-utils %description -n uke-control-tests Development diagnostics for DPU refresh measurement, Wayland presentation, continuous touch, SensorProxy and SSC sensors. Excluded from release image package selections. Numeric readings alone do not establish physical acceptance. %prep %setup -q ( mkdir -p "%{_builddir}/uke-control-2.3.5/work/uke-control" cd '%{_builddir}/uke-control-2.3.5/work/uke-control' rm -rf 'uke-control-2.3.5' /usr/bin/rpmuncompress -x '%{_builddir}/uke-control-2.3.5/inputs/uke-control/uke-control-2.3.5.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-control-2.3.5' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) %build ( cd "%{_builddir}/uke-control-2.3.5/work/uke-control/uke-control-2.3.5" CFLAGS="${CFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer }" ; export CFLAGS ; CXXFLAGS="${CXXFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer }" ; export CXXFLAGS ; FFLAGS="${FFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules }" ; export FFLAGS ; FCFLAGS="${FCFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules }" ; export FCFLAGS ; VALAFLAGS="${VALAFLAGS:--g}" ; export VALAFLAGS ; RUSTFLAGS="${RUSTFLAGS:--Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn}" ; export RUSTFLAGS ; LDFLAGS="${LDFLAGS:--Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes }" ; export LDFLAGS ; LT_SYS_LIBRARY_PATH="${LT_SYS_LIBRARY_PATH:-/usr/lib64:}" ; export LT_SYS_LIBRARY_PATH ; CC="${CC:-gcc}" ; export CC ; CXX="${CXX:-g++}" ; export CXX /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 ) %install ( cd "%{_builddir}/uke-control-2.3.5/work/uke-control/uke-control-2.3.5" install -Dm755 build/uke-control %{buildroot}/usr/bin/uke-control install -Dm755 build/uke-control-rgb %{buildroot}/usr/libexec/uke-control/rgb-led install -Dm755 build/torch-access %{buildroot}/usr/libexec/uke-control/torch-access install -Dm644 packaging/91-uke-control-torch.rules %{buildroot}/usr/lib/udev/rules.d/91-uke-control-torch.rules install -Dm644 packaging/org.senemos.Uke.Torch.conf %{buildroot}/usr/share/dbus-1/system.d/org.senemos.Uke.Torch.conf install -Dm644 packaging/org.senemos.Uke.Torch.service %{buildroot}/usr/share/dbus-1/system-services/org.senemos.Uke.Torch.service install -Dm644 packaging/org.senemos.uke.torch.policy %{buildroot}/usr/share/polkit-1/actions/org.senemos.uke.torch.policy install -Dm644 build/selinux/uke_control_rgb.pp %{buildroot}/usr/share/selinux/packages/uke_control_rgb.pp install -Dm644 packaging/uke-control-rgb.service %{buildroot}/usr/lib/systemd/system/uke-control-rgb.service install -Dm644 packaging/uke-control-rgb.sysusers %{buildroot}/usr/lib/sysusers.d/uke-control-rgb.conf install -Dm644 packaging/91-uke-control-rgb.rules %{buildroot}/usr/lib/udev/rules.d/91-uke-control-rgb.rules install -Dm644 packaging/org.senemos.Uke.Rgb.conf %{buildroot}/usr/share/dbus-1/system.d/org.senemos.Uke.Rgb.conf install -Dm644 packaging/org.senemos.Uke.Rgb.service %{buildroot}/usr/share/dbus-1/system-services/org.senemos.Uke.Rgb.service install -Dm644 packaging/org.senemos.uke.rgb.policy %{buildroot}/usr/share/polkit-1/actions/org.senemos.uke.rgb.policy install -Dm755 build/uke-control-packages %{buildroot}/usr/libexec/uke-control/packages install -Dm755 build/resize-system %{buildroot}/usr/libexec/uke-control/resize-system install -Dm755 build/layout-manager %{buildroot}/usr/libexec/uke-control/layout-manager install -Dm644 packaging/91-uke-control-layout.rules %{buildroot}/usr/lib/udev/rules.d/91-uke-control-layout.rules install -Dm755 packaging/vrr-min-load %{buildroot}/usr/libexec/uke-control/vrr-min-load install -Dm644 packaging/60-uke-control-vrr.conf %{buildroot}/usr/lib/modprobe.d/60-uke-control-vrr.conf install -Dm755 build/libuke-control.so.0 %{buildroot}/usr/lib64/libuke-control.so.0 install -Dm644 src/backend.hpp %{buildroot}/usr/include/uke-control/backend.hpp install -Dm644 src/charge-policy.hpp %{buildroot}/usr/include/uke-control/charge-policy.hpp install -Dm644 src/front-color.hpp %{buildroot}/usr/include/uke-control/front-color.hpp install -Dm644 src/desktop.hpp %{buildroot}/usr/include/uke-control/desktop.hpp install -Dm644 src/vrr.hpp %{buildroot}/usr/include/uke-control/vrr.hpp install -Dm755 build/uke-control-tests %{buildroot}/usr/libexec/uke-control/tests install -Dm755 build/ssc-discovery %{buildroot}/usr/libexec/uke-control/ssc-discovery install -Dm755 build/ssc-sample %{buildroot}/usr/libexec/uke-control/ssc-sample install -Dm644 packaging/uke-control.service %{buildroot}/usr/lib/systemd/system/uke-control.service install -Dm644 packaging/uke-control-wake.service %{buildroot}/usr/lib/systemd/system/uke-control-wake.service install -Dm644 packaging/uke-control-cdc.service %{buildroot}/usr/lib/systemd/system/uke-control-cdc.service install -Dm644 packaging/uke-control-flashlight.service %{buildroot}/usr/lib/systemd/system/uke-control-flashlight.service install -Dm644 packaging/90-uke-control-cdc.rules %{buildroot}/usr/lib/udev/rules.d/90-uke-control-cdc.rules install -d %{buildroot}/usr/lib/systemd/system/sleep.target.requires ln -s ../uke-control-wake.service %{buildroot}/usr/lib/systemd/system/sleep.target.requires/uke-control-wake.service install -Dm644 packaging/80-uke-control.preset %{buildroot}/usr/lib/systemd/system-preset/80-uke-control.preset install -Dm644 packaging/uke-control-moisture-notify.service %{buildroot}/usr/lib/systemd/user/uke-control-moisture-notify.service install -Dm644 packaging/80-uke-control-user.preset %{buildroot}/usr/lib/systemd/user-preset/80-uke-control-user.preset install -Dm644 packaging/uke-control-tests.desktop %{buildroot}/usr/share/applications/uke-control-tests.desktop install -d -m700 %{buildroot}/var/lib/uke-control ) %check ( cd "%{_builddir}/uke-control-2.3.5/work/uke-control/uke-control-2.3.5" /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 check /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 check-memory ) %pre -n uke-control # Stop the previous root worker while its matching cleanup executable still exists. /usr/bin/systemctl stop uke-control-flashlight.service >/dev/null 2>&1 || : %post -n uke-control /usr/bin/systemd-sysusers /usr/lib/sysusers.d/uke-control-rgb.conf || exit 1 /usr/bin/semodule -i /usr/share/selinux/packages/uke_control_rgb.pp || exit 1 /usr/bin/restorecon /usr/libexec/uke-control/rgb-led || exit 1 if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-control.service uke-control-wake.service uke-control-cdc.service || : fi if /usr/bin/systemctl -q is-active dbus.service; then /usr/bin/busctl --system call org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus ReloadConfig >/dev/null || exit 1 fi /usr/bin/udevadm control --reload >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/libexec/uke-control/torch-access || exit 1 /usr/bin/udevadm trigger --action=add --subsystem-match=leds --sysname-match=uke:white:torch >/dev/null 2>&1 || : /usr/bin/udevadm trigger --action=add --subsystem-match=misc --sysname-match=uke-rgb >/dev/null 2>&1 || : if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-user-units uke-control-moisture-notify.service || : fi %preun -n uke-control if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package removal, not upgrade /usr/lib/systemd/systemd-update-helper remove-system-units uke-control-rgb.service || : fi if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package removal, not upgrade /usr/lib/systemd/systemd-update-helper remove-system-units uke-control.service uke-control-wake.service uke-control-cdc.service uke-control-flashlight.service || : fi if [ "$1" = 0 ]; then /usr/libexec/uke-control/torch-access --remove || exit 1; fi if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package removal, not upgrade /usr/lib/systemd/systemd-update-helper remove-user-units uke-control-moisture-notify.service || : fi %postun -n uke-control if [ "$1" = 0 ]; then if [ -c /dev/uke-rgb ] && [ ! -L /dev/uke-rgb ]; then chown root:root /dev/uke-rgb; chmod 0600 /dev/uke-rgb; fi /usr/bin/semodule -r uke_control_rgb >/dev/null 2>&1 || : /usr/bin/restorecon /dev/uke-rgb >/dev/null 2>&1 || : fi /usr/bin/udevadm control --reload >/dev/null 2>&1 || : %files -n uke-control %license work/uke-control/uke-control-2.3.5/LICENSE work/uke-control/uke-control-2.3.5/shared/recovery/LICENSE-APACHE-2.0 %doc work/uke-control/uke-control-2.3.5/README.md work/uke-control/uke-control-2.3.5/CHARGING.md work/uke-control/uke-control-2.3.5/DISPLAY.md work/uke-control/uke-control-2.3.5/CHANNELS.md work/uke-control/uke-control-2.3.5/SENSORS.md work/uke-control/uke-control-2.3.5/DESKTOP.md work/uke-control/uke-control-2.3.5/HARDWARE.md work/uke-control/uke-control-2.3.5/DIAGNOSTIC.md work/uke-control/uke-control-2.3.5/RESIZE.md work/uke-control/uke-control-2.3.5/LIGHTS.md work/uke-control/uke-control-2.3.5/CLI.md work/uke-control/uke-control-2.3.5/BOOT-LAYOUT.md /usr/bin/uke-control /usr/libexec/uke-control/rgb-led /usr/libexec/uke-control/torch-access /usr/lib/udev/rules.d/91-uke-control-torch.rules /usr/share/dbus-1/system.d/org.senemos.Uke.Torch.conf /usr/share/dbus-1/system-services/org.senemos.Uke.Torch.service /usr/share/polkit-1/actions/org.senemos.uke.torch.policy /usr/share/selinux/packages/uke_control_rgb.pp /usr/lib/systemd/system/uke-control-rgb.service /usr/lib/sysusers.d/uke-control-rgb.conf /usr/lib/udev/rules.d/91-uke-control-rgb.rules /usr/share/dbus-1/system.d/org.senemos.Uke.Rgb.conf /usr/share/dbus-1/system-services/org.senemos.Uke.Rgb.service /usr/share/polkit-1/actions/org.senemos.uke.rgb.policy %dir /usr/libexec/uke-control /usr/libexec/uke-control/packages /usr/libexec/uke-control/resize-system /usr/libexec/uke-control/layout-manager /usr/lib/udev/rules.d/91-uke-control-layout.rules /usr/libexec/uke-control/vrr-min-load /usr/lib/modprobe.d/60-uke-control-vrr.conf /usr/lib64/libuke-control.so.0 /usr/include/uke-control/*.hpp /usr/lib/systemd/system/uke-control.service /usr/lib/systemd/system/uke-control-wake.service /usr/lib/systemd/system/uke-control-cdc.service /usr/lib/systemd/system/uke-control-flashlight.service /usr/lib/udev/rules.d/90-uke-control-cdc.rules %dir /usr/lib/systemd/system/sleep.target.requires /usr/lib/systemd/system/sleep.target.requires/uke-control-wake.service /usr/lib/systemd/system-preset/80-uke-control.preset /usr/lib/systemd/user/uke-control-moisture-notify.service /usr/lib/systemd/user-preset/80-uke-control-user.preset %dir %attr(0700,root,root) /var/lib/uke-control %files -n uke-control-tests /usr/libexec/uke-control/tests /usr/libexec/uke-control/ssc-discovery /usr/libexec/uke-control/ssc-sample /usr/share/applications/uke-control-tests.desktop %changelog * Thu Oct 29 2026 Senemos Maintainers <75160848+MCC45TR@users.noreply.github.com> - 2.3.5-2.fc46 - Build this component independently from its reviewed source recipe.