%global debug_package %{nil} URL: https://github.com/MCC45TR/uke-linux-hardware-support Source0: uke-control-2.8.1.tar.xz Source1: uke-control-frontend-contract.tar.xz Source2: uke-control-published-spec.txt Source3: input.json Source4: copr-public-key.asc Source6: uke-control-rollback.tar.xz Source5: uke-control-package-update.tar.xz Source7: uke-control-speech-overlay.tar.gz Source8: uke-control-speech-parents.sha256 BuildRequires: pkgconfig(libspa-0.2) pipewire pipewire-libs pipewire-utils wireplumber dbus-daemon ExclusiveArch: aarch64 SourceLicense: MIT AND Apache-2.0 AND GPL-3.0-or-later AND GPL-2.0-only BuildRequires: dbus-daemon jq lua 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(ncursesw) BuildRequires: pkgconfig(vterm) BuildRequires: pkgconfig(wayland-client) wayland-devel wayland-protocols-devel BuildRequires: selinux-policy-devel BuildRequires: xfsprogs-devel BuildRequires: findutils createrepo_c rpm-sign gnupg2 pkgconfig(fdisk) Name: uke-control Version: 2.12.1 Release: 1%{?dist} License: MIT AND Apache-2.0 AND GPL-3.0-or-later Summary: Native Uke settings backend and command-line client Provides: uke-control(frontend-v1) = 1 Provides: uke-control(update-status-v1) = 1 Provides: uke-control(update-status-checkpoint-v2) = 1 Provides: uke-control(slot-selection-v1) = 1 Requires: uke-kernel-update(slot-selection-v1) >= 1 Provides: /usr/libexec/uke-control/frontend-request Requires: uke-control-client%{?_isa} = 2.12.1-1%{?dist} 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(rollback-policy-v1) >= 1 Requires: uke-kernel-update(transaction-v1) >= 1 Requires: (wireplumber >= 0.5.16 if wireplumber) Recommends: uke-battery-observer Recommends: /usr/lib64/spa-0.2/aec/libspa-aec-webrtc.so Recommends: uke-control-tui(aarch-64) = 2.12.1-1%{?dist} Provides: uke-control(channel-api) = 1 Provides: uke-control(fedora-returns-v1) = 1 Conflicts: uke-plasma-controls < 1.0.0-23 Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Requires: uke-control(aarch-64) = 2.12.1-1%{?dist} Requires: sysstat drm-utils BuildRequires: clang compiler-rt libasan libubsan BuildRequires: libasan libubsan BuildRequires: bluez-libs-devel BuildRequires: dbus-daemon systemd-udev pkgconfig(umockdev-1.0) BuildRequires: gcc-c++ make systemd-rpm-macros BuildRequires: jq BuildRequires: rpm-build BuildRequires: e2fsprogs BuildRequires: openssl-devel BuildRequires: pkgconfig(fdisk) pkgconfig(zlib) util-linux BuildRequires: pkgconfig(libdrm) BuildRequires: glib2 strace systemd BuildRequires: pkgconfig(libsystemd) pkgconfig(wayland-client) pkgconfig(wayland-server) Requires: (libstdc++%{?_isa} >= 16.2.1 or uke-libstdcxx%{?_isa} >= 16.2.1) Requires: kmod bash systemd NetworkManager openssh-server chrony Requires: util-linux-core coreutils grep Requires: bluez Requires: linux-firmware Requires: (libcamera-ipa if wireplumber) Requires: (pipewire-plugin-libcamera if wireplumber) Requires: uke-firmware >= 3.0.304.0 Requires: senemos-uke-linux-kernel-mainline-modules >= 7.2.9-1.53.native53 Requires(pre): rpm systemd coreutils sed Requires(posttrans): systemd coreutils sed Provides: uke-usb-gadget-ownership-api = 2 Provides: uke-usb-manual-cdc-api = 2 Provides: uke-boot-integration(native-platform-profile-ready-v1) = 1 Provides: uke-boot-integration(factory-wlan-v1) = 1 Provides: uke-wifi-factory = 1.8.102-1.fc46 Obsoletes: uke-wifi-factory < 1.8.102-1.fc46 Provides: uke-boot-integration(factory-bluetooth-v1) = 1 Provides: uke-bluetooth = 1.8.102-1.fc46 Obsoletes: uke-bluetooth < 1.8.102-1.fc46 Provides: uke-boot-integration(touch-runtime-v1) = 1 Provides: uke-boot-integration(kernel-touch-dispatch-v1) = 1 Provides: uke-boot-integration(kernel-touch-input-v1) = 1 Provides: uke-boot-integration(kernel-touch-input-v2) = 1 Provides: uke-touchscreen = 1.8.102-1.fc46 Obsoletes: uke-touchscreen < 1.8.102-1.fc46 Provides: uke-kernel-update(alternating-checkpoint-v2) = 1 Conflicts: uke-control < 2.8.1-26 Requires: uke-cdsp-pogo-firmware >= 0.2-8 Provides: uke-kernel-update(cdsp-pogo-firmware-v1) = 1 Requires: uke-o82-color-profile >= 0.7.0-1 Provides: uke-kernel-update(o82-private-color-v5) = 1 Provides: uke-kernel-update(seamless-policy-v2) = 1 Provides: uke-kernel-update(current-trial-replacement-v1) = 1 Provides: uke-kernel-update(rollback-policy-v1) = 1 Provides: uke-kernel-update(slot-selection-v1) = 1 Requires: (libstdc++%{?_isa} >= 16.2.1 or uke-libstdcxx%{?_isa} >= 16.2.1) openssl-libs rpm Requires: systemd >= 254 Requires: e2fsprogs Requires: uke-installation-profile = 1.8.102-1.fc46 Provides: uke-kernel-update(userdata-ab) = 1 Provides: uke-kernel-update(guarded-automatic) = 1 Provides: uke-kernel-update(transaction-v1) = 1 Provides: uke-kernel-update(final-transaction-v2) = 1 Provides: uke-kernel-update(automatic-policy-migration-v1) = 1 Provides: uke-kernel-update(root-filesystem-v2) = 1 Provides: uke-kernel-update(current-slot-restore) = 1 Provides: uke-kernel-update(kernel-touch-client-v1) = 1 Provides: uke-kernel-update(userdata-fallback-v1) = 1 Provides: uke-kernel-update(trial-health-v2) = 1 Provides: uke-kernel-update(touch-status-v2) = 1 Provides: uke-kernel-update(qualified-firmware-cohort-v1) = 1 Provides: uke-kernel-update(inactive-slot-no-image-backup-v1) = 1 Provides: uke-kernel-update(device-local-video-import-v1) = 1 Provides: uke-installation-profile(rtc-counter-offset-v1) = 1 Provides: uke-installation-profile(rtc-secure-offset-v1) = 1 Requires: (libstdc++%{?_isa} >= 16.2.1 or uke-libstdcxx%{?_isa} >= 16.2.1) systemd Requires: uke-boot-integration = 1.8.102-1.fc46 BuildRequires: clang gcc-c++ compiler-rt pkgconf-pkg-config BuildRequires: pkgconfig(json-c) pkgconfig(lcms2) pkgconfig(openssl) BuildRequires: pkgconfig(libdisplay-info) Requires: e2fsprogs kmod Source9: uke-boot-integration-1.8.102.tar.xz Source10: 60-uke-filelists.conf Source11: control-version.hpp Source12: merge-kernel-spec.cpp Source13: copr-control-kernel.sh Source14: KERNEL-CONSOLIDATION.md Source15: kernel-consolidation.sh Source16: control-consolidated-spec.txt Source17: unstable-release.hpp Source18: runtime733-version.patch Source19: retained-o82-color-0.7.0.tar.xz Source20: unstable-release.cpp BuildRequires: patch Requires: uke-control-tui%{?_isa} = 2.12.1-1%{?dist} Provides: uke-o82-color-profile = 0.7.0-2%{?dist} Provides: uke-o82-color-profile%{?_isa} = 0.7.0-2%{?dist} Obsoletes: uke-o82-color-profile <= 0.7.0-2%{?dist} Provides: uke-boot-integration = 1.8.102-1%{?dist} Provides: uke-boot-integration%{?_isa} = 1.8.102-1%{?dist} Obsoletes: uke-boot-integration <= 1.8.102-1%{?dist} Provides: uke-installation-profile = 1.8.102-1%{?dist} Provides: uke-installation-profile%{?_isa} = 1.8.102-1%{?dist} Obsoletes: uke-installation-profile <= 1.8.102-1%{?dist} Provides: uke-kernel-update = 1.8.102-1%{?dist} Provides: uke-kernel-update%{?_isa} = 1.8.102-1%{?dist} Obsoletes: uke-kernel-update <= 1.8.102-1%{?dist} Provides: uke-control-client = 2.12.1-1%{?dist} Provides: uke-control-client%{?_isa} = 2.12.1-1%{?dist} Obsoletes: uke-control-client < 2.12.1-1%{?dist} Provides: uke-control-tests = 2.12.1-1%{?dist} Provides: uke-control-tests%{?_isa} = 2.12.1-1%{?dist} Obsoletes: uke-control-tests < 2.12.1-1%{?dist} # UKE_CONTROL_SESSION_BRIDGE Source21: uke-control-session-bridge.tar.xz Source22: copr-control-session.sh Source23: fold-session-spec.sh BuildRequires: pkgconfig(alsa) Provides: uke-speaker-orientation = 0.2.0-3%{?dist} Provides: uke-speaker-orientation%{?_isa} = 0.2.0-3%{?dist} Provides: uke-control(session-bridge-v1) = 1 Obsoletes: uke-speaker-orientation <= 0.2.0-2%{?dist} # UKE_CONTROL_BOOT_HEALTH_REPORT Source24: uke-control-boot-health.tar.xz Source25: fold-health-spec.sh Source26: copr-control-health.sh BuildRequires: git-core Provides: uke-control(kernel-health-report-v1) = 1 # UKE_CONTROL_CRITICAL_ROLLBACK Source27: uke-control-critical-rollback.tar.xz Source28: fold-critical-spec.sh Source29: copr-control-critical.sh Provides: uke-control(critical-rollback-v1) = 1 %description Native Uke device control, terminal and client interfaces, with the retained installation classifier and automatic alternating kernel delivery in one runtime package. Original DNF triggers the existing admitted updater after transactions. Persistent preferences, recovery gates and original desktop packages remain. %package -n uke-control-client-devel Version: 2.12.1 Release: 1%{?dist} Summary: C++ SDK for the native Uke Control client License: MIT AND Apache-2.0 Requires: uke-control-client%{?_isa} = 2.12.1-1%{?dist} Provides: uke-control(frontend-sdk-v1) = 1 Provides: /usr/include/uke-control/frontend.hpp %description -n uke-control-client-devel Headers and pkg-config metadata for building unprivileged native frontends. %package -n uke-control-tui Version: 2.12.1 Release: 1%{?dist} License: MIT AND Apache-2.0 Summary: Guided bilingual C++ terminal interface for Uke Control Requires: uke-control(aarch-64) = 2.12.1-1%{?dist} %description -n uke-control-tui Native UTF-8 terminal interface with bilingual action and option guides, search, parameter validation, previews, explicit review, bounded read queries, private result receipts and a simulation mode that executes no commands. GTK and QML frontends can reuse the same UI-independent C++ client library. %prep %setup -q -n uke-control-2.8.1 ( mkdir -p "%{_builddir}/uke-control-2.8.1/work/uke-control" cd '%{_builddir}/uke-control-2.8.1/work/uke-control' rm -rf 'uke-control-2.8.1' /usr/bin/rpmuncompress -x '%{_builddir}/uke-control-2.8.1/inputs/uke-control/uke-control-2.8.1.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-control-2.8.1' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ( mkdir -p "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/work/uke-control" cd '%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/work/uke-control' rm -rf 'uke-control-2.8.1' /usr/bin/rpmuncompress -x '%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/inputs/uke-control/uke-control-2.8.1.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-control-2.8.1' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ) mkdir -p %{_builddir}/uke-control-frontend-contract tar -xJf %{SOURCE1} -C %{_builddir}/uke-control-frontend-contract mapfile -t package_sources < <(find %{_builddir}/uke-control-2.8.1/work -type f -path '*/src/packages.cpp') test ${#package_sources[@]} = 1 package_root=${package_sources[0]%/src/packages.cpp} tar -xJf %{SOURCE5} -C "$package_root" printf '%s\n' 'include tests/package-policy.mk' >> "$package_root/Makefile" printf '%s\n' 'include tests/update-status.mk' >> "$package_root/Makefile" mapfile -t rollback_sources < <(find %{_builddir}/uke-control-2.8.1/work -type f -path '*/src/main.cpp') test ${#rollback_sources[@]} = 1 rollback_root=${rollback_sources[0]%/src/main.cpp} tar -xJf %{SOURCE6} -C "$rollback_root" ( cd "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1" sha256sum --check --strict %{SOURCE8} tar -xzf %{SOURCE7} bash packaging/merge-speech-catalog.sh packaging/microphone-catalog-template.cpp src/client-catalog.cpp printf '\ninclude packaging/microphone-speech.mk\n' >> Makefile ) tar -xJf %{SOURCE9} -C %{_builddir} ( mkdir -p "%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration" cd '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration' rm -rf 'uke-boot-integration-1.8.102' /usr/bin/rpmuncompress -x '%{_builddir}/uke-boot-integration-1.8.102/inputs/uke-boot-integration/uke-boot-integration-1.8.102.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-boot-integration-1.8.102' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . cp touch-runtime/legacy/src/upstream/nt36532-thp/LICENSE THP-LICENSE ) mkdir -p '%{_builddir}/uke-control-2.8.1/o82-source/' tar -xJf %{SOURCE19} -C '%{_builddir}/uke-control-2.8.1/o82-source/' ( mkdir -p '%{_builddir}/uke-control-2.8.1/o82-build/' cd '%{_builddir}/uke-control-2.8.1/o82-build/' cp %{_builddir}/uke-control-2.8.1/o82-source/o82-color-profile.cpp . cp %{_builddir}/uke-control-2.8.1/o82-source/O82-COLOR-PROFILE.md . cp %{_builddir}/uke-control-2.8.1/o82-source/LICENSE . cp %{_builddir}/uke-control-2.8.1/o82-source/uke-o82-hdr-format.h . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-hdr-edid-contract.cpp . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-regdma.h . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-color-firmware.h . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-gamut-grid-contract.cpp . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-color-before-grid.cpp . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-sixzone-format.h %{_builddir}/uke-control-2.8.1/o82-source/o82-sixzone.h %{_builddir}/uke-control-2.8.1/o82-source/o82-sixzone-payload-contract.cpp %{_builddir}/uke-control-2.8.1/o82-source/o82-sixzone-contract.cpp . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-hsic.h %{_builddir}/uke-control-2.8.1/o82-source/o82-hsic-format.h %{_builddir}/uke-control-2.8.1/o82-source/o82-hsic-payload-contract.cpp %{_builddir}/uke-control-2.8.1/o82-source/o82-hsic-contract.cpp . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-memory-format.h %{_builddir}/uke-control-2.8.1/o82-source/o82-memory-color.h . cp %{_builddir}/uke-control-2.8.1/o82-source/GPL-2.0-only.txt . cp %{_builddir}/uke-control-2.8.1/o82-source/o82-stock-profile.hpp %{_builddir}/uke-control-2.8.1/o82-source/o82-stock-profile-contract.cpp . mkdir -p stock-profile cp %{_builddir}/uke-control-2.8.1/o82-source/local.hpp %{_builddir}/uke-control-2.8.1/o82-source/oem-video.hpp stock-profile/ mkdir -p src/display tests cp %{_builddir}/uke-control-2.8.1/o82-source/uke-o82-hdr-format.h %{_builddir}/uke-control-2.8.1/o82-source/o82-color-firmware.h %{_builddir}/uke-control-2.8.1/o82-source/dpu_o82_profiles.c %{_builddir}/uke-control-2.8.1/o82-source/dpu_o82_profiles.h src/display/ cp %{_builddir}/uke-control-2.8.1/o82-source/o82-sixzone-format.h %{_builddir}/uke-control-2.8.1/o82-source/o82-hsic-format.h src/display/ cp %{_builddir}/uke-control-2.8.1/o82-source/o82-memory-format.h src/display/ cp %{_builddir}/uke-control-2.8.1/o82-source/o82-profile-loader-contract.c %{_builddir}/uke-control-2.8.1/o82-source/o82-profile-loader-contract.sh tests/ cp %{_builddir}/uke-control-2.8.1/o82-source/o82-memory-payload-contract.cpp %{_builddir}/uke-control-2.8.1/o82-source/o82-memory-payload-contract.sh tests/ cp %{_builddir}/uke-control-2.8.1/o82-source/dpu_o82_lutbus.c %{_builddir}/uke-control-2.8.1/o82-source/dpu_o82_lutbus.h src/display/ ) mapfile -t version_headers < <(find %{_builddir}/uke-control-2.8.1/work -type f -path '*/src/version.hpp') test ${#version_headers[@]} = 1 install -m644 %{SOURCE11} "${version_headers[0]}" install -m644 %{SOURCE14} KERNEL-CONSOLIDATION.md patch_stage=$(mktemp -d) mkdir -p "$patch_stage/uke-boot/src" "$patch_stage/uke-boot/tests" boot_root=%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102 cp "$boot_root/src/o82-private-color.hpp" "$patch_stage/uke-boot/src/" cp "$boot_root/tests/o82-private-color.cpp" "$patch_stage/uke-boot/tests/" cp "$boot_root/tests/managed-firmware.sh" "$patch_stage/uke-boot/tests/" cp '%{_builddir}/uke-control-2.8.1/o82-build/o82-stock-profile.hpp' '%{_builddir}/uke-control-2.8.1/o82-build/o82-stock-profile-contract.cpp' "$patch_stage/" patch --batch --fuzz=0 --dry-run -p1 -d "$patch_stage" < %{SOURCE18} patch --batch --fuzz=0 -p1 -d "$patch_stage" < %{SOURCE18} install -m644 "$patch_stage/uke-boot/src/o82-private-color.hpp" "$boot_root/src/" install -m644 "$patch_stage/uke-boot/tests/o82-private-color.cpp" "$boot_root/tests/" install -m644 "$patch_stage/uke-boot/tests/managed-firmware.sh" "$boot_root/tests/" install -m644 "$patch_stage/o82-stock-profile.hpp" "$patch_stage/o82-stock-profile-contract.cpp" '%{_builddir}/uke-control-2.8.1/o82-build/' install -m644 %{SOURCE17} "$boot_root/src/unstable-release.hpp" install -m644 %{SOURCE17} '%{_builddir}/uke-control-2.8.1/o82-build/unstable-release.hpp' find "$patch_stage" -depth -delete cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/LICENSE' 'BOOT-RUNTIME-LICENSE' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/LICENSE.GPL-3.0' 'BOOT-RUNTIME-LICENSE.GPL-3.0' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/THP-LICENSE' 'BOOT-RUNTIME-THP-LICENSE' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/README.md' 'BOOT-RUNTIME-README.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/BLUETOOTH.md' 'BOOT-RUNTIME-BLUETOOTH.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/USB-TYPEC.md' 'BOOT-RUNTIME-USB-TYPEC.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/NATIVE-POWER-PROFILES.md' 'BOOT-RUNTIME-NATIVE-POWER-PROFILES.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/TOUCH-RUNTIME.md' 'BOOT-RUNTIME-TOUCH-RUNTIME.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/SHUTDOWN-TRACE.md' 'BOOT-RUNTIME-SHUTDOWN-TRACE.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/KERNEL-UPDATES.md' 'BOOT-RUNTIME-KERNEL-UPDATES.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/USERDATA-AB.md' 'BOOT-RUNTIME-USERDATA-AB.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/RTC-PERSISTENCE.md' 'BOOT-RUNTIME-RTC-PERSISTENCE.md' cp '%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/docs/MANAGED-FIRMWARE.md' 'BOOT-RUNTIME-MANAGED-FIRMWARE.md' cp '%{_builddir}/uke-control-2.8.1/o82-build/LICENSE' O82-COLOR-LICENSE cp '%{_builddir}/uke-control-2.8.1/o82-build/O82-COLOR-PROFILE.md' O82-COLOR-PROFILE.md mkdir -p %{_builddir}/uke-control-session tar -xJf %{SOURCE21} -C %{_builddir}/uke-control-session mkdir -p %{_builddir}/uke-control-boot-health tar -xJf %{SOURCE24} -C %{_builddir}/uke-control-boot-health bash %{_builddir}/uke-control-boot-health/apply-boot-health-report.sh "$boot_root" mkdir -p %{_builddir}/uke-control-critical-rollback tar -xJf %{SOURCE27} -C %{_builddir}/uke-control-critical-rollback mapfile -t critical_status < <(find %{_builddir}/uke-control-2.8.1/work -type f -path '*/src/update-status.cpp') test ${#critical_status[@]} = 1 bash %{_builddir}/uke-control-critical-rollback/apply-critical-rollback.sh "$boot_root" "${critical_status[0]}" %build bash %{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/tests/critical-health.sh bash %{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/tests/boot-health-report.sh ( cd "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1" ( cd "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1" 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 ) ) contract=%{_builddir}/uke-control-frontend-contract mapfile -t client_libraries < <(find %{_builddir}/uke-control-2.8.1/work -type f -path '*/build/libuke-control-client.so.1') test ${#client_libraries[@]} = 1 library=${client_libraries[0]} cmp "$contract/client.hpp" "${library%/build/libuke-control-client.so.1}/src/client.hpp" g++ %{build_cxxflags} -std=c++20 -Wall -Wextra -I"$contract" "$contract/frontend-request.cpp" "$library" -o "$contract/frontend-request" printf '%s\n' "${library%/*}" > "$contract/library-directory" ( cd "%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102" ulimit -c 0 g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I src "-DUKE_TOUCH_HEALTH_SOURCE=\"$PWD/tests/fixtures/touch-health-before-stats.hpp\"" tests/touch-health.cpp -o touch-health-before set +e ./touch-health-before > touch-health-before.log 2>&1 touch_health_status=$? set -e if test "$touch_health_status" != 134; then cat touch-health-before.log; exit 1; fi grep -Fq 'Additive touch statistics must retain readiness admission' touch-health-before.log echo 'Original touch-health consumer rejects additive statistics (expected status134)' g++ -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 -std=c++17 -ffile-prefix-map=$PWD=. src/boot-status.cpp -o uke-boot-status -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 g++ -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 -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/usb-port.cpp -o uke-usb-port $(pkg-config --cflags --libs libsystemd libdrm) -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 g++ -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 -std=c++17 -ffile-prefix-map=$PWD=. src/esp32-cdc.cpp -o uke-esp32-cdc -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 g++ -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 -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/wifi-factory.cpp -o uke-wifi-factory -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 g++ -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 -std=c++20 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/bluetooth-address.cpp -o uke-bluetooth-address -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 g++ -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 -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/boot-guard.cpp -o uke-boot-guard $(pkg-config --cflags --libs libsystemd wayland-client) -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 g++ -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 -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/reboot.cpp -o uke-reboot $(pkg-config --cflags --libs libsystemd) -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 g++ -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 -std=c++20 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/kernel-update.cpp -o uke-kernel-update $(pkg-config --cflags --libs fdisk zlib openssl libsystemd) -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 g++ -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 -std=c++20 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/install-profile.cpp -o uke-install-profile -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 g++ -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 -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/native-profile-ready.cpp -o uke-native-power-profile-ready $(pkg-config --cflags --libs libsystemd) -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 g++ -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 -std=c++20 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/touch-launcher.cpp -o uke-touchscreen -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 g++ -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 -std=c++20 -Wall -Wextra -Werror -Wno-unused-function -ffile-prefix-map=$PWD=. touch-runtime/legacy/src/touch-thp.cpp touch-runtime/legacy/src/upstream/nt36532-thp/nvt_touch_core.cpp -lcrypto -lsystemd -o uke-touch-thp -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 ) ( mkdir -p '%{_builddir}/uke-control-2.8.1/o82-build/' cd '%{_builddir}/uke-control-2.8.1/o82-build/' g++ -std=c++20 %{optflags} -UNDEBUG -Wall -Wextra -Werror \ o82-color-profile.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) \ %{build_ldflags} -o uke-o82-color-profile ) ( cd %{_builddir}/uke-control-session %{__cxx} %{build_cxxflags} -std=c++17 -Wall -Wextra -Werror $(pkg-config --cflags alsa wayland-client libsystemd) src/session/speaker-orientation.cpp %{build_ldflags} $(pkg-config --libs alsa wayland-client libsystemd) -o uke-speaker-orientation ) %install ( cd "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1" ( cd "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1" install -Dm755 build/uke-control %{buildroot}/usr/bin/uke-control install -Dm644 src/uke-microphone.lua %{buildroot}/usr/share/wireplumber/scripts/uke-microphone.lua install -Dm644 src/uke-microphone-policy.lua %{buildroot}/usr/share/wireplumber/scripts/lib/uke-microphone-policy.lua install -Dm644 packaging/96-uke-microphone-policy.conf %{buildroot}/usr/share/wireplumber/wireplumber.conf.d/96-uke-microphone-policy.conf install -Dm755 build/uke-control-tui %{buildroot}/usr/bin/uke-control-tui install -Dm755 build/libuke-control-client.so.1 %{buildroot}/usr/lib64/libuke-control-client.so.1 ln -s libuke-control-client.so.1 %{buildroot}/usr/lib64/libuke-control-client.so install -Dm644 src/client.hpp %{buildroot}/usr/include/uke-control/client.hpp install -Dm644 build/uke-control-client.pc %{buildroot}/usr/lib64/pkgconfig/uke-control-client.pc install -Dm644 packaging/uke-control.bash %{buildroot}/usr/share/bash-completion/completions/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 ) ) contract=%{_builddir}/uke-control-frontend-contract install -Dm644 "$contract/frontend.hpp" %{buildroot}%{_includedir}/uke-control/frontend.hpp install -Dm755 "$contract/frontend-request" %{buildroot}%{_libexecdir}/uke-control/frontend-request package_root=$(dirname "$(cat "$contract/library-directory")") install -Dm755 "$package_root/build/update-status" %{buildroot}%{_libexecdir}/uke-control/update-status install -Dm755 "$package_root/build/set-slot" %{buildroot}%{_libexecdir}/uke-control/set-slot install -Dm644 "$package_root/packaging/org.senemos.uke.update-status.policy" %{buildroot}%{_datadir}/polkit-1/actions/org.senemos.uke.update-status.policy ( cd "%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102" install -Dm644 src/profiles/60-uke-security.conf %{buildroot}/usr/lib/sysctl.d/60-uke-security.conf install -Dm755 uke-touchscreen %{buildroot}/usr/libexec/senemos-uke/uke-touchscreen install -Dm755 uke-touch-thp %{buildroot}/usr/libexec/senemos-uke/uke-touch-thp install -d %{buildroot}/usr/lib/systemd/system sed 's@ExecStart=/usr/libexec/senemos-uke/uke-touch-thp --daemon@ExecCondition=/usr/libexec/senemos-uke/uke-touchscreen --userspace-needed\nExecStart=/usr/libexec/senemos-uke/uke-touchscreen --daemon@' touch-runtime/legacy/src/units/uke-touchscreen.service > %{buildroot}/usr/lib/systemd/system/uke-touchscreen.service install -Dm644 touch-runtime/legacy/src/units/80-uke-touchscreen.preset %{buildroot}/usr/lib/systemd/system-preset/80-uke-touchscreen.preset install -Dm644 touch-runtime/legacy/src/udev/70-uke-touchscreen.rules %{buildroot}/usr/lib/udev/rules.d/70-uke-touchscreen.rules install -Dm644 touch-runtime/legacy/src/modules-load.d/uke-touchscreen.conf %{buildroot}/usr/lib/modules-load.d/uke-touchscreen.conf install -Dm644 touch-runtime/legacy/src/modprobe.d/uke-touchscreen.conf %{buildroot}/usr/lib/modprobe.d/uke-touchscreen.conf install -d %{buildroot}/usr/lib/firmware/novatek/uke ln -s ../../qcom/uke/touch/csot/normal.bin %{buildroot}/usr/lib/firmware/novatek/uke/nt36532-normal.bin install -Dm644 src/units/70-uke-chronyd-clock.conf %{buildroot}/usr/lib/systemd/system/chronyd.service.d/70-uke-clock.conf install -Dm644 src/profiles/uke-system-heap.conf %{buildroot}/usr/lib/modules-load.d/uke-system-heap.conf install -Dm644 src/udev/72-uke-system-heap.rules %{buildroot}/usr/lib/udev/rules.d/72-uke-system-heap.rules install -pDm644 src/profiles/clock-epoch %{buildroot}/usr/lib/clock-epoch install -Dm644 src/units/30-uke-plasmalogin-ready.conf %{buildroot}%{_unitdir}/plasmalogin.service.d/30-uke-native-drm.conf install -Dm755 src/shutdown-trace.sh %{buildroot}%{_libexecdir}/senemos-uke/uke-shutdown-trace install -Dm644 src/units/uke-shutdown-trace.service %{buildroot}%{_unitdir}/uke-shutdown-trace.service install -Dm644 src/profiles/73-uke-shutdown-trace.rules %{buildroot}%{_udevrulesdir}/73-uke-shutdown-trace.rules install -Dm644 src/units/30-uke-power-profiles-home.conf %{buildroot}%{_unitdir}/power-profiles-daemon.service.d/30-uke-state-home.conf install -Dm755 uke-boot-status %{buildroot}/usr/bin/uke-boot-status install -Dm755 uke-native-power-profile-ready %{buildroot}/usr/libexec/senemos-uke/uke-native-power-profile-ready install -Dm644 src/units/uke-native-power-profile-ready.service %{buildroot}/usr/lib/systemd/system/uke-native-power-profile-ready.service install -Dm644 src/profiles/72-uke-native-power-profile.rules %{buildroot}/usr/lib/udev/rules.d/72-uke-native-power-profile.rules install -Dm755 uke-usb-port %{buildroot}/usr/bin/uke-usb-port install -Dm644 src/units/uke-usb-observer.service %{buildroot}/usr/lib/systemd/system/uke-usb-observer.service install -Dm644 src/profiles/org.senemos.Uke.USB1.conf %{buildroot}/usr/share/dbus-1/system.d/org.senemos.Uke.USB1.conf install -Dm755 uke-wifi-factory %{buildroot}/usr/libexec/senemos-uke/uke-wifi-factory install -Dm644 src/units/uke-wifi-factory.service %{buildroot}/usr/lib/systemd/system/uke-wifi-factory.service install -Dm755 uke-bluetooth-address %{buildroot}/usr/libexec/uke-bluetooth-address install -Dm644 packaging/uke-bluetooth-address.service %{buildroot}/usr/lib/systemd/system/uke-bluetooth-address.service install -Dm644 packaging/70-uke-bluetooth.rules %{buildroot}/usr/lib/udev/rules.d/70-uke-bluetooth.rules install -d %{buildroot}/usr/share/senemos/boot/uke install -m644 src/profiles/* %{buildroot}/usr/share/senemos/boot/uke/ install -Dm644 src/units/uke-cdc-acm.service %{buildroot}/usr/lib/systemd/system/uke-cdc-acm.service install -Dm644 src/units/uke-cdc-shell.service %{buildroot}/usr/lib/systemd/system/uke-cdc-shell.service install -Dm755 src/uke-usb-network.sh %{buildroot}/usr/libexec/senemos-uke/uke-usb-network install -Dm644 src/profiles/usb-sharing %{buildroot}/etc/senemos/usb-sharing install -Dm644 src/profiles/80-uke-usb.preset %{buildroot}/usr/lib/systemd/system-preset/80-uke-usb.preset install -Dm644 src/units/uke-usb-network.service %{buildroot}/usr/lib/systemd/system/uke-usb-network.service install -Dm644 src/units/uke-usb-network-shell.service %{buildroot}/usr/lib/systemd/system/uke-usb-network-shell.service install -Dm644 src/profiles/uke-coresight-bringup.conf %{buildroot}/usr/lib/modprobe.d/uke-coresight-bringup.conf install -Dm755 uke-esp32-cdc %{buildroot}/usr/libexec/senemos-uke/uke-esp32-cdc install -Dm644 src/units/uke-esp32-cdc-log.service %{buildroot}/usr/lib/systemd/system/uke-esp32-cdc-log.service install -Dm755 uke-reboot %{buildroot}/usr/bin/uke-reboot install -Dm755 uke-kernel-update %{buildroot}/usr/bin/uke-kernel-update install -Dm644 src/profiles/rollback.conf %{buildroot}/etc/senemos/rollback.conf install -Dm644 src/profiles/kernel-update.conf %{buildroot}/etc/senemos/kernel-update.conf install -Dm644 src/profiles/userdata-update.conf %{buildroot}/etc/senemos/userdata-update.conf install -Dm644 src/profiles/80-uke-boot.preset %{buildroot}/usr/lib/systemd/system-preset/80-uke-boot.preset install -Dm644 src/units/uke-userdata-accept.service %{buildroot}/usr/lib/systemd/system/uke-userdata-accept.service install -Dm644 src/units/uke-userdata-fallback.service %{buildroot}/usr/lib/systemd/system/uke-userdata-fallback.service install -Dm755 uke-install-profile %{buildroot}/usr/libexec/senemos-uke/uke-install-profile install -Dm644 src/units/75-uke-clock-floor.conf %{buildroot}/usr/lib/systemd/system/chronyd.service.d/75-uke-clock-floor.conf install -Dm644 src/units/uke-install-profile.service %{buildroot}/usr/lib/systemd/system/uke-install-profile.service install -Dm644 src/units/uke-root-grow.service %{buildroot}/usr/lib/systemd/system/uke-root-grow.service install -Dm644 src/units/uke-rtc-sync.service %{buildroot}/usr/lib/systemd/system/uke-rtc-sync.service install -Dm644 src/units/uke-rtc-sync.timer %{buildroot}/usr/lib/systemd/system/uke-rtc-sync.timer install -Dm755 uke-boot-guard %{buildroot}/usr/libexec/senemos-uke/uke-boot-guard install -Dm644 src/units/uke-boot-guard.service %{buildroot}/usr/lib/systemd/system/uke-boot-guard.service install -Dm644 src/profiles/uke-reboot.conf %{buildroot}/usr/lib/modules-load.d/uke-reboot.conf install -Dm755 src/dracut/93uke-boot-guard/module-setup.sh %{buildroot}/usr/lib/dracut/modules.d/93uke-boot-guard/module-setup.sh install -d %{buildroot}/usr/lib/systemd/system/sysinit.target.wants %{buildroot}/usr/local/{bin,sbin} ln -s ../uke-boot-guard.service %{buildroot}/usr/lib/systemd/system/sysinit.target.wants/uke-boot-guard.service ln -s ../../../usr/bin/uke-reboot %{buildroot}/usr/local/bin/reboot ln -s ../../../usr/bin/uke-reboot %{buildroot}/usr/local/sbin/reboot ) install -Dm644 %{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/src/units/uke-rtc-counter-sync.service %{buildroot}/usr/lib/systemd/system/uke-rtc-counter-sync.service install -Dm644 %{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/src/units/uke-rtc-counter-sync.timer %{buildroot}/usr/lib/systemd/system/uke-rtc-counter-sync.timer ( mkdir -p '%{_builddir}/uke-control-2.8.1/o82-build/' cd '%{_builddir}/uke-control-2.8.1/o82-build/' install -Dpm755 uke-o82-color-profile %{buildroot}%{_bindir}/uke-o82-color-profile ) if test -d '%{buildroot}/usr/bin/uke-reboot' && ! test -L '%{buildroot}/usr/bin/uke-reboot'; then find '%{buildroot}/usr/bin/uke-reboot' -depth -delete; else rm -f -- '%{buildroot}/usr/bin/uke-reboot'; fi if test -d '%{buildroot}/usr/lib/dracut/modules.d/93uke-boot-guard' && ! test -L '%{buildroot}/usr/lib/dracut/modules.d/93uke-boot-guard'; then find '%{buildroot}/usr/lib/dracut/modules.d/93uke-boot-guard' -depth -delete; else rm -f -- '%{buildroot}/usr/lib/dracut/modules.d/93uke-boot-guard'; fi if test -d '%{buildroot}/usr/lib/modules-load.d/uke-reboot.conf' && ! test -L '%{buildroot}/usr/lib/modules-load.d/uke-reboot.conf'; then find '%{buildroot}/usr/lib/modules-load.d/uke-reboot.conf' -depth -delete; else rm -f -- '%{buildroot}/usr/lib/modules-load.d/uke-reboot.conf'; fi if test -d '%{buildroot}/usr/lib/systemd/system/sysinit.target.wants/uke-boot-guard.service' && ! test -L '%{buildroot}/usr/lib/systemd/system/sysinit.target.wants/uke-boot-guard.service'; then find '%{buildroot}/usr/lib/systemd/system/sysinit.target.wants/uke-boot-guard.service' -depth -delete; else rm -f -- '%{buildroot}/usr/lib/systemd/system/sysinit.target.wants/uke-boot-guard.service'; fi if test -d '%{buildroot}/usr/lib/systemd/system/uke-boot-guard.service' && ! test -L '%{buildroot}/usr/lib/systemd/system/uke-boot-guard.service'; then find '%{buildroot}/usr/lib/systemd/system/uke-boot-guard.service' -depth -delete; else rm -f -- '%{buildroot}/usr/lib/systemd/system/uke-boot-guard.service'; fi if test -d '%{buildroot}/usr/lib/systemd/system/uke-cdc-shell.service' && ! test -L '%{buildroot}/usr/lib/systemd/system/uke-cdc-shell.service'; then find '%{buildroot}/usr/lib/systemd/system/uke-cdc-shell.service' -depth -delete; else rm -f -- '%{buildroot}/usr/lib/systemd/system/uke-cdc-shell.service'; fi if test -d '%{buildroot}/usr/lib/systemd/system/uke-esp32-cdc-log.service' && ! test -L '%{buildroot}/usr/lib/systemd/system/uke-esp32-cdc-log.service'; then find '%{buildroot}/usr/lib/systemd/system/uke-esp32-cdc-log.service' -depth -delete; else rm -f -- '%{buildroot}/usr/lib/systemd/system/uke-esp32-cdc-log.service'; fi if test -d '%{buildroot}/usr/libexec/senemos-uke/uke-boot-guard' && ! test -L '%{buildroot}/usr/libexec/senemos-uke/uke-boot-guard'; then find '%{buildroot}/usr/libexec/senemos-uke/uke-boot-guard' -depth -delete; else rm -f -- '%{buildroot}/usr/libexec/senemos-uke/uke-boot-guard'; fi if test -d '%{buildroot}/usr/libexec/senemos-uke/uke-esp32-cdc' && ! test -L '%{buildroot}/usr/libexec/senemos-uke/uke-esp32-cdc'; then find '%{buildroot}/usr/libexec/senemos-uke/uke-esp32-cdc' -depth -delete; else rm -f -- '%{buildroot}/usr/libexec/senemos-uke/uke-esp32-cdc'; fi if test -d '%{buildroot}/usr/local/bin/reboot' && ! test -L '%{buildroot}/usr/local/bin/reboot'; then find '%{buildroot}/usr/local/bin/reboot' -depth -delete; else rm -f -- '%{buildroot}/usr/local/bin/reboot'; fi if test -d '%{buildroot}/usr/local/sbin/reboot' && ! test -L '%{buildroot}/usr/local/sbin/reboot'; then find '%{buildroot}/usr/local/sbin/reboot' -depth -delete; else rm -f -- '%{buildroot}/usr/local/sbin/reboot'; fi install -Dm644 %{SOURCE10} %{buildroot}/usr/share/dnf5/libdnf.conf.d/60-uke-filelists.conf install -Dm755 %{_builddir}/uke-control-session/uke-speaker-orientation %{buildroot}/usr/libexec/uke-speaker-orientation install -Dm644 %{_builddir}/uke-control-session/packaging/uke-speaker-orientation.desktop %{buildroot}/etc/xdg/autostart/uke-speaker-orientation.desktop install -Dm644 %{_builddir}/uke-control-session/docs/SPEAKER-ORIENTATION.md %{buildroot}%{_docdir}/uke-control/SPEAKER-ORIENTATION.md install -Dm644 %{_builddir}/uke-control-boot-health/BOOT-HEALTH-OBSERVATION.md %{buildroot}%{_docdir}/uke-control/BOOT-HEALTH-OBSERVATION.md install -Dm644 %{_builddir}/uke-control-critical-rollback/CRITICAL-ROLLBACK.md %{buildroot}%{_docdir}/uke-control/CRITICAL-ROLLBACK.md %check bash %{_builddir}/uke-control-session/tests/session/speaker-orientation.sh test -x %{buildroot}/usr/libexec/uke-speaker-orientation mapfile -t rollback_sources < <(find %{_builddir}/uke-control-2.8.1/work -type f -path '*/tests/rollback.cpp') test ${#rollback_sources[@]} = 1 g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror "${rollback_sources[0]}" -o %{_builddir}/rollback-cli-contract %{_builddir}/rollback-cli-contract ( cd "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1" ( cd "%{_builddir}/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1" ulimit -c 0 /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 check ) ) contract=%{_builddir}/uke-control-frontend-contract export LD_LIBRARY_PATH=$(cat "$contract/library-directory")${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} "$contract/frontend-request" --help > /dev/null set +e "$contract/frontend-request" status > "$contract/captured-read-refusal" 2>&1 status=$? set -e test $status = 64 grep -F 'read-only query interface' "$contract/captured-read-refusal" mapfile -t seamless_sources < <(find %{_builddir} -type f -path '*/tests/seamless-policy.cpp') test ${#seamless_sources[@]} = 1 g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -Wno-unused-function "${seamless_sources[0]}" -o %{_builddir}/seamless-policy-contract $(pkg-config --cflags --libs fdisk zlib openssl libsystemd) %{_builddir}/seamless-policy-contract mapfile -t policy_sources < <(find %{_builddir} -type f -path '*/tests/rollback-policy.cpp') test ${#policy_sources[@]} = 1 g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -Wno-unused-function "${policy_sources[0]}" -o %{_builddir}/rollback-policy-contract $(pkg-config --cflags --libs fdisk zlib openssl libsystemd) %{_builddir}/rollback-policy-contract ( cd "%{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102" test -f %{buildroot}/usr/lib/clock-epoch test $(stat -c %Y %{buildroot}/usr/lib/clock-epoch) -eq $(stat -c %Y src/profiles/clock-epoch) bash tests/oem-video.sh udevadm verify src/udev/72-uke-system-heap.rules cmp src/profiles/60-uke-security.conf %{buildroot}/usr/lib/sysctl.d/60-uke-security.conf bash tests/shutdown-trace.sh bash tests/ppd-home.sh bash tests/installation-policy.sh bash tests/slot-control.sh bash tests/alternating-prewrite.sh bash tests/rollback-off-crc.sh bash tests/crc-snapshot-identity.sh bash tests/userdata-update.sh bash tests/development-trial.sh g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/touch-health.cpp -o touch-health-contract ./touch-health-contract g++ -std=c++20 -O1 -g -UNDEBUG -Wall -Wextra -Werror -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer tests/touch-health.cpp -o touch-health-sanitized ASAN_OPTIONS=detect_leaks=1:abort_on_error=1 UBSAN_OPTIONS=halt_on_error=1 ./touch-health-sanitized g++ -std=c++17 -O2 -Wall -Wextra -Werror tests/usb-port.cpp -o usb-port-contract ./usb-port-contract bash tests/usb-inventory.sh bash tests/usb-auto.sh bash tests/usb-ownership.sh g++ -std=c++17 -Wall -Wextra -Werror -O2 tests/wifi-factory.cpp -o wifi-factory-contract ./wifi-factory-contract g++ -std=c++20 -O2 -Wall -Wextra -Werror -Wno-unused-function tests/bluetooth-address.cpp -o bluetooth-address-contract ./bluetooth-address-contract bash tests/startup-contract.sh bash tests/startup-native.sh g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/kernel-update.cpp -o kernel-update-contract $(pkg-config --cflags --libs fdisk zlib openssl libsystemd) ./kernel-update-contract g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/slot-selection.cpp -o slot-selection-contract ./slot-selection-contract g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/rtc-clock.cpp -o rtc-clock-contract ./rtc-clock-contract bash tests/rtc-packaging.sh g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/trial-health.cpp -o trial-health-contract ./trial-health-contract bash tests/automatic-policy-rpm.sh "$PWD/kernel-update-contract" g++ -std=c++17 -O2 -Wall -Wextra -Werror -pthread tests/native-profile-ready.cpp -o native-profile-ready-contract $(pkg-config --cflags --libs libsystemd) bash tests/native-profile-ready.sh ./native-profile-ready-contract g++ -std=c++17 -O2 -Wall -Wextra -Werror tests/native-profile-udev.cpp -o native-profile-udev-contract $(pkg-config --cflags --libs umockdev-1.0) timeout --signal=KILL 25 umockdev-wrapper ./native-profile-udev-contract "$PWD/tests/native-profile-udev.sh" g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/touch-launcher.cpp -o touch-launcher-contract ./touch-launcher-contract g++ -std=c++20 -O2 -Wall -Wextra -Werror touch-runtime/legacy/tests/touch-input.cpp touch-runtime/legacy/src/upstream/nt36532-thp/nvt_touch_core.cpp -lcrypto -lsystemd -o touch-input-contract ./touch-input-contract g++ -std=c++20 -O2 -Wall -Wextra -Werror touch-runtime/legacy/tests/touch-normal-probe.cpp -lcrypto -o touch-normal-contract ./touch-normal-contract g++ -std=c++20 -O2 -Wall -Wextra -Werror touch-runtime/legacy/tests/touch-assignment.cpp -o touch-assignment-contract timeout 15 bash -c 'ulimit -v 262144; exec ./touch-assignment-contract' ) bash %{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/tests/rtc-counter-offset.sh bash %{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/tests/o82-private-color.sh bash %{_builddir}/uke-boot-integration-1.8.102/work/uke-boot-integration/uke-boot-integration-1.8.102/tests/managed-firmware.sh ( mkdir -p '%{_builddir}/uke-control-2.8.1/o82-build/' cd '%{_builddir}/uke-control-2.8.1/o82-build/' gcc -std=c11 -Wall -Wextra -Werror -x c -fsyntax-only o82-regdma.h gcc -std=c11 -Wall -Wextra -Werror -x c -fsyntax-only o82-color-firmware.h gcc -std=c11 -Wall -Wextra -Werror -x c -fsyntax-only o82-sixzone-format.h gcc -std=c11 -Wall -Wextra -Werror -x c -fsyntax-only o82-hsic-format.h ./uke-o82-color-profile --self-test clang++ -std=c++20 -O1 -g -UNDEBUG -Wall -Wextra -Werror \ -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer \ o82-color-profile.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) \ -o color-profile-sanitized ./color-profile-sanitized --self-test g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. \ -Wl,--wrap=main o82-stock-profile-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o stock-profile-contract ./stock-profile-contract clang++ -std=c++20 -O1 -g -UNDEBUG -Wall -Wextra -Werror -I. \ -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer \ -Wl,--wrap=main o82-stock-profile-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o stock-profile-sanitized ./stock-profile-sanitized g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. \ o82-hdr-edid-contract.cpp $(pkg-config --cflags --libs libdisplay-info) -o edid-contract ./edid-contract bash tests/o82-profile-loader-contract.sh . bash tests/o82-memory-payload-contract.sh . g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. \ -Wl,--wrap=main o82-hsic-payload-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o hsic-payload ./hsic-payload clang++ -std=c++20 -O1 -g -UNDEBUG -Wall -Wextra -Werror -I. \ -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer \ -Wl,--wrap=main o82-hsic-payload-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o hsic-payload-sanitized ./hsic-payload-sanitized g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. o82-hsic-contract.cpp -o hsic-converter ./hsic-converter clang++ -std=c++20 -O1 -g -UNDEBUG -Wall -Wextra -Werror -I. \ -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer \ o82-hsic-contract.cpp -o hsic-converter-sanitized ./hsic-converter-sanitized g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. \ -Wl,--wrap=main o82-sixzone-payload-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o sixzone-payload ./sixzone-payload clang++ -std=c++20 -O1 -g -UNDEBUG -Wall -Wextra -Werror -I. \ -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer \ -Wl,--wrap=main o82-sixzone-payload-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o sixzone-payload-sanitized ./sixzone-payload-sanitized g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. \ o82-sixzone-contract.cpp -o sixzone-converter ./sixzone-converter g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. \ -Wl,--wrap=main o82-gamut-grid-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o gamut-grid ./gamut-grid clang++ -std=c++20 -O1 -g -UNDEBUG -Wall -Wextra -Werror -I. \ -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer \ -Wl,--wrap=main o82-gamut-grid-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o gamut-grid-sanitized ./gamut-grid-sanitized g++ -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I. \ -DO82_COLOR_IMPLEMENTATION='"o82-color-before-grid.cpp"' \ -Wl,--wrap=main o82-gamut-grid-contract.cpp $(pkg-config --cflags --libs json-c lcms2 openssl) -o gamut-grid-before set +e ./gamut-grid-before > gamut-grid-before.log 2>&1 before_status=$? set -e test "$before_status" = 1 grep -E '^OEM gamut grid regression rejected: [1-9][0-9]*/[0-9]+ checks failed$' gamut-grid-before.log ) bash %{SOURCE15} %{SOURCE16} for compiler in g++ clang++;do $compiler -std=c++20 -O2 -UNDEBUG -Wall -Wextra -Werror -I%{_sourcedir} %{SOURCE20} -o unstable-release-test ./unstable-release-test done %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 ) || exit $? ( : if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-touchscreen.service || : fi [ -x /usr/lib/systemd/systemd-sysctl ] && /usr/lib/systemd/systemd-sysctl --prefix=/kernel/kptr_restrict --prefix=/kernel/dmesg_restrict || : /usr/bin/udevadm control --reload >/dev/null 2>&1 || : ) || exit $? ( : if [ -d /run/systemd/system ] && [ -r /sys/firmware/devicetree/base/compatible ]; then /usr/bin/uke-kernel-update enable-seamless-policy || exit 1 /usr/bin/uke-kernel-update migrate-automatic-policy || exit 1 fi if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-userdata-accept.service || : fi ) || exit $? ( : if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-root-grow.service uke-rtc-sync.service uke-rtc-sync.timer || : fi ) || exit $? %posttrans -n uke-control ( : # Temporary current-boot diagnosis, without boot enablement or a reboot. if [ -d /run/systemd/system ]; then systemctl --no-block start uke-shutdown-trace.service || : fi ( old=uke-bluetooth; new=uke-boot-integration; unit=uke-bluetooth-address.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 ) || exit 1 ( old=uke-touchscreen; new=uke-boot-integration-touch; unit=uke-touchscreen.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 ) || exit 1 ) || exit $? ( : if [ -d /run/systemd/system ] && [ -r /sys/firmware/devicetree/base/compatible ]; then /usr/libexec/senemos-uke/uke-install-profile reconcile || : fi if [ -d /run/systemd/system ] && [ -d /sys/firmware/devicetree/base/soc/qcom,spmi@c42d000/qcom,pmk8550@0/rtc@6100 ] && [ ! -e /sys/firmware/devicetree/base/soc/qcom,spmi@c42d000/qcom,pmk8550@0/rtc@6100/qcom,uefi-rtc-info ]; then systemctl daemon-reload || : systemctl --no-block start uke-rtc-counter-sync.timer || : fi ) || exit $? ( : # UKE_CONTROL_TRANSFER_RESTORE_BEGIN state=/run/uke-control-package-migration if test -f "$state/units"; then test ! -L "$state" && test ! -L "$state/units" || exit 1 test "$(stat -c %%u "$state/units")" = "$(id -u)" || exit 1 systemctl daemon-reload || exit 1 while IFS="$(printf '\t')" read -r unit enabled active; do case $unit in uke-*.service|uke-*.timer) ;; *) exit 1;; esac case $enabled in enabled) systemctl enable "$unit" || exit 1;; enabled-runtime) systemctl enable --runtime "$unit" || exit 1;; masked|masked-runtime) continue;; disabled|static|indirect) ;; *) exit 1;; esac case $active in active) systemctl --no-block start "$unit" || exit 1;; inactive|failed|activating|deactivating) ;; *) exit 1;; esac done < "$state/units" rm -f -- "$state/units" rmdir "$state" || : fi # UKE_CONTROL_TRANSFER_RESTORE_END ) || exit $? %postun -n uke-control ( : 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 uke-control-rgb.service || : fi 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 || : if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package upgrade, not uninstall /usr/lib/systemd/systemd-update-helper mark-restart-user-units uke-control-moisture-notify.service || : fi ) || exit $? ( : 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 uke-touchscreen.service || : fi /usr/bin/udevadm control --reload >/dev/null 2>&1 || : ) || exit $? ( : ) || exit $? ( : ) || exit $? %pre -n uke-control ( : # UKE_CONTROL_TRANSFER_SAVE_BEGIN if rpm -q uke-boot-integration >/dev/null 2>&1 || rpm -q uke-kernel-update >/dev/null 2>&1 || rpm -q uke-installation-profile >/dev/null 2>&1; then state=/run/uke-control-package-migration test ! -L "$state" && test ! -e "$state/units" || exit 1 install -d -m700 "$state" : > "$state/units" chmod 600 "$state/units" for unit in uke-root-grow.service uke-rtc-sync.service uke-rtc-sync.timer uke-touchscreen.service uke-userdata-accept.service ; do 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) ;; not-found|'') continue;; *) exit 1;; esac case $active in active|inactive|failed|activating|deactivating) ;; *) exit 1;; esac printf '%%s\t%%s\t%%s\n' "$unit" "$enabled" "$active" >> "$state/units" done fi # UKE_CONTROL_TRANSFER_SAVE_END ) || exit $? ( : # Stop the previous root worker while its matching cleanup executable still exists. /usr/bin/systemctl stop uke-control-flashlight.service >/dev/null 2>&1 || : ) || exit $? ( : ( old=uke-bluetooth; new=uke-boot-integration; unit=uke-bluetooth-address.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 ) || exit 1 ( old=uke-touchscreen; new=uke-boot-integration-touch; unit=uke-touchscreen.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 ) || exit 1 ) || exit $? %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 ) || exit $? ( : if [ "$1" -eq 0 ] && [ -d /run/systemd/system ]; then systemctl stop uke-shutdown-trace.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-touchscreen.service || : fi ) || exit $? ( : 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-userdata-accept.service || : fi ) || exit $? ( : 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-root-grow.service uke-rtc-sync.service uke-rtc-sync.timer || : fi # Retire only our generated policy, including when downgrading to an older classifier. if [ "$(readlink /etc/tmpfiles.d/journal-nocow.conf 2>/dev/null)" = '/usr/share/senemos/boot/uke/journal-nocow-disabled.conf' ]; then rm -f /etc/tmpfiles.d/journal-nocow.conf fi ) || exit $? %transfiletriggerin -n uke-control -- /usr/lib/senemos ( : if [ -d /run/systemd/system ] && [ -r /sys/firmware/devicetree/base/compatible ]; then if ! /usr/bin/uke-kernel-update auto; then echo 'Uke automatic boot update refused; inspect the reported cause before rebooting.' >&2 exit 1 fi fi ) || exit $? %files %{_docdir}/uke-control/CRITICAL-ROLLBACK.md %{_docdir}/uke-control/BOOT-HEALTH-OBSERVATION.md /usr/libexec/uke-speaker-orientation %config(noreplace) /etc/xdg/autostart/uke-speaker-orientation.desktop %{_docdir}/uke-control/SPEAKER-ORIENTATION.md %{_libexecdir}/uke-control/frontend-request %{_libexecdir}/uke-control/update-status %{_libexecdir}/uke-control/set-slot %{_datadir}/polkit-1/actions/org.senemos.uke.update-status.policy %license work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/LICENSE work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/shared/recovery/LICENSE-APACHE-2.0 %doc work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/README.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/CHANGELOG.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/CHARGING.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/DISPLAY.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/CHANNELS.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/SENSORS.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/DESKTOP.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/HARDWARE.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/DIAGNOSTIC.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/RESIZE.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/LIGHTS.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/CLI.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/BOOT-LAYOUT.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/OVERVIEW.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/REVIEW-2026-10-30.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/TUI.md work/uke-control/uke-control-2.8.1/work/uke-control/uke-control-2.8.1/MICROPHONE.md /usr/share/wireplumber/scripts/uke-microphone.lua /usr/share/wireplumber/scripts/lib/uke-microphone-policy.lua /usr/share/wireplumber/wireplumber.conf.d/96-uke-microphone-policy.conf /usr/bin/uke-control /usr/share/bash-completion/completions/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/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 /usr/libexec/uke-control/tests /usr/libexec/uke-control/ssc-discovery /usr/libexec/uke-control/ssc-sample /usr/share/applications/uke-control-tests.desktop %license LICENSE %{_libdir}/libuke-control-client.so.1 %license BOOT-RUNTIME-LICENSE %license BOOT-RUNTIME-LICENSE.GPL-3.0 %license BOOT-RUNTIME-THP-LICENSE %doc BOOT-RUNTIME-README.md %doc BOOT-RUNTIME-BLUETOOTH.md %doc BOOT-RUNTIME-USB-TYPEC.md %doc BOOT-RUNTIME-NATIVE-POWER-PROFILES.md %doc BOOT-RUNTIME-TOUCH-RUNTIME.md %doc BOOT-RUNTIME-SHUTDOWN-TRACE.md /usr/libexec/senemos-uke/uke-native-power-profile-ready /usr/libexec/senemos-uke/uke-touchscreen /usr/libexec/senemos-uke/uke-touch-thp /usr/lib/systemd/system/uke-touchscreen.service /usr/lib/systemd/system-preset/80-uke-touchscreen.preset /usr/lib/udev/rules.d/70-uke-touchscreen.rules /usr/lib/modules-load.d/uke-touchscreen.conf /usr/lib/modprobe.d/uke-touchscreen.conf %dir /usr/lib/firmware/novatek %dir /usr/lib/firmware/novatek/uke /usr/lib/firmware/novatek/uke/nt36532-normal.bin /usr/lib/systemd/system/uke-native-power-profile-ready.service /usr/lib/udev/rules.d/72-uke-native-power-profile.rules /usr/libexec/senemos-uke/uke-wifi-factory /usr/lib/systemd/system/uke-wifi-factory.service /usr/libexec/uke-bluetooth-address /usr/lib/systemd/system/uke-bluetooth-address.service /usr/lib/udev/rules.d/70-uke-bluetooth.rules /usr/bin/uke-boot-status /usr/bin/uke-usb-port /usr/lib/systemd/system/uke-usb-observer.service /usr/share/dbus-1/system.d/org.senemos.Uke.USB1.conf /usr/lib/systemd/system/chronyd.service.d/70-uke-clock.conf /usr/lib/modules-load.d/uke-system-heap.conf /usr/lib/udev/rules.d/72-uke-system-heap.rules /usr/lib/clock-epoch %dir %{_unitdir}/plasmalogin.service.d %{_unitdir}/plasmalogin.service.d/30-uke-native-drm.conf %{_libexecdir}/senemos-uke/uke-shutdown-trace %{_unitdir}/uke-shutdown-trace.service %{_udevrulesdir}/73-uke-shutdown-trace.rules %dir %{_unitdir}/power-profiles-daemon.service.d %{_unitdir}/power-profiles-daemon.service.d/30-uke-state-home.conf /usr/lib/systemd/system-preset/80-uke-boot.preset /usr/share/senemos/boot/uke /usr/lib/systemd/system/uke-cdc-acm.service /usr/libexec/senemos-uke/uke-usb-network %config(noreplace) /etc/senemos/usb-sharing /usr/lib/systemd/system-preset/80-uke-usb.preset /usr/lib/systemd/system/uke-usb-network.service /usr/lib/systemd/system/uke-usb-network-shell.service /usr/lib/modprobe.d/uke-coresight-bringup.conf /usr/lib/sysctl.d/60-uke-security.conf %doc BOOT-RUNTIME-KERNEL-UPDATES.md %doc BOOT-RUNTIME-USERDATA-AB.md %doc BOOT-RUNTIME-RTC-PERSISTENCE.md %doc BOOT-RUNTIME-MANAGED-FIRMWARE.md /usr/bin/uke-kernel-update %dir /etc/senemos %config(noreplace) /etc/senemos/rollback.conf %config(noreplace) /etc/senemos/kernel-update.conf %config(noreplace) /etc/senemos/userdata-update.conf /usr/lib/systemd/system/uke-userdata-accept.service /usr/lib/systemd/system/uke-userdata-fallback.service /usr/lib/systemd/system/uke-rtc-counter-sync.service /usr/lib/systemd/system/uke-rtc-counter-sync.timer /usr/libexec/senemos-uke/uke-install-profile /usr/lib/systemd/system/chronyd.service.d/75-uke-clock-floor.conf /usr/lib/systemd/system/uke-install-profile.service /usr/lib/systemd/system/uke-root-grow.service /usr/lib/systemd/system/uke-rtc-sync.service /usr/lib/systemd/system/uke-rtc-sync.timer %license O82-COLOR-LICENSE %doc O82-COLOR-PROFILE.md %{_bindir}/uke-o82-color-profile /usr/share/dnf5/libdnf.conf.d/60-uke-filelists.conf %doc KERNEL-CONSOLIDATION.md %files -n uke-control-client-devel %license LICENSE %dir %{_includedir}/uke-control %{_includedir}/uke-control/*.hpp %{_libdir}/libuke-control-client.so %{_libdir}/pkgconfig/uke-control-client.pc %files -n uke-control-tui /usr/bin/uke-control-tui %changelog * Sun Nov 08 2026 Uke contributors - 2.12.1-1 - Distinguish confirmed ADSP crashes from ordinary boot-health failures. - Permit bound critical-only fallback in permissive mode with verified rollback. * Sun Nov 08 2026 Uke contributors - 2.11.0-1 - Observe unapproved boots in every rollback mode and record the failed health check. - Keep off-mode approval, slot selection and reboot disabled. * Sun Nov 08 2026 Uke contributors - 2.10.0-1 - Fold the event-driven speaker session bridge into Control. - Retain the existing executable/autostart paths, settings and kernel compatibility. * Sat Nov 07 2026 Uke contributors - 2.9.0-3 - Keep composed shell scriptlets valid after empty retained RPM macro expansions. - Check every complete expanded lifecycle body before the native build. * Sat Nov 07 2026 Uke contributors - 2.9.0-2 - Require the matching terminal package and retain the existing SDK separately. - Fold native private-color provisioning into Control and admit canonical future unstable versions. * Sat Nov 07 2026 Uke contributors - 2.9.0-1 - Consolidate retained control and kernel delivery components in one runtime RPM. - Load filelists for reliable original DNF file-dependency resolution. * Thu Nov 05 2026 Uke contributors - 2.8.1-26 - Report automatic staging and rollback policy in terminal-width columns. * Thu Nov 05 2026 Uke contributors - 2.8.1-25 - Report automatic staging and rollback policy in terminal-width columns. * Wed Nov 04 2026 Uke contributors - 2.8.1-11 - Preserve newer installed versions and unavailable extras during channel changes. - Honor kernel version locks and skip boot work for unchanged selections. - Keep exact synchronization explicit and add signed offline solver tests. - Handle scriptlet pipe errors without truncating successful receipts.