%global debug_package %{nil} Name: uke-power Version: 1.0.15 Release: 1%{?dist} Summary: Uke power package selection and source family License: MIT URL: https://github.com/MCC45TR/uke-linux-hardware-support Source0: uke-power-1.0.15.tar.xz ExclusiveArch: aarch64 SourceLicense: MIT AND (GPL-2.0-or-later) AND (GPL-3.0-or-later) AND (MIT) Requires: uke-upower Suggests: uke-adaptive-display = 1.0.15-1%{?dist} Suggests: uke-power-profile-backend Suggests: uke-battery-observer Suggests: uke-charge-control BuildRequires: dbus-daemon BuildRequires: gcc BuildRequires: gettext BuildRequires: git BuildRequires: glib2-devel >= 2.76 BuildRequires: gobject-introspection-devel BuildRequires: gtk-doc BuildRequires: libgudev1-devel BuildRequires: libimobiledevice-devel BuildRequires: meson BuildRequires: polkit-devel BuildRequires: python3 BuildRequires: systemd BuildRequires: systemd-rpm-macros BuildRequires: umockdev BuildRequires: cmake gcc-c++ ninja-build extra-cmake-modules BuildRequires: gcc gcc-c++ meson pkgconfig(gio-2.0) pkgconfig(gio-unix-2.0) BuildRequires: gcc-c++ make systemd-rpm-macros jq dbus-daemon systemd BuildRequires: pkgconfig(gudev-1.0) pkgconfig(polkit-gobject-1) pkgconfig(upower-glib) BuildRequires: pkgconfig(libcrypto) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libsystemd) >= 257 BuildRequires: pkgconfig(systemd) libxslt git-core systemd-rpm-macros BuildRequires: qt6-qtbase-devel kf6-kcoreaddons-devel libksysguard-devel lm_sensors-devel BuildRequires: systemd-rpm-macros systemd-udev %description Logical installation selection. Child RPMs remain separately installable. This package adds no process and does not enable hardware or prove support. %package -n uke-adaptive-display Version: 1.0.15 Release: 1.fc46 License: MIT Summary: Standard desktop sensor and display policy for Uke Requires: iio-sensor-proxy(ssc) >= 1 Requires: uke-ssc-fileservice >= 2026.09.21-8 Requires: coreutils grep sed systemd-udev Requires: powerdevil >= 6.8.0 Requires: kscreen >= 6.8.0 Requires: ddcutil >= 3.0.2 Requires: libddcutil >= 3.0.2 Requires: systemd >= 256 Requires: ksystemstats >= 6.8.0 Requires: libksysguard >= 6.8.0 Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n uke-adaptive-display Qualcomm SSC support for the standard desktop SensorProxy interface. Original KDE and other compatible desktop clients control rotation and ambient brightness. This preview installs a manually enabled integration target and test instructions. It includes no firmware, calibration, desktop replacement or brightness daemon. Original PowerDevil defaults make short power-button presses toggle only the display. Original DDC tools and restricted platform DisplayPort seat access prepare external monitor brightness; physical adapter/monitor tests are separate. Standard systemd policy enables suspend using s2idle. Physical wake, resume and power use remain separate device acceptance gates. Administrator masks are preserved. %package -n uke-battery-observer Version: 1.0.9 Release: 1.fc46 License: MIT Summary: Read-only native battery observation for Xiaomi Uke Requires: senemos-native-runtime(libstdc++) systemd-libs Requires(pre): systemd %description -n uke-battery-observer C++ standard power-supply collector and read-only D-Bus diagnostics. Firmware controls charging. No raw-property writes, PD negotiation, thresholds, factory access or calibration changes are supplied. Health and estimation algorithms remain disabled until pack/firmware evidence is qualified. This source component reports software tests and physical qualification separately. %package -n uke-charge-control Version: 1.0.9 Release: 1.fc46 License: MIT Summary: Evidence-gated native Uke charge-control backend Requires: senemos-native-runtime(libstdc++) systemd-libs Requires(pre): systemd %description -n uke-charge-control Separate privileged threshold/current helper and disabled admission services. General controls require the reviewed kernel option, exact per-boot evidence, numerical guards and matching firmware setting readback. Positive FCC writes use the separately admitted OEM property. Voltage and PD remain firmware-owned; no voltage writer. The shipped profile is unqualified. No physical acceptance is implied. An explicit matched-kernel operation can enable only the existing 70/80 cap with external input off, preserving thresholds and electrical settings. Another explicit operation requests that already enabled target once. An opaque firmware reply is reported as receipt only, with physical effect unknown. %package -n uke-offline-charge Version: 1.0.9 Release: 1.fc46 License: MIT Summary: Minimal native charger-boot interface for Uke Requires: systemd senemos-native-runtime(libstdc++) %description -n uke-offline-charge Native DRM battery screen for an explicitly detected charger boot. The matched initramfs selects its isolated systemd target before desktop startup. Normal boots are unchanged. No firmware writer, PD control or charging algorithm is included. Physical charger-boot, power-key and unplug behavior require testing. %package -n uke-power-profile-backend Version: 1.0.4 Release: 1.fc46 License: GPL-3.0-or-later Summary: Native Uke CPU and GPU backend for Power Profiles daemon Requires: power-profiles-daemon = 0.30 Requires: kmod Requires: policycoreutils selinux-policy-targeted Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n uke-power-profile-backend The standard PPD D-Bus service with an exact Uke CPU and GPU driver. Original KDE remains unchanged. CPU governors and GPU maximum-frequency preferences use existing kernel interfaces; thermal QoS remains authoritative. No Python CLI, firmware, calibration or voltage table is included. %package -n uke-upower Version: 1.91.5 Release: 3.fc46 License: GPL-2.0-or-later Summary: Power Management Service Requires: uke-upower-libs(aarch-64) = 1.91.5-3.fc46 Requires: udev Provides: upower = 1.91.5-3.fc46 Provides: upower%{?_isa} = 1.91.5-3.fc46 Obsoletes: upower < 1.91.5-3.fc46 Conflicts: upower Requires(pre): rpm systemd coreutils sed Requires(posttrans): systemd coreutils sed %description -n uke-upower UPower (formerly DeviceKit-power) provides a daemon, API and command line tools for managing power devices attached to the system. %package -n uke-upower-libs Version: 1.91.5 Release: 3.fc46 License: GPL-2.0-or-later Summary: Client libraries for UPower Requires: gobject-introspection Recommends: uke-upower(aarch-64) = 1.91.5-3.fc46 Conflicts: uke-upower < 0.99.20-4 Provides: upower-libs = 1.91.5-3.fc46 Provides: upower-libs%{?_isa} = 1.91.5-3.fc46 Obsoletes: upower-libs < 1.91.5-3.fc46 Conflicts: upower-libs %description -n uke-upower-libs Client libraries for UPower. %package -n uke-upower-devel Version: 1.91.5 Release: 3.fc46 License: GPL-2.0-or-later Summary: Headers and libraries for UPower Requires: uke-upower-libs(aarch-64) = 1.91.5-3.fc46 Provides: upower-devel = 1.91.5-3.fc46 Provides: upower-devel%{?_isa} = 1.91.5-3.fc46 Obsoletes: upower-devel < 1.91.5-3.fc46 Conflicts: upower-devel %description -n uke-upower-devel Headers and libraries for UPower. %package -n uke-upower-devel-docs Version: 1.91.5 Release: 3.fc46 License: GPL-2.0-or-later Summary: Developer documentation for for libupower-glib Requires: uke-upower-libs = 1.91.5-3.fc46 BuildArch: noarch Provides: upower-devel-docs = 1.91.5-3.fc46 Provides: upower-devel-docs%{?_isa} = 1.91.5-3.fc46 Obsoletes: upower-devel-docs < 1.91.5-3.fc46 Conflicts: upower-devel-docs %description -n uke-upower-devel-docs Developer documentation for for libupower-glib. %prep %setup -q ( mkdir -p "%{_builddir}/uke-power-1.0.15/work/uke-adaptive-display" cd '%{_builddir}/uke-power-1.0.15/work/uke-adaptive-display' rm -rf 'uke-adaptive-display-1.0.15' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-power-1.0.15/inputs/uke-adaptive-display/uke-adaptive-display-1.0.15.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-adaptive-display-1.0.15' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ( mkdir -p "%{_builddir}/uke-power-1.0.15/work/uke-battery-observer" cd '%{_builddir}/uke-power-1.0.15/work/uke-battery-observer' rm -rf 'uke-battery-observer-0.1.0' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-power-1.0.15/inputs/uke-battery-observer/uke-battery-observer-0.1.0.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-battery-observer-0.1.0' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . sha256sum -c SOURCE-SHA256SUMS ) ( mkdir -p "%{_builddir}/uke-power-1.0.15/work/uke-power-profile-backend" echo '90f2c95024861d9f4062abedd514084939224e7a49edd468f001af7260ec8e6c %{_builddir}/uke-power-1.0.15/inputs/uke-power-profile-backend/power-profiles-daemon-0.30.tar.gz' | sha256sum -c - cd '%{_builddir}/uke-power-1.0.15/work/uke-power-profile-backend' rm -rf 'power-profiles-daemon-0.30' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-power-1.0.15/inputs/uke-power-profile-backend/power-profiles-daemon-0.30.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'power-profiles-daemon-0.30' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . tar -xf %{_builddir}/uke-power-1.0.15/inputs/uke-power-profile-backend/uke-power-profile-backend-0.1.0.tar.gz git init -q git apply --check patches/0001-ppd-native-uke-cpu-driver.patch git apply patches/0001-ppd-native-uke-cpu-driver.patch ) ( mkdir -p "%{_builddir}/uke-power-1.0.15/work/upower" # The official archive and touched files are pinned to the installed 1.91.5 ABI. echo 'c465a1c7fc05d00ac2bc7321c19b9b7e479410d8392bd7eb3e714275729629fd %{_builddir}/uke-power-1.0.15/inputs/upower/upower-v1.91.5.tar.bz2' | sha256sum -c - cd '%{_builddir}/uke-power-1.0.15/work/upower' rm -rf 'upower-v1.91.5' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-power-1.0.15/inputs/upower/upower-v1.91.5.tar.bz2' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'upower-v1.91.5' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . /usr/bin/git init -q /usr/bin/git config user.name "rpm-build" /usr/bin/git config user.email "" /usr/bin/git config gc.auto 0 /usr/bin/git add --force . GIT_COMMITTER_DATE=@${SOURCE_DATE_EPOCH:-${RPM_BUILD_TIME:?}} GIT_AUTHOR_DATE=@${SOURCE_DATE_EPOCH:-${RPM_BUILD_TIME:?}}\ /usr/bin/git commit -q --no-gpg-sign --allow-empty -a\ --author "rpm-build " -m "upower-1.91.5 base" /usr/bin/git checkout --track -b rpm-build /usr/lib/rpm/rpmuncompress %{_builddir}/uke-power-1.0.15/inputs/upower/0001-required-threshold-write-errors.patch | /usr/bin/git apply --index --reject -p1 - GIT_COMMITTER_DATE=@${SOURCE_DATE_EPOCH:-${RPM_BUILD_TIME:?}} GIT_AUTHOR_DATE=@${SOURCE_DATE_EPOCH:-${RPM_BUILD_TIME:?}}\ /usr/bin/git commit -q --no-gpg-sign -m 0001-required-threshold-write-errors.patch --author "rpm-build " /usr/lib/rpm/rpmuncompress %{_builddir}/uke-power-1.0.15/inputs/upower/0002-preserve-reported-health-capacity.patch | /usr/bin/git apply --index --reject -p1 - GIT_COMMITTER_DATE=@${SOURCE_DATE_EPOCH:-${RPM_BUILD_TIME:?}} GIT_AUTHOR_DATE=@${SOURCE_DATE_EPOCH:-${RPM_BUILD_TIME:?}}\ /usr/bin/git commit -q --no-gpg-sign -m 0002-preserve-reported-health-capacity.patch --author "rpm-build " ) %build ( cd "%{_builddir}/uke-power-1.0.15/work/uke-adaptive-display/uke-adaptive-display-1.0.15" 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/cmake \ -S "." \ -B "redhat-linux-build" \ -G Ninja \ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DCMAKE_INSTALL_FULL_SBINDIR:PATH=/usr/bin \ -DCMAKE_INSTALL_SBINDIR:PATH=bin \ -DINCLUDE_INSTALL_DIR:PATH=/usr/include \ -DLIB_INSTALL_DIR:PATH=/usr/lib64 \ -DSYSCONF_INSTALL_DIR:PATH=/etc \ -DSHARE_INSTALL_PREFIX:PATH=/usr/share \ -DLIB_SUFFIX=64 \ -DBUILD_SHARED_LIBS:BOOL=ON -S src/adreno-stats /usr/bin/cmake --build "redhat-linux-build" -j${RPM_BUILD_NCPUS} --verbose ) ( cd "%{_builddir}/uke-power-1.0.15/work/uke-battery-observer/uke-battery-observer-0.1.0" /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 CXXFLAGS="-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -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" 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 " ) ( cd "%{_builddir}/uke-power-1.0.15/work/uke-power-profile-backend/power-profiles-daemon-0.30" 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/meson setup --buildtype=plain --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/libexec --bindir=/usr/bin --sbindir=/usr/bin --includedir=/usr/include --datadir=/usr/share --mandir=/usr/share/man --infodir=/usr/share/info --localedir=/usr/share/locale --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib --wrap-mode=nodownload --auto-features=enabled . redhat-linux-build -Dtests=false -Dpylint=disabled -Dmanpage=disabled -Dbashcomp=disabled -Dzshcomp='' -Dgtk_doc=false /usr/bin/meson compile -C redhat-linux-build -j${RPM_BUILD_NCPUS} --verbose ) ( cd "%{_builddir}/uke-power-1.0.15/work/upower/upower-v1.91.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/meson setup --buildtype=plain --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/libexec --bindir=/usr/bin --sbindir=/usr/bin --includedir=/usr/include --datadir=/usr/share --mandir=/usr/share/man --infodir=/usr/share/info --localedir=/usr/share/locale --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib --wrap-mode=nodownload --auto-features=enabled . redhat-linux-build \ -Didevice=enabled \ -Dman=true \ -Dgtk-doc=true \ -Dintrospection=enabled \ -Dinstalled_tests=false /usr/bin/meson compile -C redhat-linux-build -j${RPM_BUILD_NCPUS} --verbose ) %install ( cd "%{_builddir}/uke-power-1.0.15/work/uke-adaptive-display/uke-adaptive-display-1.0.15" DESTDIR="%{buildroot}" /usr/bin/cmake --install "redhat-linux-build" install -Dm644 packaging/adreno.page %{buildroot}/usr/share/plasma-systemmonitor/adreno.page install -Dm644 packaging/uke-adaptive-display.target %{buildroot}/usr/lib/systemd/system/uke-adaptive-display.target install -Dm644 packaging/80-uke-adaptive-display.preset %{buildroot}/usr/lib/systemd/system-preset/80-uke-adaptive-display.preset install -Dm644 packaging/71-uke-tablet-mode.rules %{buildroot}/usr/lib/udev/rules.d/71-uke-tablet-mode.rules install -Dm644 packaging/61-uke-display-ddc.rules %{buildroot}/usr/lib/udev/rules.d/61-uke-display-ddc.rules install -Dm644 packaging/60-block-scheduler.rules %{buildroot}/etc/udev/rules.d/60-block-scheduler.rules install -Dm644 packaging/powerdevilrc %{buildroot}/etc/xdg/powerdevilrc install -Dm644 packaging/kwinoutputconfig.json %{buildroot}/etc/xdg/kwinoutputconfig.json install -Dm755 src/uke-ddc-config %{buildroot}/usr/libexec/senemos-uke/uke-ddc-config install -Dm644 packaging/60-uke-display-ddc.conf %{buildroot}/usr/lib/systemd/user/plasma-powerdevil.service.d/60-uke-display-ddc.conf install -Dm644 packaging/30-uke-s2idle.conf %{buildroot}/usr/lib/systemd/sleep.conf.d/30-uke-s2idle.conf install -Dm644 packaging/uke-suspend.conf %{buildroot}/usr/lib/tmpfiles.d/uke-suspend.conf ) ( cd "%{_builddir}/uke-power-1.0.15/work/uke-battery-observer/uke-battery-observer-0.1.0" /usr/bin/make install DESTDIR=%{buildroot} INSTALL="/usr/bin/install -p" prefix=/usr ) ( cd "%{_builddir}/uke-power-1.0.15/work/uke-power-profile-backend/power-profiles-daemon-0.30" install -Dm755 redhat-linux-build/src/power-profiles-daemon %{buildroot}/usr/libexec/uke-power-profiles-daemon install -Dm644 packaging/60-uke-cpufreq.conf %{buildroot}/usr/lib/systemd/system/power-profiles-daemon.service.d/60-uke-cpufreq.conf install -Dm644 packaging/uke-power-profile.conf %{buildroot}/usr/lib/modules-load.d/uke-power-profile.conf install -Dm644 packaging/uke-power-profile.cil %{buildroot}/usr/share/selinux/packages/uke-power-profile.cil ) ( cd "%{_builddir}/uke-power-1.0.15/work/upower/upower-v1.91.5" DESTDIR=%{buildroot} /usr/bin/meson install -C redhat-linux-build --no-rebuild /usr/lib/rpm/find-lang.sh %{buildroot} upower ) %check ( cd "%{_builddir}/uke-power-1.0.15/work/uke-adaptive-display/uke-adaptive-display-1.0.15" /usr/bin/ctest --test-dir "redhat-linux-build" \ --output-on-failure \ --force-new-ctest-process \ -j${RPM_BUILD_NCPUS} \ udevadm verify packaging/71-uke-tablet-mode.rules udevadm verify packaging/61-uke-display-ddc.rules udevadm verify packaging/60-block-scheduler.rules sh tests/ddc-config.sh systemd-tmpfiles --dry-run --create packaging/uke-suspend.conf ) ( cd "%{_builddir}/uke-power-1.0.15/work/uke-battery-observer/uke-battery-observer-0.1.0" # Host software checks; never tablet acceptance or automatic device access. /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 test-native ) ( cd "%{_builddir}/uke-power-1.0.15/work/uke-power-profile-backend/power-profiles-daemon-0.30" g++ -std=c++20 -O2 -Wall -Wextra -Werror -Wno-unused-parameter -Isrc -Iredhat-linux-build/src \ tests/ppd-cpufreq.cpp -Lredhat-linux-build/src -llibppd \ $(pkg-config --cflags --libs gio-2.0 gudev-1.0) -o ppd-cpufreq-test mkdir fixture LD_LIBRARY_PATH=redhat-linux-build/src ./ppd-cpufreq-test "$PWD/fixture" ) ( cd "%{_builddir}/uke-power-1.0.15/work/upower/upower-v1.91.5" # Native host contracts, then the actual daemon on a private bus/synthetic sysfs. bash %{_builddir}/uke-power-1.0.15/inputs/upower/upower-threshold-contract.sh src/linux/up-device-supply-battery.c bash %{_builddir}/uke-power-1.0.15/inputs/upower/upower-health-contract.sh src/up-device-battery.c mkdir -p charging-fixture/tests/fixtures/upower cp %{_builddir}/uke-power-1.0.15/inputs/upower/upower-fixture.sh charging-fixture/tests/upower-fixture.sh cp %{_builddir}/uke-power-1.0.15/inputs/upower/ac-net-discharge.umockdev charging-fixture/tests/fixtures/upower/ac-net-discharge.umockdev LD_LIBRARY_PATH=redhat-linux-build/libupower-glib timeout -k 5s 90s bash charging-fixture/tests/upower-fixture.sh redhat-linux-build/src/upowerd # Installed Python and test scripts are forbidden in this overlay payload. if find %{buildroot} -type f \( -name '*.py' -o -name '*.pyc' -o -name 'python*' \) -print -quit | grep -q .; then exit 1; fi ) %files %license LICENSE %doc README %post -n uke-adaptive-display if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-adaptive-display.target || : fi command -v systemd-tmpfiles >/dev/null && systemd-tmpfiles --create /usr/lib/tmpfiles.d/uke-suspend.conf || : %preun -n uke-adaptive-display 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-adaptive-display.target || : fi %postun -n uke-adaptive-display %files -n uke-adaptive-display %license work/uke-adaptive-display/uke-adaptive-display-1.0.15/LICENSE %doc work/uke-adaptive-display/uke-adaptive-display-1.0.15/docs/ADAPTIVE-DISPLAY.md work/uke-adaptive-display/uke-adaptive-display-1.0.15/docs/DISPLAY-CONTROLS.md work/uke-adaptive-display/uke-adaptive-display-1.0.15/docs/SUSPEND.md work/uke-adaptive-display/uke-adaptive-display-1.0.15/docs/SERVICE-POLICY.md work/uke-adaptive-display/uke-adaptive-display-1.0.15/docs/GPU-MONITORING.md /usr/lib64/qt6/plugins/ksystemstats/libuke_adreno.so /usr/share/plasma-systemmonitor/adreno.page %config(noreplace) /etc/xdg/powerdevilrc %config(noreplace) /etc/xdg/kwinoutputconfig.json %config(noreplace) /etc/udev/rules.d/60-block-scheduler.rules /usr/lib/systemd/system/uke-adaptive-display.target /usr/lib/systemd/system-preset/80-uke-adaptive-display.preset /usr/lib/udev/rules.d/71-uke-tablet-mode.rules /usr/lib/udev/rules.d/61-uke-display-ddc.rules /usr/libexec/senemos-uke/uke-ddc-config /usr/lib/systemd/user/plasma-powerdevil.service.d/60-uke-display-ddc.conf /usr/lib/systemd/sleep.conf.d/30-uke-s2idle.conf /usr/lib/tmpfiles.d/uke-suspend.conf %pre -n uke-battery-observer %post -n uke-battery-observer if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-battery.service || : fi %preun -n uke-battery-observer 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-battery.service || : fi %postun -n uke-battery-observer %post -n uke-charge-control if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-charge-control.service uke-charge-automatic.service || : fi %preun -n uke-charge-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-charge-control.service uke-charge-automatic.service || : fi %postun -n uke-charge-control %files -n uke-charge-control %license work/uke-battery-observer/uke-battery-observer-0.1.0/LICENSE %doc work/uke-battery-observer/uke-battery-observer-0.1.0/docs/CHARGE-CONTROL.md /usr/libexec/uke-charge-control /usr/lib/systemd/system/uke-charge-control.service /usr/lib/systemd/system/uke-charge-automatic.service /usr/lib/systemd/system-preset/91-uke-charge-control.preset %config(noreplace) /etc/uke-battery/control-profile.json %files -n uke-offline-charge %license work/uke-battery-observer/uke-battery-observer-0.1.0/LICENSE %doc work/uke-battery-observer/uke-battery-observer-0.1.0/docs/OFFLINE-CHARGING.md /usr/libexec/uke-offline-charge /usr/lib/systemd/system/uke-offline-charge.service /usr/lib/systemd/system/uke-offline-charge.target %files -n uke-battery-observer %license work/uke-battery-observer/uke-battery-observer-0.1.0/LICENSE %doc work/uke-battery-observer/uke-battery-observer-0.1.0/README.md work/uke-battery-observer/uke-battery-observer-0.1.0/docs/BATTERY.md work/uke-battery-observer/uke-battery-observer-0.1.0/docs/RUNTIME-PROFILE.md work/uke-battery-observer/uke-battery-observer-0.1.0/SOURCE-SHA256SUMS /usr/bin/uke-battery /usr/lib/systemd/system/uke-battery.service /usr/lib/systemd/system-preset/90-uke-battery.preset /usr/share/dbus-1/system.d/org.senemos.Uke.Battery1.conf /usr/share/dbus-1/system-services/org.senemos.Uke.Battery1.service /usr/lib/sysusers.d/uke-battery.conf /usr/share/uke-battery/battery-profile.json /usr/share/uke-battery/model-profile.json %post -n uke-power-profile-backend semodule -i /usr/share/selinux/packages/uke-power-profile.cil restorecon /usr/libexec/uke-power-profiles-daemon if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units power-profiles-daemon.service || : fi %postun -n uke-power-profile-backend if [ "$1" -eq 0 ]; then semodule -r uke-power-profile; fi %files -n uke-power-profile-backend %license work/uke-power-profile-backend/power-profiles-daemon-0.30/COPYING %doc work/uke-power-profile-backend/power-profiles-daemon-0.30/docs/POWER-PROFILES.md /usr/libexec/uke-power-profiles-daemon /usr/lib/systemd/system/power-profiles-daemon.service.d/60-uke-cpufreq.conf /usr/lib/modules-load.d/uke-power-profile.conf /usr/share/selinux/packages/uke-power-profile.cil %post -n uke-upower if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units upower.service || : fi %preun -n uke-upower 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 upower.service || : fi %postun -n uke-upower if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package upgrade, not uninstall /usr/lib/systemd/systemd-update-helper mark-restart-system-units upower.service || : fi %files -n uke-upower -f work/upower/upower-v1.91.5/upower.lang %license work/upower/upower-v1.91.5/COPYING %doc work/upower/upower-v1.91.5/NEWS work/upower/upower-v1.91.5/AUTHORS work/upower/upower-v1.91.5/HACKING.md work/upower/upower-v1.91.5/README.md /usr/share/dbus-1/system.d/*.conf /usr/lib/udev/rules.d/*.rules /usr/lib/udev/hwdb.d/*.hwdb %ghost %dir /var/lib/upower %dir /etc/UPower %config(noreplace) /etc/UPower/UPower.conf /etc/UPower/UPower.conf.d/README.md /usr/bin/upower /usr/libexec/upowerd /usr/share/man/man1/* /usr/share/man/man7/* /usr/share/man/man8/* /usr/share/dbus-1/system-services/*.service /usr/lib/systemd/system/*.service /usr/share/polkit-1/actions/org.freedesktop.upower.policy /usr/share/polkit-1/rules.d/org.freedesktop.upower.rules /usr/share/zsh/* %files -n uke-upower-libs %license work/upower/upower-v1.91.5/COPYING /usr/lib64/libupower-glib.so.3{,.*} /usr/lib64/girepository-1.0/*.typelib %files -n uke-upower-devel /usr/share/dbus-1/interfaces/*.xml /usr/lib64/libupower-glib.so /usr/lib64/pkgconfig/*.pc /usr/share/gir-1.0/*.gir %dir /usr/include/libupower-glib /usr/include/libupower-glib/up-*.h /usr/include/libupower-glib/upower.h %files -n uke-upower-devel-docs %dir /usr/share/gtk-doc %dir /usr/share/gtk-doc/html/UPower /usr/share/gtk-doc/html/UPower/* %pre -n uke-upower old=upower; new=uke-upower; unit=upower.service; phase=save # POSIX shell fragment embedded only in RPM migration scriptlets. # Restore the admitted state; never enable a previously disabled hardware path. case "$phase" in save) [ -d /run/systemd/system ] || exit 0 test "$(rpm -q --qf '%%{NAME}' "$old" 2>/dev/null)" = "$old" || exit 0 state=/run/uke-rpm-migration [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 1 install -d -m700 "$state" enabled=$(systemctl is-enabled "$unit" 2>/dev/null) || : active=$(systemctl is-active "$unit" 2>/dev/null) || : case "$enabled" in enabled|enabled-runtime|disabled|static|indirect|masked|masked-runtime) ;; *) exit 1;; esac case "$active" in active|inactive|failed|activating|deactivating) ;; *) exit 1;; esac (umask 077; printf '%%s\n%%s\n' "$enabled" "$active" >"$state/$new") ;; restore) if [ "$new" = uke-iio-sensor-proxy ]; then if /usr/bin/selinuxenabled; then /usr/bin/semodule -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 else /usr/bin/semodule -n -s targeted -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 fi fi state=/run/uke-rpm-migration [ -f "$state/$new" ] && [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 0 enabled=$(sed -n '1p' "$state/$new") active=$(sed -n '2p' "$state/$new") current=$(systemctl is-enabled "$unit" 2>/dev/null) || : case "$current" in masked|masked-runtime) unlink "$state/$new"; exit 0;; esac systemctl daemon-reload || exit 1 case "$enabled" in enabled) systemctl enable "$unit" || exit 1;; enabled-runtime) systemctl enable --runtime "$unit" || exit 1;; masked|masked-runtime) unlink "$state/$new"; exit 0;; esac if [ "$active" = active ]; then systemctl start "$unit" || exit 1; fi unlink "$state/$new" ;; *) exit 1;; esac %posttrans -n uke-upower old=upower; new=uke-upower; unit=upower.service; phase=restore # POSIX shell fragment embedded only in RPM migration scriptlets. # Restore the admitted state; never enable a previously disabled hardware path. case "$phase" in save) [ -d /run/systemd/system ] || exit 0 test "$(rpm -q --qf '%%{NAME}' "$old" 2>/dev/null)" = "$old" || exit 0 state=/run/uke-rpm-migration [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 1 install -d -m700 "$state" enabled=$(systemctl is-enabled "$unit" 2>/dev/null) || : active=$(systemctl is-active "$unit" 2>/dev/null) || : case "$enabled" in enabled|enabled-runtime|disabled|static|indirect|masked|masked-runtime) ;; *) exit 1;; esac case "$active" in active|inactive|failed|activating|deactivating) ;; *) exit 1;; esac (umask 077; printf '%%s\n%%s\n' "$enabled" "$active" >"$state/$new") ;; restore) if [ "$new" = uke-iio-sensor-proxy ]; then if /usr/bin/selinuxenabled; then /usr/bin/semodule -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 else /usr/bin/semodule -n -s targeted -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 fi fi state=/run/uke-rpm-migration [ -f "$state/$new" ] && [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 0 enabled=$(sed -n '1p' "$state/$new") active=$(sed -n '2p' "$state/$new") current=$(systemctl is-enabled "$unit" 2>/dev/null) || : case "$current" in masked|masked-runtime) unlink "$state/$new"; exit 0;; esac systemctl daemon-reload || exit 1 case "$enabled" in enabled) systemctl enable "$unit" || exit 1;; enabled-runtime) systemctl enable --runtime "$unit" || exit 1;; masked|masked-runtime) unlink "$state/$new"; exit 0;; esac if [ "$active" = active ]; then systemctl start "$unit" || exit 1; fi unlink "$state/$new" ;; *) exit 1;; esac %changelog * Tue Oct 20 2026 Senemos Maintainers <75160848+MCC45TR@users.noreply.github.com> - 1.0.15-1 - Build reviewed child recipes under one source family without binary repackaging.